Пример #1
0
    def test_get_sort_params_params_modified(self):
        """Verifies that the input sort parameter are modified."""
        params = {'sort': 'key1:dir1,key2:dir2,key3:dir3'}
        common.get_sort_params(params)
        self.assertEqual({}, params)

        params = {'sort_key': 'key1', 'sort_dir': 'dir1'}
        common.get_sort_params(params)
        self.assertEqual({}, params)
Пример #2
0
    def test_get_sort_params_params_modified(self):
        """Verifies that the input sort parameter are modified."""
        params = {'sort': 'key1:dir1,key2:dir2,key3:dir3'}
        common.get_sort_params(params)
        self.assertEqual({}, params)

        params = {'sort_key': 'key1', 'sort_dir': 'dir1'}
        common.get_sort_params(params)
        self.assertEqual({}, params)
Пример #3
0
 def test_get_sort_params_multiple_not_all_dirs(self):
     """Verifies multiple sort keys without all directions."""
     params = {'sort': 'key1:dir1,key2,key3:dir3'}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1', 'key2', 'key3'], sort_keys)
     # Second key is missing the direction, should be defaulted
     self.assertEqual(['dir1', 'desc', 'dir3'], sort_dirs)
Пример #4
0
 def test_get_sort_params_single_with_default_old_params(self):
     """Verifies a single sort value with a default direction."""
     params = {'sort_key': 'key1'}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1'], sort_keys)
     # Direction should be defaulted
     self.assertEqual(['desc'], sort_dirs)
Пример #5
0
 def test_get_sort_params_multiple_override_default_dir(self):
     """Verifies multiple sort keys and overriding default direction."""
     params = {'sort': 'key1:dir1,key2,key3'}
     sort_keys, sort_dirs = common.get_sort_params(params,
                                                   default_dir='foo')
     self.assertEqual(['key1', 'key2', 'key3'], sort_keys)
     self.assertEqual(['dir1', 'foo', 'foo'], sort_dirs)
Пример #6
0
    def index(self, req):
        """Returns a list of restores, transformed through view builder."""
        context = req.environ['karbor.context']

        LOG.info(_LI("Show restore list"), context=context)

        params = req.params.copy()
        marker, limit, offset = common.get_pagination_params(params)
        sort_keys, sort_dirs = common.get_sort_params(params)
        filters = params

        utils.remove_invalid_filter_options(
            context,
            filters,
            self._get_restore_filter_options())

        utils.check_filters(filters)
        restores = self._get_all(context, marker, limit,
                                 sort_keys=sort_keys,
                                 sort_dirs=sort_dirs,
                                 filters=filters,
                                 offset=offset)

        retval_restores = self._view_builder.detail_list(req, restores)

        LOG.info(_LI("Show restore list request issued successfully."))

        return retval_restores
Пример #7
0
    def index(self, req):
        """Returns a list of plans, transformed through view builder."""
        context = req.environ['karbor.context']

        LOG.info("Show plan list", context=context)

        params = req.params.copy()
        marker, limit, offset = common.get_pagination_params(params)
        sort_keys, sort_dirs = common.get_sort_params(params)
        filters = params

        utils.remove_invalid_filter_options(context, filters,
                                            self._get_plan_filter_options())

        utils.check_filters(filters)
        plans = self._get_all(context,
                              marker,
                              limit,
                              sort_keys=sort_keys,
                              sort_dirs=sort_dirs,
                              filters=filters,
                              offset=offset)

        retval_plans = self._view_builder.detail_list(req, plans)

        LOG.info("Show plan list request issued successfully.")

        return retval_plans
Пример #8
0
 def test_get_sort_params_single_with_default_old_params(self):
     """Verifies a single sort value with a default direction."""
     params = {'sort_key': 'key1'}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1'], sort_keys)
     # Direction should be defaulted
     self.assertEqual(['desc'], sort_dirs)
Пример #9
0
    def index(self, req):
        """Returns a list of triggers, transformed through view builder."""

        context = req.environ['karbor.context']
        check_policy(context, 'list')

        params = req.params.copy()
        LOG.debug('List triggers start, params=%s', params)
        marker, limit, offset = common.get_pagination_params(params)
        sort_keys, sort_dirs = common.get_sort_params(params)
        filters = params

        valid_filters = ["all_tenants", "name", "type", "properties"]
        utils.remove_invalid_filter_options(context, filters, valid_filters)
        utils.check_filters(filters)

        all_tenants = utils.get_bool_param("all_tenants", filters)
        if not (context.is_admin and all_tenants):
            filters["project_id"] = context.project_id

        try:
            triggers = objects.TriggerList.get_by_filters(
                context, filters, limit, marker, sort_keys, sort_dirs)
        except Exception as ex:
            self._raise_unknown_exception(ex)

        return self._view_builder.detail_list(req, triggers)
Пример #10
0
 def test_get_sort_params_multiple_not_all_dirs(self):
     """Verifies multiple sort keys without all directions."""
     params = {'sort': 'key1:dir1,key2,key3:dir3'}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1', 'key2', 'key3'], sort_keys)
     # Second key is missing the direction, should be defaulted
     self.assertEqual(['dir1', 'desc', 'dir3'], sort_dirs)
Пример #11
0
 def test_get_sort_params_override_defaults(self):
     """Verifies that the defaults can be overridden."""
     sort_keys, sort_dirs = common.get_sort_params({},
                                                   default_key='key1',
                                                   default_dir='dir1')
     self.assertEqual(['key1'], sort_keys)
     self.assertEqual(['dir1'], sort_dirs)
Пример #12
0
 def test_get_sort_params_multiple_override_default_dir(self):
     """Verifies multiple sort keys and overriding default direction."""
     params = {'sort': 'key1:dir1,key2,key3'}
     sort_keys, sort_dirs = common.get_sort_params(params,
                                                   default_dir='foo')
     self.assertEqual(['key1', 'key2', 'key3'], sort_keys)
     self.assertEqual(['dir1', 'foo', 'foo'], sort_dirs)
Пример #13
0
    def index(self, req):
        """Returns a list of triggers, transformed through view builder."""

        context = req.environ['karbor.context']
        context.can(trigger_policy.GET_ALL_POLICY)

        params = req.params.copy()
        LOG.debug('List triggers start, params=%s', params)
        marker, limit, offset = common.get_pagination_params(params)
        sort_keys, sort_dirs = common.get_sort_params(params)
        filters = params

        valid_filters = ["all_tenants", "name", "type", "properties"]
        utils.remove_invalid_filter_options(context, filters, valid_filters)
        utils.check_filters(filters)

        all_tenants = utils.get_bool_param("all_tenants", filters)
        if not (context.is_admin and all_tenants):
            filters["project_id"] = context.project_id

        try:
            triggers = objects.TriggerList.get_by_filters(
                context, filters, limit, marker, sort_keys, sort_dirs)
        except Exception as ex:
            self._raise_unknown_exception(ex)

        return self._view_builder.detail_list(req, triggers)
Пример #14
0
    def checkpoints_index(self, req, provider_id):
        """Returns a list of checkpoints, transformed through view builder."""
        context = req.environ['karbor.context']

        LOG.info("Show checkpoints list. provider_id:%s", provider_id)

        params = req.params.copy()
        marker, limit, offset = common.get_pagination_params(params)
        sort_keys, sort_dirs = common.get_sort_params(params)
        filters = params

        utils.remove_invalid_filter_options(
            context, filters, self._get_checkpoint_filter_options())

        utils.check_filters(filters)
        checkpoints = self._checkpoints_get_all(context,
                                                provider_id,
                                                marker,
                                                limit,
                                                sort_keys=sort_keys,
                                                sort_dirs=sort_dirs,
                                                filters=filters,
                                                offset=offset)

        retval_checkpoints = self._checkpoint_view_builder.detail_list(
            req, checkpoints)

        LOG.info("Show checkpoints list request issued successfully.")
        return retval_checkpoints
Пример #15
0
    def index(self, req):
        """Returns a list of verifications."""
        context = req.environ['karbor.context']

        LOG.info("Show verification list", context=context)

        params = req.params.copy()
        marker, limit, offset = common.get_pagination_params(params)
        sort_keys, sort_dirs = common.get_sort_params(params)
        filters = params

        utils.remove_invalid_filter_options(context, filters,
                                            CONF.query_verification_filters)

        utils.check_filters(filters)
        try:
            verifications = self._get_all(context,
                                          marker,
                                          limit,
                                          sort_keys=sort_keys,
                                          sort_dirs=sort_dirs,
                                          filters=filters,
                                          offset=offset)
        except exception.VerificationNotFound as error:
            raise exc.HTTPNotFound(explanation=error.msg)
        retval_verifications = self._view_builder.detail_list(
            req, verifications)

        LOG.info("Show verification list request issued successfully.")

        return retval_verifications
Пример #16
0
    def checkpoints_index(self, req, provider_id):
        """Returns a list of checkpoints, transformed through view builder."""
        context = req.environ['karbor.context']

        LOG.info(_LI("Show checkpoints list. "
                     "provider_id:%s"), provider_id)

        params = req.params.copy()
        marker, limit, offset = common.get_pagination_params(params)
        sort_keys, sort_dirs = common.get_sort_params(params)
        filters = params

        utils.remove_invalid_filter_options(
            context,
            filters,
            self._get_checkpoint_filter_options())

        utils.check_filters(filters)
        checkpoints = self._checkpoints_get_all(
            context, provider_id, marker, limit,
            sort_keys=sort_keys, sort_dirs=sort_dirs,
            filters=filters, offset=offset)

        retval_checkpoints = self._checkpoint_view_builder.detail_list(
            req, checkpoints)

        LOG.info(_LI("Show checkpoints list request issued successfully."))

        return retval_checkpoints
Пример #17
0
    def instances_index(self, req, protectable_type):
        """Return data about the given protectable_type."""
        context = req.environ['karbor.context']
        LOG.info(_LI("Show the instances of a given"
                     " protectable type: %s"), protectable_type)

        params = req.params.copy()
        marker, limit, offset = common.get_pagination_params(params)
        sort_keys, sort_dirs = common.get_sort_params(params)
        filters = params
        utils.check_filters(filters)
        parameters = filters.get("parameters", None)

        if parameters is not None:
            if not isinstance(parameters, dict):
                msg = _("The parameters must be a dict.")
                raise exception.InvalidInput(reason=msg)

        utils.remove_invalid_filter_options(
            context, filters, self._get_instance_filter_options())

        protectable_types = self._get_all(context)

        if protectable_type not in protectable_types:
            msg = _("Invalid protectable type provided.")
            raise exception.InvalidInput(reason=msg)

        instances = self._instances_get_all(context,
                                            protectable_type,
                                            marker,
                                            limit,
                                            sort_keys=sort_keys,
                                            sort_dirs=sort_dirs,
                                            filters=filters,
                                            offset=offset,
                                            parameters=parameters)

        for instance in instances:
            protectable_id = instance.get("id")
            instance["type"] = protectable_type
            if protectable_id is None:
                raise exception.InvalidProtectableInstance()
            dependents = self.protection_api.\
                list_protectable_dependents(context, protectable_id,
                                            protectable_type)
            instance["dependent_resources"] = dependents

        retval_instances = self._view_builder.detail_list(req, instances)

        return retval_instances
Пример #18
0
    def instances_index(self, req, protectable_type):
        """Return data about the given protectable_type."""
        context = req.environ['karbor.context']
        LOG.info(_LI("Show the instances of a given"
                     " protectable type: %s"), protectable_type)

        params = req.params.copy()
        marker, limit, offset = common.get_pagination_params(params)
        sort_keys, sort_dirs = common.get_sort_params(params)
        filters = params
        utils.check_filters(filters)
        parameters = filters.get("parameters", None)

        if parameters is not None:
            if not isinstance(parameters, dict):
                msg = _("The parameters must be a dict.")
                raise exception.InvalidInput(reason=msg)

        utils.remove_invalid_filter_options(
            context,
            filters,
            self._get_instance_filter_options())

        protectable_types = self._get_all(context)

        if protectable_type not in protectable_types:
            msg = _("Invalid protectable type provided.")
            raise exception.InvalidInput(reason=msg)

        instances = self._instances_get_all(
            context, protectable_type, marker, limit,
            sort_keys=sort_keys, sort_dirs=sort_dirs,
            filters=filters, offset=offset, parameters=parameters)

        for instance in instances:
            protectable_id = instance.get("id")
            instance["type"] = protectable_type
            if protectable_id is None:
                raise exception.InvalidProtectableInstance()
            dependents = self.protection_api.\
                list_protectable_dependents(context, protectable_id,
                                            protectable_type)
            instance["dependent_resources"] = dependents

        retval_instances = self._view_builder.detail_list(req, instances)

        return retval_instances
Пример #19
0
 def test_get_sort_params_single_value_sort_param(self):
     """Verifies a single sort key and direction."""
     params = {'sort': 'key1:dir1'}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1'], sort_keys)
     self.assertEqual(['dir1'], sort_dirs)
Пример #20
0
 def test_get_sort_params_defaults(self):
     """Verifies the default sort key and direction."""
     sort_keys, sort_dirs = common.get_sort_params({})
     self.assertEqual(['created_at'], sort_keys)
     self.assertEqual(['desc'], sort_dirs)
Пример #21
0
 def test_get_sort_params_random_spaces(self):
     """Verifies that leading and trailing spaces are removed."""
     params = {'sort': ' key1 : dir1,key2: dir2 , key3 '}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1', 'key2', 'key3'], sort_keys)
     self.assertEqual(['dir1', 'dir2', 'desc'], sort_dirs)
Пример #22
0
 def test_get_sort_params_single_value_old_params(self):
     """Verifies a single sort key and direction."""
     params = {'sort_key': 'key1', 'sort_dir': 'dir1'}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1'], sort_keys)
     self.assertEqual(['dir1'], sort_dirs)
Пример #23
0
 def test_get_sort_params_random_spaces(self):
     """Verifies that leading and trailing spaces are removed."""
     params = {'sort': ' key1 : dir1,key2: dir2 , key3 '}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1', 'key2', 'key3'], sort_keys)
     self.assertEqual(['dir1', 'dir2', 'desc'], sort_dirs)
Пример #24
0
 def test_get_sort_params_override_defaults(self):
     """Verifies that the defaults can be overridden."""
     sort_keys, sort_dirs = common.get_sort_params({}, default_key='key1',
                                                   default_dir='dir1')
     self.assertEqual(['key1'], sort_keys)
     self.assertEqual(['dir1'], sort_dirs)
Пример #25
0
 def test_get_sort_params_defaults(self):
     """Verifies the default sort key and direction."""
     sort_keys, sort_dirs = common.get_sort_params({})
     self.assertEqual(['created_at'], sort_keys)
     self.assertEqual(['desc'], sort_dirs)
Пример #26
0
 def test_get_sort_params_multiple_values(self):
     """Verifies multiple sort parameter values."""
     params = {'sort': 'key1:dir1,key2:dir2,key3:dir3'}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1', 'key2', 'key3'], sort_keys)
     self.assertEqual(['dir1', 'dir2', 'dir3'], sort_dirs)
Пример #27
0
 def test_get_sort_params_multiple_values(self):
     """Verifies multiple sort parameter values."""
     params = {'sort': 'key1:dir1,key2:dir2,key3:dir3'}
     sort_keys, sort_dirs = common.get_sort_params(params)
     self.assertEqual(['key1', 'key2', 'key3'], sort_keys)
     self.assertEqual(['dir1', 'dir2', 'dir3'], sort_dirs)