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'])
Example #2
0
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()
Example #3
0
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()
Example #4
0
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()
Example #5
0
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()
Example #6
0
File: api.py Project: tengqm/senlin
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()
Example #7
0
File: api.py Project: tengqm/senlin
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()
Example #8
0
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()
Example #9
0
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()
Example #10
0
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()
Example #11
0
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)