diff options
| author | Joe Gordon <jogo@cloudscaling.com> | 2012-11-28 16:31:57 -0800 |
|---|---|---|
| committer | Joe Gordon <joe.gordon0@gmail.com> | 2012-11-28 20:48:40 -0800 |
| commit | 4e6bae7a00a1a5768a20f54f484299d7396123d5 (patch) | |
| tree | 1867837292d048ed15bf03198bc9e42f26239b4a /nova/api | |
| parent | 0666348b033b1838eef37c0f7e9db0d9e7bcb03a (diff) | |
| download | nova-4e6bae7a00a1a5768a20f54f484299d7396123d5.tar.gz nova-4e6bae7a00a1a5768a20f54f484299d7396123d5.tar.xz nova-4e6bae7a00a1a5768a20f54f484299d7396123d5.zip | |
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
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/ec2/cloud.py | 25 |
1 files changed, 13 insertions, 12 deletions
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') |
