diff --git a/senlin/db/sqlalchemy/api.py b/senlin/db/sqlalchemy/api.py index c1ae3ef0b..3b081200f 100644 --- a/senlin/db/sqlalchemy/api.py +++ b/senlin/db/sqlalchemy/api.py @@ -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: diff --git a/senlin/policies/lb_policy.py b/senlin/policies/lb_policy.py index ee479c7ba..a16d24179 100644 --- a/senlin/policies/lb_policy.py +++ b/senlin/policies/lb_policy.py @@ -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') diff --git a/senlin/tests/unit/db/test_cluster_api.py b/senlin/tests/unit/db/test_cluster_api.py index 09fe1877d..2c4e9291e 100644 --- a/senlin/tests/unit/db/test_cluster_api.py +++ b/senlin/tests/unit/db/test_cluster_api.py @@ -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') diff --git a/senlin/tests/unit/db/test_event_api.py b/senlin/tests/unit/db/test_event_api.py index e08f344a1..caa559fdd 100644 --- a/senlin/tests/unit/db/test_event_api.py +++ b/senlin/tests/unit/db/test_event_api.py @@ -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): diff --git a/senlin/tests/unit/db/test_node_api.py b/senlin/tests/unit/db/test_node_api.py index 18183ade9..082bee3cd 100644 --- a/senlin/tests/unit/db/test_node_api.py +++ b/senlin/tests/unit/db/test_node_api.py @@ -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) diff --git a/senlin/tests/unit/db/test_policy_api.py b/senlin/tests/unit/db/test_policy_api.py index 9cfb6de48..90cf65801 100644 --- a/senlin/tests/unit/db/test_policy_api.py +++ b/senlin/tests/unit/db/test_policy_api.py @@ -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): diff --git a/senlin/tests/unit/db/test_profile_api.py b/senlin/tests/unit/db/test_profile_api.py index 6c4b20706..1111b9ad9 100644 --- a/senlin/tests/unit/db/test_profile_api.py +++ b/senlin/tests/unit/db/test_profile_api.py @@ -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): diff --git a/senlin/tests/unit/db/test_receiver_api.py b/senlin/tests/unit/db/test_receiver_api.py index cfac8730e..b21d6d2da 100644 --- a/senlin/tests/unit/db/test_receiver_api.py +++ b/senlin/tests/unit/db/test_receiver_api.py @@ -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):