summaryrefslogtreecommitdiffstats
path: root/nova/db
diff options
context:
space:
mode:
authorTrey Morris <trey.morris@rackspace.com>2011-02-07 13:43:23 -0600
committerTrey Morris <trey.morris@rackspace.com>2011-02-07 13:43:23 -0600
commitb6022c1f7d7dc9294f6b1b613c7e99bd9437a72e (patch)
tree1ed5cffa8246804fcbee44e7d11ea5d00af6ec44 /nova/db
parent0e6b1c02b3ae82526f3cf83ce70213e7a107701d (diff)
downloadnova-b6022c1f7d7dc9294f6b1b613c7e99bd9437a72e.tar.gz
nova-b6022c1f7d7dc9294f6b1b613c7e99bd9437a72e.tar.xz
nova-b6022c1f7d7dc9294f6b1b613c7e99bd9437a72e.zip
added network_get_all_by_instance(), call to reset_network in vmops
Diffstat (limited to 'nova/db')
-rw-r--r--nova/db/sqlalchemy/api.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 31865d553..26b685e43 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -1055,12 +1055,6 @@ def network_get(context, network_id, session=None):
return result
-@require_context
-def network_get_all(context):
- session = get_session()
- return session.query(models.Network).all()
-
-
# NOTE(vish): pylint complains because of the long method name, but
# it fits with the names of the rest of the methods
# pylint: disable-msg=C0103
@@ -1105,6 +1099,19 @@ def network_get_by_instance(_context, instance_id):
@require_admin_context
+def network_get_all_by_instance(_context, instance_id):
+ session = get_session()
+ rv = session.query(models.Network).\
+ filter_by(deleted=False).\
+ join(models.Network.fixed_ips).\
+ filter_by(instance_id=instance_id).\
+ filter_by(deleted=False)
+ if not rv:
+ raise exception.NotFound(_('No network for instance %s') % instance_id)
+ return rv
+
+
+@require_admin_context
def network_set_host(context, network_id, host_id):
session = get_session()
with session.begin():