diff --git a/lib/ansible/modules/cloud/openstack/os_nova_host_aggregate.py b/lib/ansible/modules/cloud/openstack/os_nova_host_aggregate.py index 84801ee9030..aeffba3d187 100644 --- a/lib/ansible/modules/cloud/openstack/os_nova_host_aggregate.py +++ b/lib/ansible/modules/cloud/openstack/os_nova_host_aggregate.py @@ -88,10 +88,12 @@ from distutils.version import StrictVersion def _needs_update(module, aggregate): new_metadata = (module.params['metadata'] or {}) - new_metadata['availability_zone'] = module.params['availability_zone'] + + if module.params['availability_zone'] is not None: + new_metadata['availability_zone'] = module.params['availability_zone'] if ((module.params['name'] != aggregate.name) or - (module.params['hosts'] is not None and module.params['hosts'] != aggregate.hosts) or + (module.params['hosts'] is not None and set(module.params['hosts']) != set(aggregate.hosts)) or (module.params['availability_zone'] is not None and module.params['availability_zone'] != aggregate.availability_zone) or (module.params['metadata'] is not None and new_metadata != aggregate.metadata)): return True