diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-08-15 01:27:45 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-08-15 01:27:45 +0000 |
| commit | 0bc32cfef94dc2e45f86a0e526e3415ec5d4ca39 (patch) | |
| tree | ef33778221b5d9d9a71774ce903929d58406de2b /nova/db | |
| parent | 76267f4d6268b3a39e46dbace140e15d874dadc5 (diff) | |
| parent | 9af40c167879096a8f0f209bde4e6c5cc9295b86 (diff) | |
| download | nova-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.py | 4 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 11 |
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() |
