diff --git a/src/providers/openstack/configdrive.rs b/src/providers/openstack/configdrive.rs index 3a633b91..e716140b 100644 --- a/src/providers/openstack/configdrive.rs +++ b/src/providers/openstack/configdrive.rs @@ -144,17 +144,21 @@ impl OpenstackConfigDrive { impl MetadataProvider for OpenstackConfigDrive { fn attributes(&self) -> Result> { let mut out = HashMap::with_capacity(6); - let metadata_ec2: MetadataEc2JSON = self.read_metadata_ec2()?; let metadata_openstack: MetadataOpenstackJSON = self.read_metadata_openstack()?; if let Some(hostname) = metadata_openstack.hostname { out.insert("OPENSTACK_HOSTNAME".to_string(), hostname); } - if let Some(instance_id) = metadata_ec2.instance_id { - out.insert("OPENSTACK_INSTANCE_ID".to_string(), instance_id); - } if let Some(uuid) = metadata_openstack.uuid { out.insert("OPENSTACK_INSTANCE_UUID".to_string(), uuid); } + + let metadata_ec2 = match self.read_metadata_ec2() { + Ok(metadata) => metadata, + Err(error) => return Ok(out), + }; + if let Some(instance_id) = metadata_ec2.instance_id { + out.insert("OPENSTACK_INSTANCE_ID".to_string(), instance_id); + } if let Some(instance_type) = metadata_ec2.instance_type { out.insert("OPENSTACK_INSTANCE_TYPE".to_string(), instance_type); }