summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorSoren Hansen <soren.hansen@rackspace.com>2010-12-13 16:42:35 +0100
committerSoren Hansen <soren.hansen@rackspace.com>2010-12-13 16:42:35 +0100
commitbe9a3cd7e17edac4032c8ae554f75d725b0ad54a (patch)
tree37a9713ae32cf3cf78fa848d8c0ec4240efaea6c /nova/api
parent65c0443c4a6c6ffa525d07e47275382c45bc8ffe (diff)
downloadnova-be9a3cd7e17edac4032c8ae554f75d725b0ad54a.tar.gz
nova-be9a3cd7e17edac4032c8ae554f75d725b0ad54a.tar.xz
nova-be9a3cd7e17edac4032c8ae554f75d725b0ad54a.zip
Move security group refresh logic into ComputeAPI.
Add a trigger_security_group_members_refresh to ComputeAPI which finds the hosts that have instances that have security groups that reference a security group in which a new instance has just been placed, and sends a refresh_security_group_members to each of them.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/cloud.py15
1 files changed, 4 insertions, 11 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 05f8c3d0b..2694b8b00 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -130,15 +130,6 @@ class CloudController(object):
result[key] = [line]
return result
- def _trigger_refresh_security_group(self, context, security_group):
- nodes = set([instance['host'] for instance in security_group.instances
- if instance['host'] is not None])
- for node in nodes:
- rpc.cast(context,
- '%s.%s' % (FLAGS.compute_topic, node),
- {"method": "refresh_security_group",
- "args": {"security_group_id": security_group.id}})
-
def get_metadata(self, address):
ctxt = context.get_admin_context()
instance_ref = db.fixed_ip_get_instance(ctxt, address)
@@ -369,7 +360,8 @@ class CloudController(object):
match = False
if match:
db.security_group_rule_destroy(context, rule['id'])
- self._trigger_refresh_security_group(context, security_group)
+ self.compute_api.trigger_security_group_rules_refresh(context,
+ security_group['id'])
return True
raise exception.ApiError("No rule for the specified parameters.")
@@ -392,7 +384,8 @@ class CloudController(object):
security_group_rule = db.security_group_rule_create(context, values)
- self._trigger_refresh_security_group(context, security_group)
+ self.compute_api.trigger_security_group_rules_refresh(context,
+ security_group['id'])
return True