Define a base function to remove unneeded attributes

Many of the _normalize_* methods are removing the same
attributes, let's have just define a base function that
does that.

Change-Id: I5fb9f8fdb14db0889b2f7a63415218b8774cc7bc
Signed-off-by: Rosario Di Somma <rosario.disomma@gmail.com>
This commit is contained in:
Rosario Di Somma 2017-04-24 11:22:02 -07:00
parent 1c8cb1325a
commit b964757de8
2 changed files with 26 additions and 56 deletions

View File

@ -142,6 +142,15 @@ class Normalizer(object):
return new_limits
def _remove_novaclient_artifacts(self, item):
# Remove novaclient artifacts
item.pop('links', None)
item.pop('NAME_ATTR', None)
item.pop('HUMAN_ID', None)
item.pop('human_id', None)
item.pop('request_ids', None)
item.pop('x_openstack_request_ids', None)
def _normalize_flavors(self, flavors):
""" Normalize a list of flavor objects """
ret = []
@ -157,11 +166,8 @@ class Normalizer(object):
flavor = flavor.copy()
# Discard noise
self._remove_novaclient_artifacts(flavor)
flavor.pop('links', None)
flavor.pop('NAME_ATTR', None)
flavor.pop('HUMAN_ID', None)
flavor.pop('human_id', None)
flavor.pop('request_ids', None)
ephemeral = int(_pop_or_get(
flavor, 'OS-FLV-EXT-DATA:ephemeral', 0, self.strict_mode))
@ -211,10 +217,8 @@ class Normalizer(object):
# This copy is to keep things from getting epically weird in tests
image = image.copy()
image.pop('links', None)
image.pop('NAME_ATTR', None)
image.pop('HUMAN_ID', None)
image.pop('human_id', None)
# Discard noise
self._remove_novaclient_artifacts(image)
properties = image.pop('properties', {})
visibility = image.pop('visibility', None)
@ -297,13 +301,8 @@ class Normalizer(object):
# Copy incoming group because of shared dicts in unittests
group = group.copy()
# Remove novaclient artifacts
group.pop('links', None)
group.pop('NAME_ATTR', None)
group.pop('HUMAN_ID', None)
group.pop('human_id', None)
group.pop('request_ids', None)
group.pop('x_openstack_request_ids', None)
# Discard noise
self._remove_novaclient_artifacts(group)
rules = self._normalize_secgroup_rules(
group.pop('security_group_rules', group.pop('rules', [])))
@ -395,10 +394,7 @@ class Normalizer(object):
# Copy incoming server because of shared dicts in unittests
server = server.copy()
server.pop('links', None)
server.pop('NAME_ATTR', None)
server.pop('HUMAN_ID', None)
server.pop('human_id', None)
self._remove_novaclient_artifacts(server)
ret['id'] = server.pop('id')
ret['name'] = server.pop('name')
@ -578,10 +574,7 @@ class Normalizer(object):
project = project.copy()
# Discard noise
project.pop('links', None)
project.pop('NAME_ATTR', None)
project.pop('HUMAN_ID', None)
project.pop('human_id', None)
self._remove_novaclient_artifacts(project)
# In both v2 and v3
project_id = project.pop('id')
@ -693,12 +686,7 @@ class Normalizer(object):
volume = volume.copy()
# Discard noise
volume.pop('links', None)
volume.pop('NAME_ATTR', None)
volume.pop('HUMAN_ID', None)
volume.pop('human_id', None)
volume.pop('request_ids', None)
volume.pop('x_openstack_request_ids', None)
self._remove_novaclient_artifacts(volume)
volume_id = volume.pop('id')
name = volume.pop('display_name', None)
@ -777,12 +765,7 @@ class Normalizer(object):
attachment = attachment.copy()
# Discard noise
attachment.pop('NAME_ATTR', None)
attachment.pop('HUMAN_ID', None)
attachment.pop('human_id', None)
attachment.pop('request_ids', None)
attachment.pop('x_openstack_request_ids', None)
self._remove_novaclient_artifacts(attachment)
return munch.Munch(**attachment)
def _normalize_compute_usage(self, usage):
@ -791,11 +774,7 @@ class Normalizer(object):
usage = usage.copy()
# Discard noise
usage.pop('links', None)
usage.pop('NAME_ATTR', None)
usage.pop('HUMAN_ID', None)
usage.pop('human_id', None)
usage.pop('request_ids', None)
self._remove_novaclient_artifacts(usage)
project_id = usage.pop('tenant_id', None)
ret = munch.Munch(
@ -972,10 +951,8 @@ class Normalizer(object):
stack = stack.copy()
# Discard noise
stack.pop('HUMAN_ID', None)
stack.pop('human_id', None)
stack.pop('NAME_ATTR', None)
stack.pop('links', None)
self._remove_novaclient_artifacts(stack)
# Discard things heatclient adds that aren't in the REST
stack.pop('action', None)
stack.pop('status', None)

View File

@ -314,8 +314,7 @@ class TestUtils(base.TestCase):
u'vm_mode': u'hvm',
u'xenapi_use_agent': u'False',
'OS-DCF:diskConfig': u'MANUAL',
'progress': 100,
'request_ids': []},
'progress': 100},
'minDisk': 20,
'minRam': 0,
'min_disk': 20,
@ -340,10 +339,8 @@ class TestUtils(base.TestCase):
u'vm_mode': u'hvm',
u'xenapi_use_agent': u'False',
'OS-DCF:diskConfig': u'MANUAL',
'progress': 100,
'request_ids': []},
'progress': 100},
'protected': False,
'request_ids': [],
'size': 323004185,
'status': u'active',
'tags': [],
@ -397,8 +394,7 @@ class TestUtils(base.TestCase):
u'vm_mode': u'hvm',
u'xenapi_use_agent': u'False',
'OS-DCF:diskConfig': u'MANUAL',
'progress': 100,
'request_ids': []},
'progress': 100},
'size': 323004185,
'status': u'active',
'tags': [],
@ -597,8 +593,7 @@ class TestUtils(base.TestCase):
'power_state': 1,
'private_v4': None,
'progress': 0,
'properties': {
'request_ids': []},
'properties': {},
'public_v4': None,
'public_v6': None,
'security_groups': [{u'name': u'default'}],
@ -678,12 +673,10 @@ class TestUtils(base.TestCase):
'OS-EXT-STS:vm_state': u'active',
'OS-SRV-USG:launched_at': u'2015-08-01T19:52:02.000000',
'OS-SRV-USG:terminated_at': None,
'os-extended-volumes:volumes_attached': [],
'request_ids': []},
'os-extended-volumes:volumes_attached': []},
'public_v4': None,
'public_v6': None,
'region': u'RegionOne',
'request_ids': [],
'security_groups': [{u'name': u'default'}],
'status': u'ACTIVE',
'task_state': None,