From 4e6bae7a00a1a5768a20f54f484299d7396123d5 Mon Sep 17 00:00:00 2001 From: Joe Gordon Date: Wed, 28 Nov 2012 16:31:57 -0800 Subject: Access DB values as dict not as attributes We cannot assume nova.db.api will be returning sqlalchemy objects with attributes, instead treat return values as dicts Part of blueprint db-api-cleanup Change-Id: Icb955118aabff1d8f9ee7c3e95f8f2b3ffc671ee --- nova/api/ec2/cloud.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'nova/api') diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index df6f17fb0..ab59205a9 100644 --- a/nova/api/ec2/cloud.py +++ b/nova/api/ec2/cloud.py @@ -242,7 +242,7 @@ class CloudController(object): disabled_services = db.service_get_all(context, True) available_zones = [] - for zone in [service.availability_zone for service + for zone in [service['availability_zone'] for service in enabled_services]: if not zone in available_zones: available_zones.append(zone) @@ -277,12 +277,13 @@ class CloudController(object): zone_hosts = {} host_services = {} for service in enabled_services: - zone_hosts.setdefault(service.availability_zone, []) - if not service.host in zone_hosts[service.availability_zone]: - zone_hosts[service.availability_zone].append(service.host) + zone_hosts.setdefault(service['availability_zone'], []) + if not service['host'] in zone_hosts[service['availability_zone']]: + zone_hosts[service['availability_zone']].append( + service['host']) - host_services.setdefault(service.host, []) - host_services[service.host].append(service) + host_services.setdefault(service['host'], []) + host_services[service['host']].append(service) result = [] for zone in available_zones: @@ -475,11 +476,11 @@ class CloudController(object): def _format_security_group(self, context, group): g = {} - g['groupDescription'] = group.description - g['groupName'] = group.name - g['ownerId'] = group.project_id + g['groupDescription'] = group['description'] + g['groupName'] = group['name'] + g['ownerId'] = group['project_id'] g['ipPermissions'] = [] - for rule in group.rules: + for rule in group['rules']: r = {} r['groups'] = [] r['ipRanges'] = [] @@ -612,7 +613,7 @@ class CloudController(object): rulesvalues = self._rule_args_to_dict(context, values) self._validate_rulevalues(rulesvalues) for values_for_rule in rulesvalues: - values_for_rule['parent_group_id'] = security_group.id + values_for_rule['parent_group_id'] = security_group['id'] rule_ids.append(self.security_group_api.rule_exists( security_group, values_for_rule)) @@ -645,7 +646,7 @@ class CloudController(object): rulesvalues = self._rule_args_to_dict(context, values) self._validate_rulevalues(rulesvalues) for values_for_rule in rulesvalues: - values_for_rule['parent_group_id'] = security_group.id + values_for_rule['parent_group_id'] = security_group['id'] if self.security_group_api.rule_exists(security_group, values_for_rule): err = _('%s - This rule already exists in group') -- cgit