Remove is_admin judge in xyz_get_all at db layer

Just check project_safe to decide whether list all projects at
db layer, and check admin context at engine layer.

Change-Id: I4efb633fb9f83dae194bc266711fdd0d21edb39b
This commit is contained in:
lvdongbing 2016-09-18 03:35:52 -04:00
parent 654487f86c
commit 67ca4d5a9e
8 changed files with 28 additions and 8 deletions

View File

@ -137,7 +137,7 @@ def cluster_get_by_short_id(context, short_id, project_safe=True):
def _query_cluster_get_all(context, project_safe=True):
query = model_query(context, models.Cluster)
if not context.is_admin and project_safe:
if project_safe:
query = query.filter_by(project=context.project)
return query
@ -244,7 +244,7 @@ def _query_node_get_all(context, project_safe=True, cluster_id=None):
if cluster_id is not None:
query = query.filter_by(cluster_id=cluster_id)
if not context.is_admin and project_safe:
if project_safe:
query = query.filter_by(project=context.project)
return query
@ -474,7 +474,7 @@ def policy_get_all(context, limit=None, marker=None, sort=None, filters=None,
project_safe=True):
query = model_query(context, models.Policy)
if not context.is_admin and project_safe:
if project_safe:
query = query.filter_by(project=context.project)
if filters:
@ -618,7 +618,7 @@ def profile_get_all(context, limit=None, marker=None, sort=None, filters=None,
project_safe=True):
query = model_query(context, models.Profile)
if not context.is_admin and project_safe:
if project_safe:
query = query.filter_by(project=context.project)
if filters:
@ -737,7 +737,7 @@ def _event_filter_paginate_query(context, query, filters=None,
def event_get_all(context, limit=None, marker=None, sort=None, filters=None,
project_safe=True):
query = model_query(context, models.Event)
if not context.is_admin and project_safe:
if project_safe:
query = query.filter_by(project=context.project)
return _event_filter_paginate_query(context, query, filters=filters,
@ -1115,7 +1115,7 @@ def receiver_get(context, receiver_id, project_safe=True):
def receiver_get_all(context, limit=None, marker=None, filters=None, sort=None,
project_safe=True):
query = model_query(context, models.Receiver)
if not context.is_admin and project_safe:
if project_safe:
query = query.filter_by(project=context.project)
if filters:

View File

@ -372,7 +372,7 @@ class LoadBalancingPolicy(base.Policy):
return False, reason
nodes = nm.Node.load_all(oslo_context.get_current(),
cluster_id=cluster.id)
cluster_id=cluster.id, project_safe=False)
for node in nodes:
if 'lb_member' in node.data:
node.data.pop('lb_member')

View File

@ -222,6 +222,8 @@ class DBAPIClusterTest(base.SenlinTestCase):
admin_ctx = utils.dummy_context(project='another-project',
is_admin=True)
clusters = db_api.cluster_get_all(admin_ctx, project_safe=True)
self.assertEqual(0, len(clusters))
clusters = db_api.cluster_get_all(admin_ctx, project_safe=False)
self.assertEqual(5, len(clusters))
def test_cluster_get_all_with_filters(self):
@ -364,8 +366,10 @@ class DBAPIClusterTest(base.SenlinTestCase):
admin_ctx = utils.dummy_context(project='another-project',
is_admin=True)
self.assertEqual(5, db_api.cluster_count_all(admin_ctx,
self.assertEqual(0, db_api.cluster_count_all(admin_ctx,
project_safe=True))
self.assertEqual(5, db_api.cluster_count_all(admin_ctx,
project_safe=False))
def test_cluster_count_all_with_filters(self):
shared.create_cluster(self.ctx, self.profile, name='foo')

View File

@ -271,6 +271,8 @@ class DBAPIEventTest(base.SenlinTestCase):
admin_ctx = utils.dummy_context(project='another-project',
is_admin=True)
events = db_api.event_get_all(admin_ctx, project_safe=True)
self.assertEqual(0, len(events))
events = db_api.event_get_all(admin_ctx, project_safe=False)
self.assertEqual(3, len(events))
def test_event_get_all_by_cluster(self):

View File

@ -300,6 +300,8 @@ class DBAPINodeTest(base.SenlinTestCase):
admin_ctx = utils.dummy_context(project='a_different_project',
is_admin=True)
results = db_api.node_get_all(admin_ctx, project_safe=True)
self.assertEqual(0, len(results))
results = db_api.node_get_all(admin_ctx, project_safe=False)
self.assertEqual(2, len(results))
def test_node_get_by_cluster(self):
@ -356,6 +358,9 @@ class DBAPINodeTest(base.SenlinTestCase):
admin_ctx = utils.dummy_context(project='a_different_project',
is_admin=True)
nodes = db_api.node_get_all_by_cluster(admin_ctx, self.cluster.id)
self.assertEqual(0, len(nodes))
nodes = db_api.node_get_all_by_cluster(admin_ctx, self.cluster.id,
project_safe=False)
self.assertEqual(2, len(nodes))
self.assertEqual(set([node1.id, node2.id]),
set([nodes[0].id, nodes[1].id]))
@ -408,6 +413,9 @@ class DBAPINodeTest(base.SenlinTestCase):
res = db_api.node_count_by_cluster(admin_ctx, self.cluster.id,
project_safe=True)
self.assertEqual(0, res)
res = db_api.node_count_by_cluster(admin_ctx, self.cluster.id,
project_safe=False)
self.assertEqual(2, res)
def test_node_update(self):
node = shared.create_node(self.ctx, self.cluster, self.profile)

View File

@ -227,6 +227,8 @@ class DBAPIPolicyTest(base.SenlinTestCase):
admin_ctx = utils.dummy_context(project='a-different-project',
is_admin=True)
policies = db_api.policy_get_all(admin_ctx, project_safe=True)
self.assertEqual(0, len(policies))
policies = db_api.policy_get_all(admin_ctx, project_safe=False)
self.assertEqual(2, len(policies))
def test_policy_get_all_with_limit_marker(self):

View File

@ -179,6 +179,8 @@ class DBAPIProfileTest(base.SenlinTestCase):
admin_ctx = utils.dummy_context(project='a-different-project',
is_admin=True)
profiles = db_api.profile_get_all(admin_ctx, project_safe=True)
self.assertEqual(0, len(profiles))
profiles = db_api.profile_get_all(admin_ctx, project_safe=False)
self.assertEqual(2, len(profiles))
def test_profile_get_all_with_limit_marker(self):

View File

@ -286,6 +286,8 @@ class DBAPIReceiverTest(base.SenlinTestCase):
admin_ctx = utils.dummy_context(project='a-different-project',
is_admin=True)
results = db_api.receiver_get_all(admin_ctx, project_safe=True)
self.assertEqual(0, len(results))
results = db_api.receiver_get_all(admin_ctx, project_safe=False)
self.assertEqual(2, len(results))
def test_receiver_delete(self):