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)