Merge "tripleo: Fix logging of tripleo discovery" into stable/newton

This commit is contained in:
Jenkins 2017-04-11 17:25:41 +00:00 committed by Gerrit Code Review
commit 9df4b247f8
1 changed files with 9 additions and 8 deletions

View File

@ -61,10 +61,6 @@ class NodesDiscoveryTripleO(plugin_base.DiscoveryBase):
self.last_run = None
self.instances = {}
@staticmethod
def _address(instance, field):
return instance.addresses['ctlplane'][0].get(field)
@staticmethod
def _make_resource_url(ip):
params = [('readonly_user_auth_proto', 'auth_proto'),
@ -114,15 +110,20 @@ class NodesDiscoveryTripleO(plugin_base.DiscoveryBase):
resources = []
for instance in self.instances.values():
addresses = instance.addresses.get('ctlplane')
if addresses is None:
# NOTE(sileht): This is not a tripleo undercloud instance, this
# is a cheap detection if ironic node deployed by tripleo, but
# nova don't expose anything more useful and we must not log a
# ERROR when the instance is not a tripleo undercloud one.
continue
try:
ip_address = self._address(instance, 'addr')
ip_address = addresses[0].get('addr')
final_address = self._make_resource_url(ip_address)
resource = {
'resource_id': instance.id,
'resource_url': final_address,
'mac_addr': self._address(instance,
'OS-EXT-IPS-MAC:mac_addr'),
'mac_addr': addresses[0].get('OS-EXT-IPS-MAC:mac_addr'),
'image_id': instance.image['id'],
'flavor_id': instance.flavor['id']
}