summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-09-19 00:25:35 +0000
committerGerrit Code Review <review@openstack.org>2012-09-19 00:25:35 +0000
commit5a349b82fc62c5bde0f93a25df8acfe9474bd3fd (patch)
tree723cd647f4ca9554c7ec05be052e33781be2a9c8
parentab03a6c7fcee9afa3b53991811d0345933422287 (diff)
parent5d46d3fb74452a7a1c8ddd8d1a8b643712a0f801 (diff)
downloadnova-5a349b82fc62c5bde0f93a25df8acfe9474bd3fd.tar.gz
nova-5a349b82fc62c5bde0f93a25df8acfe9474bd3fd.tar.xz
nova-5a349b82fc62c5bde0f93a25df8acfe9474bd3fd.zip
Merge "make ensure_default_security_group() call sgh"
-rw-r--r--nova/compute/api.py5
-rw-r--r--nova/db/api.py7
-rw-r--r--nova/db/sqlalchemy/api.py14
3 files changed, 20 insertions, 6 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 0b82d0ed5..13d663194 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -136,6 +136,7 @@ class API(base.Base):
self.network_api = network_api or network.API()
self.volume_api = volume_api or volume.API()
self.security_group_api = security_group_api or SecurityGroupAPI()
+ self.sgh = importutils.import_object(FLAGS.security_group_handler)
self.consoleauth_rpcapi = consoleauth_rpcapi.ConsoleAuthAPI()
self.scheduler_rpcapi = scheduler_rpcapi.SchedulerAPI()
self.compute_rpcapi = compute_rpcapi.ComputeAPI()
@@ -2232,7 +2233,9 @@ class SecurityGroupAPI(base.Base):
:param context: the security context
"""
- self.db.security_group_ensure_default(context)
+ existed, group = self.db.security_group_ensure_default(context)
+ if not existed:
+ self.sgh.trigger_security_group_create_refresh(context, group)
def create(self, context, name, description):
try:
diff --git a/nova/db/api.py b/nova/db/api.py
index de393287a..cb651793e 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -1288,7 +1288,12 @@ def security_group_create(context, values):
def security_group_ensure_default(context):
- """Ensure default security group exists for a project_id."""
+ """Ensure default security group exists for a project_id.
+
+ Returns a tuple with the first element being a bool indicating
+ if the default security group previously existed. Second
+ element is the dict used to create the default security group.
+ """
return IMPL.security_group_ensure_default(context)
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 533298bee..ad013b877 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -1423,8 +1423,8 @@ def instance_create(context, values):
def _get_sec_group_models(session, security_groups):
models = []
- default_group = security_group_ensure_default(context,
- session=session)
+ _existed, default_group = security_group_ensure_default(context,
+ session=session)
if 'default' in security_groups:
models.append(default_group)
# Generate a new list, so we don't modify the original
@@ -3527,11 +3527,17 @@ def security_group_create(context, values, session=None):
def security_group_ensure_default(context, session=None):
- """Ensure default security group exists for a project_id."""
+ """Ensure default security group exists for a project_id.
+
+ Returns a tuple with the first element being a bool indicating
+ if the default security group previously existed. Second
+ element is the dict used to create the default security group.
+ """
try:
default_group = security_group_get_by_name(context,
context.project_id, 'default',
columns_to_join=[], session=session)
+ return (True, default_group)
except exception.NotFound:
values = {'name': 'default',
'description': 'default',
@@ -3539,7 +3545,7 @@ def security_group_ensure_default(context, session=None):
'project_id': context.project_id}
default_group = security_group_create(context, values,
session=session)
- return default_group
+ return (False, default_group)
@require_context