summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2010-12-21 18:43:41 +0000
committerVishvananda Ishaya <vishvananda@gmail.com>2010-12-21 18:43:41 +0000
commita17fa6df76a3215d84d99738a1a7752a54cfe914 (patch)
tree94337a2291d37b14dd72330ba172d0a744306b30
parentbaf0b1db2d4997f0e47277763e8ab393c131b8c8 (diff)
downloadnova-a17fa6df76a3215d84d99738a1a7752a54cfe914.tar.gz
nova-a17fa6df76a3215d84d99738a1a7752a54cfe914.tar.xz
nova-a17fa6df76a3215d84d99738a1a7752a54cfe914.zip
don't allocate networks when getting vpn info
-rw-r--r--nova/auth/manager.py6
-rw-r--r--nova/db/sqlalchemy/api.py24
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
###################