summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/db/sqlalchemy/api.py32
-rw-r--r--nova/tests/network_unittest.py1
2 files changed, 30 insertions, 3 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 9ab53b89b..2d553d98d 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -794,11 +794,21 @@ def key_pair_get_all_by_user(_context, user_id):
###################
-def network_count(_context):
- return models.Network.count()
+#@require_admin_context
+def network_count(context):
+ if not is_admin_context(context):
+ raise exception.NotAuthorized()
+ return session.query(models.Network
+ ).filter_by(deleted=deleted
+ ).count()
+
+#@require_admin_context
def network_count_allocated_ips(_context, network_id):
+ if not is_admin_context(context):
+ raise exception.NotAuthorized()
+
session = get_session()
return session.query(models.FixedIp
).filter_by(network_id=network_id
@@ -807,7 +817,11 @@ def network_count_allocated_ips(_context, network_id):
).count()
+#@require_admin_context
def network_count_available_ips(_context, network_id):
+ if not is_admin_context(context):
+ raise exception.NotAuthorized()
+
session = get_session()
return session.query(models.FixedIp
).filter_by(network_id=network_id
@@ -817,7 +831,11 @@ def network_count_available_ips(_context, network_id):
).count()
+#@require_admin_context
def network_count_reserved_ips(_context, network_id):
+ if not is_admin_context(context):
+ raise exception.NotAuthorized()
+
session = get_session()
return session.query(models.FixedIp
).filter_by(network_id=network_id
@@ -826,7 +844,11 @@ def network_count_reserved_ips(_context, network_id):
).count()
+#@require_admin_context
def network_create(_context, values):
+ if not is_admin_context(context):
+ raise exception.NotAuthorized()
+
network_ref = models.Network()
for (key, value) in values.iteritems():
network_ref[key] = value
@@ -834,7 +856,11 @@ def network_create(_context, values):
return network_ref
-def network_destroy(_context, network_id):
+#@require_admin_context
+def network_destroy(context, network_id):
+ if not is_admin_context(context):
+ raise exception.NotAuthorized()
+
session = get_session()
with session.begin():
# TODO(vish): do we have to use sql here?
diff --git a/nova/tests/network_unittest.py b/nova/tests/network_unittest.py
index ca6a4bbc2..e01d7cff9 100644
--- a/nova/tests/network_unittest.py
+++ b/nova/tests/network_unittest.py
@@ -49,6 +49,7 @@ class NetworkTestCase(test.TrialTestCase):
self.user = self.manager.create_user('netuser', 'netuser', 'netuser')
self.projects = []
self.network = utils.import_object(FLAGS.network_manager)
+ # TODO(devcamcar): Passing project=None is Bad(tm).
self.context = context.APIRequestContext(project=None, user=self.user)
for i in range(5):
name = 'project%s' % i