def test_adds_an_in_clause_for_multiple_values(self): self.model.cat.in_.return_value = 'fake in clause' filters = {'cat': ['foo', 'quux']} db_filters.exact_filter(self.query, self.model, filters) self.query.filter.assert_called_once_with('fake in clause') self.model.cat.in_.assert_called_once_with(['foo', 'quux'])
def trigger_get_all(context, limit=None, marker=None, sort_keys=None, sort_dir=None, filters=None, project_safe=True, show_deleted=False): query = soft_delete_aware_query(context, models.Trigger, show_deleted=show_deleted) if project_safe: query = query.filter_by(project=context.project) if filters is None: filters = {} sort_key_map = { consts.TRIGGER_NAME: models.Trigger.name.key, consts.TRIGGER_TYPE: models.Trigger.type.key, consts.TRIGGER_STATE: models.Trigger.state.key, consts.TRIGGER_SEVERITY: models.Trigger.severity.key, consts.TRIGGER_ENABLED: models.Trigger.enabled.key, consts.TRIGGER_CREATED_TIME: models.Trigger.created_time.key, consts.TRIGGER_UPDATED_TIME: models.Trigger.updated_time.key, } keys = _get_sort_keys(sort_keys, sort_key_map) query = db_filters.exact_filter(query, models.Trigger, filters) return _paginate_query(context, query, models.Trigger, limit=limit, marker=marker, sort_keys=keys, sort_dir=sort_dir, default_sort_keys=['created_time']).all()
def webhook_get_all(context, show_deleted=False, limit=None, marker=None, sort_keys=None, sort_dir=None, filters=None, project_safe=True): query = soft_delete_aware_query(context, models.Webhook, show_deleted=show_deleted) if project_safe: query = query.filter_by(project=context.project) if filters is None: filters = {} sort_key_map = { consts.WEBHOOK_NAME: models.Webhook.name.key, consts.WEBHOOK_OBJ_ID: models.Webhook.obj_id.key, consts.WEBHOOK_OBJ_TYPE: models.Webhook.obj_type.key, consts.WEBHOOK_CREATED_TIME: models.Webhook.created_time.key, consts.WEBHOOK_DELETED_TIME: models.Webhook.deleted_time.key, } keys = _get_sort_keys(sort_keys, sort_key_map) query = db_filters.exact_filter(query, models.Webhook, filters) return _paginate_query(context, query, models.Webhook, limit=limit, marker=marker, sort_keys=keys, sort_dir=sort_dir, default_sort_keys=['obj_id']).all()
def node_get_all(context, cluster_id=None, show_deleted=False, limit=None, marker=None, sort_keys=None, sort_dir=None, filters=None, project_safe=True): if cluster_id is None: query = _query_node_get_all(context, show_deleted=show_deleted) else: query = _query_node_get_all(context, show_deleted=show_deleted, cluster_id=cluster_id) if project_safe: query = query.filter_by(project=context.project) if filters is None: filters = {} sort_key_map = { consts.NODE_INDEX: models.Node.index.key, consts.NODE_NAME: models.Node.name.key, consts.NODE_CREATED_TIME: models.Node.created_time.key, consts.NODE_UPDATED_TIME: models.Node.updated_time.key, consts.NODE_DELETED_TIME: models.Node.deleted_time.key, consts.NODE_STATUS: models.Node.status.key, } keys = _get_sort_keys(sort_keys, sort_key_map) query = db_filters.exact_filter(query, models.Node, filters) return _paginate_query(context, query, models.Node, limit=limit, marker=marker, sort_keys=keys, sort_dir=sort_dir, default_sort_keys=['init_time']).all()
def cluster_count_all(context, filters=None, project_safe=True, show_deleted=False, show_nested=False): query = _query_cluster_get_all(context, project_safe=project_safe, show_deleted=show_deleted, show_nested=show_nested) query = db_filters.exact_filter(query, models.Cluster, filters) return query.count()
def action_get_all(context, filters=None, limit=None, marker=None, sort_keys=None, sort_dir=None, show_deleted=False): query = soft_delete_aware_query(context, models.Action, show_deleted=show_deleted) if filters is None: filters = {} sort_key_map = { consts.ACTION_NAME: models.Action.name.key, consts.ACTION_TARGET: models.Action.target.key, consts.ACTION_ACTION: models.Action.action.key, consts.ACTION_INTERVAL: models.Action.interval.key, consts.ACTION_START_TIME: models.Action.start_time.key, consts.ACTION_END_TIME: models.Action.end_time.key, consts.ACTION_STATUS: models.Action.status.key, consts.ACTION_STATUS_REASON: models.Action.status_reason.key, } keys = _get_sort_keys(sort_keys, sort_key_map) query = db_filters.exact_filter(query, models.Action, filters) return _paginate_query(context, query, models.Action, limit=limit, marker=marker, sort_keys=keys, sort_dir=sort_dir, default_sort_keys=['created_time']).all()
def _event_filter_paginate_query(context, query, filters=None, limit=None, marker=None, sort_keys=None, sort_dir=None): if filters is None: filters = {} sort_key_map = { consts.EVENT_TIMESTAMP: models.Event.timestamp.key, consts.EVENT_OBJ_TYPE: models.Event.obj_type.key, consts.EVENT_OBJ_NAME: models.Event.obj_name.key, consts.EVENT_USER: models.Event.user.key, consts.EVENT_ACTION: models.Event.action.key, } keys = _get_sort_keys(sort_keys, sort_key_map) query = db_filters.exact_filter(query, models.Event, filters) return _paginate_query(context, query, models.Event, limit=limit, marker=marker, sort_keys=keys, sort_dir=sort_dir, default_sort_keys=['timestamp']).all()
def cluster_get_all(context, limit=None, marker=None, sort_keys=None, sort_dir=None, filters=None, project_safe=True, show_deleted=False, show_nested=False): query = _query_cluster_get_all(context, project_safe=project_safe, show_deleted=show_deleted, show_nested=show_nested) if filters is None: filters = {} sort_key_map = { consts.CLUSTER_NAME: models.Cluster.name.key, consts.CLUSTER_STATUS: models.Cluster.status.key, consts.CLUSTER_CREATED_TIME: models.Cluster.created_time.key, consts.CLUSTER_UPDATED_TIME: models.Cluster.updated_time.key, } keys = _get_sort_keys(sort_keys, sort_key_map) query = db_filters.exact_filter(query, models.Cluster, filters) return _paginate_query(context, query, models.Cluster, limit=limit, marker=marker, sort_keys=keys, sort_dir=sort_dir, default_sort_keys=['init_time']).all()
def cluster_policy_get_all(context, cluster_id, filters=None, sort_keys=None, sort_dir=None): query = model_query(context, models.ClusterPolicies) query = query.filter_by(cluster_id=cluster_id) if filters is None: filters = {} sort_key_map = { consts.CP_PRIORITY: models.ClusterPolicies.priority.key, consts.CP_LEVEL: models.ClusterPolicies.level.key, consts.CP_COOLDOWN: models.ClusterPolicies.cooldown.key, consts.CP_ENABLED: models.ClusterPolicies.enabled.key, } keys = _get_sort_keys(sort_keys, sort_key_map) query = db_filters.exact_filter(query, models.ClusterPolicies, filters) if sort_dir is None and sort_keys is None: sort_dir = 'desc' return _paginate_query(context, query, models.ClusterPolicies, sort_keys=keys, sort_dir=sort_dir, default_sort_keys=['priority']).all()
def profile_get_all(context, limit=None, marker=None, sort_keys=None, sort_dir=None, filters=None, show_deleted=False): query = soft_delete_aware_query(context, models.Profile, show_deleted=show_deleted) if filters is None: filters = {} sort_key_map = { consts.PROFILE_TYPE: models.Profile.type.key, consts.PROFILE_NAME: models.Profile.name.key, consts.PROFILE_PERMISSION: models.Profile.permission.key, consts.PROFILE_CREATED_TIME: models.Profile.created_time.key, consts.PROFILE_UPDATED_TIME: models.Profile.updated_time.key, consts.PROFILE_DELETED_TIME: models.Profile.deleted_time.key, } keys = _get_sort_keys(sort_keys, sort_key_map) query = db_filters.exact_filter(query, models.Profile, filters) return _paginate_query(context, query, models.Profile, limit=limit, marker=marker, sort_keys=keys, sort_dir=sort_dir, default_sort_keys=['created_time']).all()
def policy_get_all(context, limit=None, marker=None, sort_keys=None, sort_dir=None, filters=None, show_deleted=False): query = soft_delete_aware_query(context, models.Policy, show_deleted=show_deleted) if filters is None: filters = {} sort_key_map = { consts.POLICY_TYPE: models.Policy.type.key, consts.POLICY_NAME: models.Policy.name.key, consts.POLICY_LEVEL: models.Policy.level.key, consts.POLICY_COOLDOWN: models.Policy.cooldown.key, consts.POLICY_CREATED_TIME: models.Policy.created_time.key, consts.POLICY_UPDATED_TIME: models.Policy.updated_time.key, consts.POLICY_DELETED_TIME: models.Policy.deleted_time.key, } keys = _get_sort_keys(sort_keys, sort_key_map) query = db_filters.exact_filter(query, models.Policy, filters) return _paginate_query(context, query, models.Policy, limit=limit, marker=marker, sort_keys=keys, sort_dir=sort_dir, default_sort_keys=['created_time']).all()
def test_add_exact_match_clause_for_single_values(self): filters = {'cat': 'foo'} db_filters.exact_filter(self.query, self.model, filters) self.query.filter_by.assert_called_once_with(cat='foo')
def test_returns_same_query_for_empty_filters(self): filters = {} db_filters.exact_filter(self.query, self.model, filters) self.assertEqual(0, self.query.call_count)