summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorAaron Rosen <arosen@nicira.com>2013-02-25 15:03:20 -0800
committerAaron Rosen <arosen@nicira.com>2013-02-27 14:57:54 -0800
commit0bc531254cb964556cbe8d2fbf1f9321f92aaf93 (patch)
tree1dbd23d5ac26586a1adaf56f7bac2f94361fb712 /nova/api
parent1ca3c1fced8eddde48e3d81ac8874409c4a61078 (diff)
ec2 _format_security_group() accesses db when using quantum_driver
This patch fixes _format_security_group() so that it does not access the db when using quantum. In addition, this patch implements the querying params that were missing in get() and list() in the quantum security group driver. Fixes bug 1131956 Change-Id: I5ec65829301bca7e5b215d5052a18528dff76517
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/cloud.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index dcbde3428..60b06c233 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -503,9 +503,17 @@ class CloudController(object):
r['groups'] = []
r['ipRanges'] = []
if rule['group_id']:
- source_group = rule['grantee_group']
- r['groups'] += [{'groupName': source_group['name'],
- 'userId': source_group['project_id']}]
+ if rule.get('grantee_group'):
+ source_group = rule['grantee_group']
+ r['groups'] += [{'groupName': source_group['name'],
+ 'userId': source_group['project_id']}]
+ else:
+ # rule is not always joined with grantee_group
+ # for example when using quantum driver.
+ source_group = self.security_group_api.get(
+ context, id=rule['group_id'])
+ r['groups'] += [{'groupName': source_group.get('name'),
+ 'userId': source_group.get('project_id')}]
if rule['protocol']:
r['ipProtocol'] = rule['protocol'].lower()
r['fromPort'] = rule['from_port']