Ejemplo n.º 1
0
    def test_adds_an_in_clause_for_multiple_values(self):
        self.model.cat.in_.return_value = 'fake in clause'
        filters = {'cat': ['foo', 'quux']}
        utils.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'])
Ejemplo n.º 2
0
    def test_adds_an_in_clause_for_multiple_values(self):
        self.model.cat.in_.return_value = 'fake in clause'
        filters = {'cat': ['foo', 'quux']}
        utils.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'])
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
def cluster_policy_get_by_type(context, cluster_id, policy_type, filters=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)

    query = query.join(models.Policy).filter(models.Policy.type == policy_type)

    return query.all()
Ejemplo n.º 6
0
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()
Ejemplo n.º 7
0
def cluster_policy_get_by_type(context, cluster_id, policy_type, filters=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)

    query = query.join(models.Policy).filter(models.Policy.type == policy_type)

    return query.all()
Ejemplo n.º 8
0
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()
Ejemplo n.º 9
0
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()
Ejemplo n.º 10
0
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()
Ejemplo n.º 11
0
def cluster_policy_get_by_name(context, cluster_id, policy_name, filters=None):

    query = model_query(context, models.ClusterPolicies)
    query = query.filter_by(cluster_id=cluster_id)

    key_enabled = consts.CP_ENABLED
    if filters and key_enabled in filters:
        filter_enabled = {key_enabled: filters[key_enabled]}
        query = utils.exact_filter(query, models.ClusterPolicies,
                                   filter_enabled)

    query = query.join(models.Policy).filter(models.Policy.name == policy_name)

    return query.all()
Ejemplo n.º 12
0
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()
Ejemplo n.º 13
0
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()
Ejemplo n.º 14
0
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()
Ejemplo n.º 15
0
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()
Ejemplo n.º 16
0
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()
Ejemplo n.º 17
0
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()
Ejemplo n.º 18
0
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()
Ejemplo n.º 19
0
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()
Ejemplo n.º 20
0
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()
Ejemplo n.º 21
0
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()
Ejemplo n.º 22
0
 def test_returns_same_query_for_empty_filters(self):
     filters = {}
     utils.exact_filter(self.query, self.model, filters)
     self.assertEqual(0, self.query.call_count)
Ejemplo n.º 23
0
    def test_add_exact_match_clause_for_single_values(self):
        filters = {'cat': 'foo'}
        utils.exact_filter(self.query, self.model, filters)

        self.query.filter_by.assert_called_once_with(cat='foo')
Ejemplo n.º 24
0
 def test_returns_same_query_for_empty_filters(self):
     filters = {}
     utils.exact_filter(self.query, self.model, filters)
     self.assertEqual(0, self.query.call_count)
Ejemplo n.º 25
0
def cluster_count_all(context, filters=None, project_safe=True):
    query = _query_cluster_get_all(context, project_safe=project_safe)
    query = utils.exact_filter(query, models.Cluster, filters)
    return query.count()
Ejemplo n.º 26
0
def cluster_count_all(context, filters=None, project_safe=True):
    query = _query_cluster_get_all(context, project_safe=project_safe)
    query = utils.exact_filter(query, models.Cluster, filters)
    return query.count()
Ejemplo n.º 27
0
    def test_add_exact_match_clause_for_single_values(self):
        filters = {'cat': 'foo'}
        utils.exact_filter(self.query, self.model, filters)

        self.query.filter_by.assert_called_once_with(cat='foo')