diff options
author | Vishvananda Ishaya <vishvananda@gmail.com> | 2010-12-21 18:43:41 +0000 |
---|---|---|
committer | Vishvananda Ishaya <vishvananda@gmail.com> | 2010-12-21 18:43:41 +0000 |
commit | a17fa6df76a3215d84d99738a1a7752a54cfe914 (patch) | |
tree | 94337a2291d37b14dd72330ba172d0a744306b30 | |
parent | baf0b1db2d4997f0e47277763e8ab393c131b8c8 (diff) | |
download | nova-a17fa6df76a3215d84d99738a1a7752a54cfe914.tar.gz nova-a17fa6df76a3215d84d99738a1a7752a54cfe914.tar.xz nova-a17fa6df76a3215d84d99738a1a7752a54cfe914.zip |
don't allocate networks when getting vpn info
-rw-r--r-- | nova/auth/manager.py | 6 | ||||
-rw-r--r-- | nova/db/sqlalchemy/api.py | 24 |
2 files changed, 16 insertions, 14 deletions
diff --git a/nova/auth/manager.py b/nova/auth/manager.py index 74da8e045..f9a7dd000 100644 --- a/nova/auth/manager.py +++ b/nova/auth/manager.py @@ -540,10 +540,10 @@ class AuthManager(object): """ network_ref = db.project_get_network(context.get_admin_context(), - Project.safe_id(project)) + Project.safe_id(project), False) - if not network_ref['vpn_public_port']: - raise exception.NotFound('project network data has not been set') + if not network_ref: + return (None, None) return (network_ref['vpn_public_address'], network_ref['vpn_public_port']) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 6ecd824e1..35c2c76fd 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -1075,24 +1075,26 @@ def network_update(context, network_id, values): @require_context -def project_get_network(context, project_id): +def project_get_network(context, project_id, associate=True): session = get_session() - rv = session.query(models.Network).\ - filter_by(project_id=project_id).\ - filter_by(deleted=False).\ - first() - if not rv: + result = session.query(models.Network).\ + filter_by(project_id=project_id).\ + filter_by(deleted=False).\ + first() + if not result: + if not associate: + return None try: return network_associate(context, project_id) except IntegrityError: # NOTE(vish): We hit this if there is a race and two # processes are attempting to allocate the # network at the same time - rv = session.query(models.Network).\ - filter_by(project_id=project_id).\ - filter_by(deleted=False).\ - first() - return rv + result = session.query(models.Network).\ + filter_by(project_id=project_id).\ + filter_by(deleted=False).\ + first() + return result ################### |