diff options
Diffstat (limited to 'cloudinit/sources/DataSourceOpenStack.py')
-rw-r--r-- | cloudinit/sources/DataSourceOpenStack.py | 41 |
1 files changed, 6 insertions, 35 deletions
diff --git a/cloudinit/sources/DataSourceOpenStack.py b/cloudinit/sources/DataSourceOpenStack.py index af72573b..c480b627 100644 --- a/cloudinit/sources/DataSourceOpenStack.py +++ b/cloudinit/sources/DataSourceOpenStack.py @@ -73,7 +73,7 @@ class DataSourceOpenStack(openstack.SourceMixin, sources.DataSource): mstr = "%s [%s,ver=%s]" % (root, self.dsmode, self.version) return mstr - def wait_for_metadata_service(self, max_wait=None, timeout=None): + def wait_for_metadata_service(self): urls = self.ds_cfg.get("metadata_urls", DEF_MD_URLS) filtered = [x for x in urls if util.is_resolvable_url(x)] if set(filtered) != set(urls): @@ -90,23 +90,16 @@ class DataSourceOpenStack(openstack.SourceMixin, sources.DataSource): md_urls = [] url2base = {} for url in urls: - # Wait for a specific openstack metadata url md_url = url_helper.combine_url(url, "openstack") md_urls.append(md_url) url2base[md_url] = url url_params = self.get_url_params() - if max_wait is None: - max_wait = url_params.max_wait_seconds - - if timeout is None: - timeout = url_params.timeout_seconds - start_time = time.time() avail_url, _response = url_helper.wait_for_url( urls=md_urls, - max_wait=max_wait, - timeout=timeout, + max_wait=url_params.max_wait_seconds, + timeout=url_params.timeout_seconds, connect_synchronously=False, ) if avail_url: @@ -157,20 +150,11 @@ class DataSourceOpenStack(openstack.SourceMixin, sources.DataSource): False when unable to contact metadata service or when metadata format is invalid or disabled. """ - oracle_considered = "Oracle" in self.sys_cfg.get("datasource_list") if self.perform_dhcp_setup: # Setup networking in init-local stage. try: - with EphemeralDHCPv4(self.fallback_interface): - if not self.detect_openstack( - accept_oracle=not oracle_considered - ): - LOG.debug( - "OpenStack datasource not running" - " on OpenStack (dhcp)" - ) - return False + with EphemeralDHCPv4(self.fallback_interface): results = util.log_time( logfunc=LOG.debug, msg="Crawl of metadata service", @@ -180,13 +164,6 @@ class DataSourceOpenStack(openstack.SourceMixin, sources.DataSource): util.logexc(LOG, str(e)) return False else: - if not self.detect_openstack(accept_oracle=not oracle_considered): - LOG.debug( - "OpenStack datasource not running" - " on OpenStack (non-dhcp)" - ) - return False - try: results = self._crawl_metadata() except sources.InvalidMetaDataException as e: @@ -265,8 +242,9 @@ class DataSourceOpenStack(openstack.SourceMixin, sources.DataSource): raise sources.InvalidMetaDataException(msg) from e return result - def detect_openstack(self, accept_oracle=False): + def ds_detect(self): """Return True when a potential OpenStack platform is detected.""" + accept_oracle = "Oracle" in self.sys_cfg.get("datasource_list") if not util.is_x86(): # Non-Intel cpus don't properly report dmi product names return True @@ -280,13 +258,6 @@ class DataSourceOpenStack(openstack.SourceMixin, sources.DataSource): return True elif util.get_proc_env(1).get("product_name") == DMI_PRODUCT_NOVA: return True - # On bare metal hardware, the product name is not set like - # in a virtual OpenStack vm. We check if the system is virtual - # and if the openstack specific metadata service has been found. - elif not self.distro.is_virtual and self.wait_for_metadata_service( - max_wait=15, timeout=5 - ): - return True return False |