def cluster_policy_get_all(context, cluster_id, filters=None, sort=None): query = model_query(context, models.ClusterPolicies) query = query.filter_by(cluster_id=cluster_id) if filters is not None: key_enabled = consts.CP_ENABLED if key_enabled in filters: filter_enabled = {key_enabled: filters[key_enabled]} query = utils.exact_filter(query, models.ClusterPolicies, filter_enabled) key_type = consts.CP_POLICY_TYPE key_name = consts.CP_POLICY_NAME if key_type in filters and key_name in filters: query = query.join(models.Policy).filter( models.Policy.type == filters[key_type] and models.Policy.name == filters[key_name]) elif key_type in filters: query = query.join( models.Policy).filter(models.Policy.type == filters[key_type]) elif key_name in filters: query = query.join( models.Policy).filter(models.Policy.name == filters[key_name]) keys, dirs = utils.get_sort_params(sort) return sa_utils.paginate_query(query, models.ClusterPolicies, None, keys, sort_dirs=dirs).all()
def test_value_multiple_including_id(self): keys, dirs = utils.get_sort_params('foo,bar,id') self.assertEqual(3, len(keys)) self.assertEqual(3, len(dirs)) self.assertEqual(['foo', 'bar', 'id'], keys) self.assertEqual(['asc-nullsfirst', 'asc-nullsfirst', 'asc-nullsfirst'], dirs)
def test_value_multiple(self): keys, dirs = utils.get_sort_params('foo,bar,zoo') self.assertEqual(4, len(keys)) self.assertEqual(4, len(dirs)) self.assertEqual(['foo', 'bar', 'zoo', 'id'], keys) self.assertEqual(['asc-nullsfirst', 'asc-nullsfirst', 'asc-nullsfirst', 'asc'], dirs)
def test_value_multiple_with_dirs_and_default_key(self): keys, dirs = utils.get_sort_params('foo:asc,bar,zoo:desc', 'notused') self.assertEqual(4, len(keys)) self.assertEqual(4, len(dirs)) self.assertEqual(['foo', 'bar', 'zoo', 'id'], keys) self.assertEqual(['asc-nullsfirst', 'asc-nullsfirst', 'desc-nullslast', 'asc'], dirs)
def _event_filter_paginate_query(context, query, filters=None, limit=None, marker=None, sort=None): if filters: query = utils.exact_filter(query, models.Event, filters) keys, dirs = utils.get_sort_params(sort, consts.EVENT_TIMESTAMP) if marker: marker = model_query(context, models.Event).get(marker) return sa_utils.paginate_query(query, models.Event, limit, keys, marker=marker, sort_dirs=dirs).all()
def cluster_policy_get_all(context, cluster_id, filters=None, sort=None): query = model_query(context, models.ClusterPolicies) query = query.filter_by(cluster_id=cluster_id) if filters: query = utils.exact_filter(query, models.ClusterPolicies, filters) keys, dirs = utils.get_sort_params(sort) return sa_utils.paginate_query(query, models.ClusterPolicies, None, keys, sort_dirs=dirs).all()
def cluster_get_all(context, limit=None, marker=None, sort=None, filters=None, project_safe=True): query = _query_cluster_get_all(context, project_safe=project_safe) if filters: query = utils.exact_filter(query, models.Cluster, filters) keys, dirs = utils.get_sort_params(sort, consts.CLUSTER_INIT_AT) if marker: marker = model_query(context, models.Cluster).get(marker) return sa_utils.paginate_query(query, models.Cluster, limit, keys, marker=marker, sort_dirs=dirs).all()
def node_get_all(context, cluster_id=None, limit=None, marker=None, sort=None, filters=None, project_safe=True): query = _query_node_get_all(context, project_safe=project_safe, cluster_id=cluster_id) if filters: query = utils.exact_filter(query, models.Node, filters) keys, dirs = utils.get_sort_params(sort, consts.NODE_INIT_AT) if marker: marker = model_query(context, models.Node).get(marker) return sa_utils.paginate_query(query, models.Node, limit, keys, marker=marker, sort_dirs=dirs).all()
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: query = query.filter_by(project=context.project) if filters: query = utils.exact_filter(query, models.Receiver, filters) keys, dirs = utils.get_sort_params(sort, consts.RECEIVER_NAME) if marker: marker = model_query(context, models.Receiver).get(marker) return sa_utils.paginate_query(query, models.Receiver, limit, keys, marker=marker, sort_dirs=dirs).all()
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: query = query.filter_by(project=context.project) if filters: query = utils.exact_filter(query, models.Profile, filters) keys, dirs = utils.get_sort_params(sort, consts.PROFILE_CREATED_AT) if marker: marker = model_query(context, models.Profile).get(marker) return sa_utils.paginate_query(query, models.Profile, limit, keys, marker=marker, sort_dirs=dirs).all()
def action_get_all(context, filters=None, limit=None, marker=None, sort=None, project_safe=True): query = model_query(context, models.Action) # TODO(Qiming): Enable multi-tenancy for actions # if project_safe: # query = query.filter_by(project=context.project) if filters: query = utils.exact_filter(query, models.Action, filters) keys, dirs = utils.get_sort_params(sort, consts.ACTION_CREATED_AT) if marker: marker = model_query(context, models.Action).get(marker) return sa_utils.paginate_query(query, models.Action, limit, keys, marker=marker, sort_dirs=dirs).all()
def policy_get_all(context, limit=None, marker=None, sort=None, filters=None, project_safe=True): query = model_query(context, models.Policy) if project_safe: query = query.filter_by(project=context.project) if filters: query = utils.exact_filter(query, models.Policy, filters) keys, dirs = utils.get_sort_params(sort, consts.POLICY_CREATED_AT) if marker: marker = model_query(context, models.Policy).get(marker) return sa_utils.paginate_query(query, models.Policy, limit, keys, marker=marker, sort_dirs=dirs).all()
def test_value_multiple_with_dirs(self): keys, dirs = utils.get_sort_params('foo:asc,bar,zoo:desc') self.assertEqual(4, len(keys)) self.assertEqual(4, len(dirs)) self.assertEqual(['foo', 'bar', 'zoo', 'id'], keys) self.assertEqual(['asc', 'asc', 'desc', 'asc'], dirs)
def test_value_none(self): keys, dirs = utils.get_sort_params(None) self.assertEqual(['id'], keys) self.assertEqual(['asc'], dirs)
def test_value_none_with_default_key(self): keys, dirs = utils.get_sort_params(None, 'foo') self.assertEqual(2, len(keys)) self.assertEqual(2, len(dirs)) self.assertEqual(['foo', 'id'], keys) self.assertEqual(['asc-nullsfirst', 'asc'], dirs)
def test_value_single(self): keys, dirs = utils.get_sort_params('foo') self.assertEqual(2, len(keys)) self.assertEqual(2, len(dirs)) self.assertEqual(['foo', 'id'], keys) self.assertEqual(['asc-nullsfirst', 'asc'], dirs)