summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@yahoo.com>2010-09-29 00:35:03 -0700
committerVishvananda Ishaya <vishvananda@yahoo.com>2010-09-29 00:35:03 -0700
commitab079a5b1de6b7b2685ad74e023ae31d05c043ed (patch)
tree024962c0cb21a34d22e09d927f92ea73ee15b9e3 /nova/api
parent970114e1729c35ebcc05930659bb5dfaf5b59d3d (diff)
parente609dd8620796f4eadefcff6130dfeae06b97ef4 (diff)
merged with soren's branch
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/cloud.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index d85b8512a..6c67db28d 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -244,6 +244,7 @@ class CloudController(object):
return True
def describe_security_groups(self, context, group_name=None, **kwargs):
+ self._ensure_default_security_group(context)
if context.user.is_admin():
groups = db.security_group_get_all(context)
else:
@@ -326,6 +327,7 @@ class CloudController(object):
return values
def revoke_security_group_ingress(self, context, group_name, **kwargs):
+ self._ensure_default_security_group(context)
security_group = db.security_group_get_by_name(context,
context.project.id,
group_name)
@@ -353,6 +355,7 @@ class CloudController(object):
# for these operations, so support for newer API versions
# is sketchy.
def authorize_security_group_ingress(self, context, group_name, **kwargs):
+ self._ensure_default_security_group(context)
security_group = db.security_group_get_by_name(context,
context.project.id,
group_name)
@@ -385,6 +388,7 @@ class CloudController(object):
def create_security_group(self, context, group_name, group_description):
+ self._ensure_default_security_group(context)
if db.security_group_exists(context, context.project.id, group_name):
raise exception.ApiError('group %s already exists' % group_name)
@@ -693,6 +697,18 @@ class CloudController(object):
"project_id": context.project.id}})
return db.queue_get_for(context, FLAGS.network_topic, host)
+ def _ensure_default_security_group(self, context):
+ try:
+ db.security_group_get_by_name(context,
+ context.project.id,
+ 'default')
+ except exception.NotFound:
+ values = { 'name' : 'default',
+ 'description' : 'default',
+ 'user_id' : context.user.id,
+ 'project_id' : context.project.id }
+ group = db.security_group_create({}, values)
+
def run_instances(self, context, **kwargs):
instance_type = kwargs.get('instance_type', 'm1.small')
if instance_type not in INSTANCE_TYPES:
@@ -745,6 +761,7 @@ class CloudController(object):
security_group_arg = [security_group_arg]
security_groups = []
+ self._ensure_default_security_group(context)
for security_group_name in security_group_arg:
group = db.security_group_get_by_name(context,
context.project.id,