Fix Python 3 dictionary incompatibilities
There were two instances of abusing old Python 2 behaviors around dictionary keys that Python 3 no longer allows. These are both fixed. Change-Id: I5865ee3becf52fca590a1c0c897bcd968210ac9d
This commit is contained in:
parent
ed7032f8be
commit
fa5336ca36
@ -829,14 +829,22 @@ def _parse_global_variables(user_cidr, inventory, user_defined_config):
|
||||
)
|
||||
logger.debug("Applied global_overrides")
|
||||
|
||||
kept_vars = user_defined_config['global_overrides'].keys()
|
||||
# NOTE (palendae): wrapped in a list to support python3,
|
||||
# which uses `dict_keys` objects that can't be appended
|
||||
kept_vars = list(user_defined_config['global_overrides'].keys())
|
||||
kept_vars.append('container_cidr')
|
||||
|
||||
# Remove global overrides that were deleted from inventory, too
|
||||
# We use the to_delete list due to Python 3 disallowing dict
|
||||
# size mutation during iteration
|
||||
to_delete = []
|
||||
for key in inventory['all']['vars'].keys():
|
||||
if key not in kept_vars:
|
||||
logger.debug("Deleting key %s from inventory", key)
|
||||
del inventory['all']['vars'][key]
|
||||
to_delete.append(key)
|
||||
|
||||
for key in to_delete:
|
||||
logger.debug("Deleting key %s from inventory", key)
|
||||
del inventory['all']['vars'][key]
|
||||
|
||||
|
||||
def _check_same_ip_to_multiple_host(config):
|
||||
|
@ -988,9 +988,14 @@ class TestOverridingEnvVars(OverridingEnvBase):
|
||||
# a partial override file
|
||||
|
||||
vol = self.cinder_config['container_skel']['cinder_volumes_container']
|
||||
keys = vol.keys()
|
||||
to_delete = []
|
||||
for key in vol.keys():
|
||||
if not key == 'properties':
|
||||
del vol[key]
|
||||
to_delete.append(key)
|
||||
|
||||
for key in to_delete:
|
||||
del vol[key]
|
||||
|
||||
self.write_override_env()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user