summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJoe Gordon <jogo@cloudscaling.com>2012-11-28 16:31:57 -0800
committerJoe Gordon <joe.gordon0@gmail.com>2012-11-28 20:48:40 -0800
commit4e6bae7a00a1a5768a20f54f484299d7396123d5 (patch)
tree1867837292d048ed15bf03198bc9e42f26239b4a /nova/api
parent0666348b033b1838eef37c0f7e9db0d9e7bcb03a (diff)
downloadnova-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.py25
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')