summaryrefslogtreecommitdiffstats
path: root/nova/db
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-08-15 01:27:45 +0000
committerGerrit Code Review <review@openstack.org>2012-08-15 01:27:45 +0000
commit0bc32cfef94dc2e45f86a0e526e3415ec5d4ca39 (patch)
treeef33778221b5d9d9a71774ce903929d58406de2b /nova/db
parent76267f4d6268b3a39e46dbace140e15d874dadc5 (diff)
parent9af40c167879096a8f0f209bde4e6c5cc9295b86 (diff)
downloadnova-0bc32cfef94dc2e45f86a0e526e3415ec5d4ca39.tar.gz
nova-0bc32cfef94dc2e45f86a0e526e3415ec5d4ca39.tar.xz
nova-0bc32cfef94dc2e45f86a0e526e3415ec5d4ca39.zip
Merge "Implement network association in OS API"
Diffstat (limited to 'nova/db')
-rw-r--r--nova/db/api.py4
-rw-r--r--nova/db/sqlalchemy/api.py11
2 files changed, 9 insertions, 6 deletions
diff --git a/nova/db/api.py b/nova/db/api.py
index cbbc105c7..1df1e970c 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -779,9 +779,9 @@ def key_pair_count_by_user(context, user_id):
####################
-def network_associate(context, project_id, force=False):
+def network_associate(context, project_id, network_id=None, force=False):
"""Associate a free network to a project."""
- return IMPL.network_associate(context, project_id, force)
+ return IMPL.network_associate(context, project_id, network_id, force)
def network_count(context):
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 63947cdb3..5adb633e6 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -1993,7 +1993,7 @@ def key_pair_count_by_user(context, user_id):
@require_admin_context
-def network_associate(context, project_id, force=False):
+def network_associate(context, project_id, network_id=None, force=False):
"""Associate a project with a network.
called by project_get_networks under certain conditions
@@ -2011,10 +2011,13 @@ def network_associate(context, project_id, force=False):
session = get_session()
with session.begin():
- def network_query(project_filter):
+ def network_query(project_filter, id=None):
+ filter_kwargs = {'project_id': project_filter}
+ if id is not None:
+ filter_kwargs['id'] = id
return model_query(context, models.Network, session=session,
read_deleted="no").\
- filter_by(project_id=project_filter).\
+ filter_by(**filter_kwargs).\
with_lockmode('update').\
first()
@@ -2027,7 +2030,7 @@ def network_associate(context, project_id, force=False):
# with a new network
# get new network
- network_ref = network_query(None)
+ network_ref = network_query(None, network_id)
if not network_ref:
raise db.NoMoreNetworks()