summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2011-11-16 20:40:12 +0000
committerGerrit Code Review <review@openstack.org>2011-11-16 20:40:12 +0000
commitc987f78853618e24adb642cd8d76ba6be36ce075 (patch)
tree820d3c2246e72331fac6394b358617e035ba9bad /nova/compute
parent57ad4de6487f625a9e39b17ba612b6f1b43e937c (diff)
parent53e14f578e066c5e9d715e6085d25e47d19ad3f7 (diff)
Merge "Convert security_group calls to use instance objs"
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/api.py36
1 files changed, 16 insertions, 20 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index b57435716..aabc4838c 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -690,63 +690,59 @@ class API(base.Base):
return False
- def add_security_group(self, context, instance_id, security_group_name):
+ def add_security_group(self, context, instance, security_group_name):
"""Add security group to the instance"""
security_group = self.db.security_group_get_by_name(context,
context.project_id,
security_group_name)
- # check if the server exists
- if utils.is_uuid_like(instance_id):
- inst = self.db.instance_get_by_uuid(context, instance_id)
- else:
- inst = self.db.instance_get(context, instance_id)
- instance_id = inst['id']
+
+ instance_id = instance['id']
+
#check if the security group is associated with the server
if self._is_security_group_associated_with_server(security_group,
- instance_id):
+ instance_id):
raise exception.SecurityGroupExistsForInstance(
security_group_id=security_group['id'],
instance_id=instance_id)
#check if the instance is in running state
- if inst['state'] != power_state.RUNNING:
+ if instance['power_state'] != power_state.RUNNING:
raise exception.InstanceNotRunning(instance_id=instance_id)
self.db.instance_add_security_group(context.elevated(),
instance_id,
security_group['id'])
+ host = instance['host']
rpc.cast(context,
- self.db.queue_get_for(context, FLAGS.compute_topic, inst['host']),
+ self.db.queue_get_for(context, FLAGS.compute_topic, host),
{"method": "refresh_security_group_rules",
"args": {"security_group_id": security_group['id']}})
- def remove_security_group(self, context, instance_id, security_group_name):
+ def remove_security_group(self, context, instance, security_group_name):
"""Remove the security group associated with the instance"""
security_group = self.db.security_group_get_by_name(context,
context.project_id,
security_group_name)
- # check if the server exists
- if utils.is_uuid_like(instance_id):
- inst = self.db.instance_get_by_uuid(context, instance_id)
- else:
- inst = self.db.instance_get(context, instance_id)
- instance_id = inst['id']
+
+ instance_id = instance['id']
+
#check if the security group is associated with the server
if not self._is_security_group_associated_with_server(security_group,
- instance_id):
+ instance_id):
raise exception.SecurityGroupNotExistsForInstance(
security_group_id=security_group['id'],
instance_id=instance_id)
#check if the instance is in running state
- if inst['state'] != power_state.RUNNING:
+ if instance['power_state'] != power_state.RUNNING:
raise exception.InstanceNotRunning(instance_id=instance_id)
self.db.instance_remove_security_group(context.elevated(),
instance_id,
security_group['id'])
+ host = instance['host']
rpc.cast(context,
- self.db.queue_get_for(context, FLAGS.compute_topic, inst['host']),
+ self.db.queue_get_for(context, FLAGS.compute_topic, host),
{"method": "refresh_security_group_rules",
"args": {"security_group_id": security_group['id']}})