summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-11-02 08:11:03 +0000
committerGerrit Code Review <review@openstack.org>2012-11-02 08:11:03 +0000
commit82aec115bef8190986c4b6c36e007bd3546167ff (patch)
treebfde61190c29aa210d56435e59b8022785ac9a08
parent539107e1a6938f67efd8a0b12d8ee6e2ddd0e3f4 (diff)
parent358ccf5f196b6b43f18778afae279633c051c6d9 (diff)
downloadnova-82aec115bef8190986c4b6c36e007bd3546167ff.tar.gz
nova-82aec115bef8190986c4b6c36e007bd3546167ff.tar.xz
nova-82aec115bef8190986c4b6c36e007bd3546167ff.zip
Merge "Improve EC2 describe_security_groups performance"
-rw-r--r--nova/api/ec2/cloud.py2
-rw-r--r--nova/db/sqlalchemy/api.py4
2 files changed, 3 insertions, 3 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 20e68030f..3446b5a8f 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -457,7 +457,7 @@ class CloudController(object):
r['groups'] = []
r['ipRanges'] = []
if rule.group_id:
- source_group = db.security_group_get(context, rule.group_id)
+ source_group = rule.grantee_group
r['groups'] += [{'groupName': source_group.name,
'userId': source_group.project_id}]
if rule.protocol:
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index f5f7f3b15..a00895c57 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -3423,7 +3423,7 @@ def _security_group_get_query(context, session=None, read_deleted=None,
query = model_query(context, models.SecurityGroup, session=session,
read_deleted=read_deleted, project_only=project_only)
if join_rules:
- query = query.options(joinedload_all('rules'))
+ query = query.options(joinedload_all('rules.grantee_group'))
return query
@@ -3480,7 +3480,7 @@ def security_group_get_by_name(context, project_id, group_name,
filter_by(name=group_name)
if columns_to_join is None:
- columns_to_join = ['instances', 'rules']
+ columns_to_join = ['instances', 'rules.grantee_group']
for column in columns_to_join:
query = query.options(joinedload_all(column))