Fix for novav21 state (aggregates)
- novav21 state should not wipe aggregate hosts from DB if none provided
Prod-Related: PROD-34790
Change-Id: Idd5054cc83d884ae8bb7a579725324a27585c9f4
diff --git a/_states/novav21.py b/_states/novav21.py
index 00ea0c6..0d8d76d 100644
--- a/_states/novav21.py
+++ b/_states/novav21.py
@@ -209,13 +209,13 @@
changes = {}
existing_meta = set(aggregate['metadata'].items())
requested_meta = set(metadata.items())
- if existing_meta - requested_meta or requested_meta - existing_meta:
+ if hosts and (existing_meta - requested_meta or requested_meta - existing_meta):
_call_nova_salt_module('aggregate_set_metadata', name)(
name, cloud_name=cloud_name, **metadata)
changes['metadata'] = metadata
hosts_to_add = set(hosts) - set(aggregate['hosts'])
hosts_to_remove = set(aggregate['hosts']) - set(hosts)
- if hosts_to_remove or hosts_to_add:
+ if hosts and (hosts_to_remove or hosts_to_add):
for host in hosts_to_add:
_call_nova_salt_module('aggregate_add_host', name)(
name, host, cloud_name=cloud_name)