Esempio n. 1
0
    def index(self, req):
        filter_whitelist = {
            "name": "mixed",
            "target": "mixed",
            "action": "mixed",
            "created_time": "single",
            "updated_time": "single",
            "deleted_time": "single",
        }
        param_whitelist = {
            "limit": "single",
            "marker": "single",
            "sort_dir": "single",
            "sort_keys": "multi",
            "show_deleted": "single",
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        if not filters:
            filters = None

        actions = self.rpc_client.action_list(req.context, filters=filters, **params)

        return {"actions": actions}
Esempio n. 2
0
    def index(self, req):
        filter_whitelist = {
            'name': 'mixed',
            'target': 'mixed',
            'action': 'mixed',
            'created_time': 'single',
            'updated_time': 'single',
            'deleted_time': 'single',
        }
        param_whitelist = {
            'limit': 'single',
            'marker': 'single',
            'sort_dir': 'single',
            'sort_keys': 'multi',
            'show_deleted': 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        if not filters:
            filters = None

        actions = self.rpc_client.action_list(req.context,
                                              filters=filters,
                                              **params)

        return {'actions': actions}
Esempio n. 3
0
    def index(self, req):
        filter_whitelist = {
            'name': 'mixed',
            'target': 'mixed',
            'action': 'mixed',
            'created_time': 'single',
            'updated_time': 'single',
            'deleted_time': 'single',
        }
        param_whitelist = {
            'limit': 'single',
            'marker': 'single',
            'sort_dir': 'single',
            'sort_keys': 'multi',
            'show_deleted': 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        if not filters:
            filters = None

        actions = self.rpc_client.action_list(req.context,
                                              filters=filters,
                                              **params)

        return {'actions': actions}
Esempio n. 4
0
    def index(self, req):
        filter_whitelist = {
            'status': 'mixed',
            'name': 'mixed',
            'project': 'mixed',
            'parent': 'mixed',
            'user': '******',
        }
        param_whitelist = {
            'limit': 'single',
            'marker': 'single',
            'sort_dir': 'single',
            'sort_keys': 'multi',
            'show_deleted': 'single',
            'show_nested': 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        key = consts.PARAM_SHOW_NESTED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        if not filters:
            filters = None

        clusters = self.rpc_client.cluster_list(req.context,
                                                filters=filters,
                                                project_safe=True,
                                                **params)
        return {'clusters': clusters}
Esempio n. 5
0
    def index(self, req):
        filter_whitelist = {
            consts.TRIGGER_NAME: 'mixed',
            consts.TRIGGER_TYPE: 'mixed',
            consts.TRIGGER_STATE: 'mixed',
            consts.TRIGGER_ENABLED: 'mixed',
            consts.TRIGGER_SEVERITY: 'mixed',
        }
        param_whitelist = {
            consts.PARAM_LIMIT: 'single',
            consts.PARAM_MARKER: 'single',
            consts.PARAM_SORT_DIR: 'single',
            consts.PARAM_SORT_KEYS: 'multi',
            consts.PARAM_SHOW_DELETED: 'single',
            consts.PARAM_GLOBAL_PROJECT: 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        key = consts.PARAM_SORT_DIR
        if key in params:
            sort_dir = params[key].lower()
            if sort_dir not in ('asc', 'desc'):
                raise exc.HTTPBadRequest(
                    _("Sorting direction (sort_dir) must "
                      "be either 'asc' or 'desc'."))

        key = consts.PARAM_GLOBAL_PROJECT
        if key in params:
            project_safe = not utils.parse_bool_param(key, params[key])
            del params[key]
            params['project_safe'] = project_safe

        if not filters:
            filters = None

        triggers = self.rpc_client.trigger_list(req.context,
                                                filters=filters,
                                                **params)

        return {'triggers': triggers}
Esempio n. 6
0
    def index(self, req):
        filter_whitelist = {
            consts.TRIGGER_NAME: 'mixed',
            consts.TRIGGER_TYPE: 'mixed',
            consts.TRIGGER_STATE: 'mixed',
            consts.TRIGGER_ENABLED: 'mixed',
            consts.TRIGGER_SEVERITY: 'mixed',
        }
        param_whitelist = {
            consts.PARAM_LIMIT: 'single',
            consts.PARAM_MARKER: 'single',
            consts.PARAM_SORT_DIR: 'single',
            consts.PARAM_SORT_KEYS: 'multi',
            consts.PARAM_SHOW_DELETED: 'single',
            consts.PARAM_GLOBAL_PROJECT: 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        key = consts.PARAM_SORT_DIR
        if key in params:
            sort_dir = params[key].lower()
            if sort_dir not in ('asc', 'desc'):
                raise exc.HTTPBadRequest(_("Sorting direction (sort_dir) must "
                                           "be either 'asc' or 'desc'."))

        key = consts.PARAM_GLOBAL_PROJECT
        if key in params:
            project_safe = not utils.parse_bool_param(key, params[key])
            del params[key]
            params['project_safe'] = project_safe

        if not filters:
            filters = None

        triggers = self.rpc_client.trigger_list(req.context,
                                                filters=filters,
                                                **params)

        return {'triggers': triggers}
Esempio n. 7
0
    def test_handles_mixed_value_param_with_multiple_entries(self):
        self.whitelist = {'foo': 'mixed'}
        self.params.add('foo', 'foo value 2')

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertEqual(2, len(result['foo']))
        self.assertIn('foo value', result['foo'])
        self.assertIn('foo value 2', result['foo'])
Esempio n. 8
0
    def test_handles_mixed_value_param_with_multiple_entries(self):
        self.whitelist = {'foo': 'mixed'}
        self.params.add('foo', 'foo value 2')

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertEqual(2, len(result['foo']))
        self.assertIn('foo value', result['foo'])
        self.assertIn('foo value 2', result['foo'])
Esempio n. 9
0
    def index(self, req):
        filter_whitelist = {
            'obj_name': 'mixed',
            'obj_type': 'mixed',
            'obj_id': 'mixed',
            'cluster_id': 'mixed',
            'action': 'mixed',
        }
        param_whitelist = {
            'limit': 'single',
            'marker': 'single',
            'sort_dir': 'single',
            'sort_keys': 'multi',
            'global_tenant': 'single',
            'show_deleted': 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        key = consts.PARAM_GLOBAL_TENANT
        if key in params:
            global_tenant = utils.parse_bool_param(key, params[key])
            params.pop(key)
            params['tenant_safe'] = not global_tenant

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        if not filters:
            filters = None

        events = self.rpc_client.event_list(req.context,
                                            filters=filters,
                                            **params)

        return {'events': events}
Esempio n. 10
0
    def index(self, req):
        filter_whitelist = {
            'name': 'mixed',
            'user': '******',
            'obj_id': 'mixed',
            'obj_type': 'mixed',
            'action': 'mixed',
        }
        param_whitelist = {
            'limit': 'single',
            'marker': 'single',
            'sort_keys': 'multi',
            'sort_dir': 'single',
            'show_deleted': 'single',
            'global_project': 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        key = consts.PARAM_GLOBAL_PROJECT
        if key in params:
            project_safe = not utils.parse_bool_param(key, params[key])
            del params[key]
            params['project_safe'] = project_safe

        if not filters:
            filters = None

        webhooks = self.rpc_client.webhook_list(req.context,
                                                filters=filters,
                                                **params)

        return {'webhooks': webhooks}
Esempio n. 11
0
    def index(self, req):
        filter_whitelist = {
            'obj_name': 'mixed',
            'obj_type': 'mixed',
            'obj_id': 'mixed',
            'cluster_id': 'mixed',
            'action': 'mixed',
        }
        param_whitelist = {
            'limit': 'single',
            'marker': 'single',
            'sort_dir': 'single',
            'sort_keys': 'multi',
            'global_project': 'single',
            'show_deleted': 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        key = consts.PARAM_GLOBAL_PROJECT
        if key in params:
            global_project = utils.parse_bool_param(key, params[key])
            params.pop(key)
            params['project_safe'] = not global_project

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        if not filters:
            filters = None

        events = self.rpc_client.event_list(req.context,
                                            filters=filters,
                                            **params)

        return {'events': events}
Esempio n. 12
0
    def index(self, req):
        filter_whitelist = {
            'name': 'mixed',
            'user': '******',
            'obj_id': 'mixed',
            'obj_type': 'mixed',
            'action': 'mixed',
        }
        param_whitelist = {
            'limit': 'single',
            'marker': 'single',
            'sort_keys': 'multi',
            'sort_dir': 'single',
            'show_deleted': 'single',
            'global_project': 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        key = consts.PARAM_GLOBAL_PROJECT
        if key in params:
            project_safe = not utils.parse_bool_param(key, params[key])
            del params[key]
            params['project_safe'] = project_safe

        if not filters:
            filters = None

        webhooks = self.rpc_client.webhook_list(req.context, filters=filters,
                                                **params)

        return {'webhooks': webhooks}
Esempio n. 13
0
    def index(self, req):
        filter_whitelist = {
            'status': 'mixed',
            'name': 'mixed',
        }
        param_whitelist = {
            'cluster_id': 'single',
            'show_deleted': 'single',
            'limit': 'single',
            'marker': 'single',
            'sort_keys': 'multi',
            'sort_dir': 'single',
            'global_tenant': 'single',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        key = consts.PARAM_LIMIT
        if key in params:
            params[key] = utils.parse_int_param(key, params[key])

        key = consts.PARAM_SHOW_DELETED
        if key in params:
            params[key] = utils.parse_bool_param(key, params[key])

        key = consts.PARAM_GLOBAL_TENANT
        if key in params:
            tenant_safe = not utils.parse_bool_param(key, params[key])
            del params[key]
            params['tenant_safe'] = tenant_safe

        if not filters:
            filters = None

        nodes = self.rpc_client.node_list(req.context, filters=filters,
                                          **params)

        return {'nodes': nodes}
Esempio n. 14
0
    def index(self, req, cluster_id):
        filter_whitelist = {
            'priority': 'single',
            'level': 'single',
            'cooldown': 'single',
            'enabled': 'single',
        }
        param_whitelist = {
            'sort_dir': 'single',
            'sort_keys': 'multi',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        if not filters:
            filters = None

        policies = self.rpc_client.cluster_policy_list(req.context,
                                                       cluster_id=cluster_id,
                                                       filters=filters,
                                                       **params)

        return {'cluster_policies': policies}
Esempio n. 15
0
    def index(self, req, cluster_id):
        filter_whitelist = {
            'priority': 'single',
            'level': 'single',
            'cooldown': 'single',
            'enabled': 'single',
        }
        param_whitelist = {
            'sort_dir': 'single',
            'sort_keys': 'multi',
        }
        params = util.get_allowed_params(req.params, param_whitelist)
        filters = util.get_allowed_params(req.params, filter_whitelist)

        if not filters:
            filters = None

        policies = self.rpc_client.cluster_policy_list(req.context,
                                                       cluster_id=cluster_id,
                                                       filters=filters,
                                                       **params)

        return {'cluster_policies': policies}
Esempio n. 16
0
    def test_returns_empty_dict(self):
        self.whitelist = {}

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertEqual({}, result)
Esempio n. 17
0
    def test_handles_mixed_value_param_with_single_entry(self):
        self.whitelist = {'foo': 'mixed'}

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertEqual('foo value', result['foo'])
Esempio n. 18
0
 def test_ignores_bogus_whitelist_items(self):
     self.whitelist = {'foo': 'blah'}
     result = util.get_allowed_params(self.params, self.whitelist)
     self.assertNotIn('foo', result)
Esempio n. 19
0
 def test_handles_single_value_params(self):
     result = util.get_allowed_params(self.params, self.whitelist)
     self.assertEqual('foo value', result['foo'])
Esempio n. 20
0
    def test_returns_only_whitelisted_params(self):
        self.params.add('bar', 'bar value')

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertIn('foo', result)
        self.assertNotIn('bar', result)
Esempio n. 21
0
    def test_only_adds_whitelisted_params_if_param_exists(self):
        self.whitelist = {'foo': 'single'}
        self.params.clear()

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertNotIn('foo', result)
Esempio n. 22
0
    def test_returns_only_whitelisted_params(self):
        self.params.add('bar', 'bar value')

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertIn('foo', result)
        self.assertNotIn('bar', result)
Esempio n. 23
0
    def test_returns_empty_dict(self):
        self.whitelist = {}

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertEqual({}, result)
Esempio n. 24
0
 def test_handles_single_value_params(self):
     result = util.get_allowed_params(self.params, self.whitelist)
     self.assertEqual('foo value', result['foo'])
Esempio n. 25
0
    def test_handles_mixed_value_param_with_single_entry(self):
        self.whitelist = {'foo': 'mixed'}

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertEqual('foo value', result['foo'])
Esempio n. 26
0
    def test_only_adds_whitelisted_params_if_param_exists(self):
        self.whitelist = {'foo': 'single'}
        self.params.clear()

        result = util.get_allowed_params(self.params, self.whitelist)
        self.assertNotIn('foo', result)
Esempio n. 27
0
 def test_ignores_bogus_whitelist_items(self):
     self.whitelist = {'foo': 'blah'}
     result = util.get_allowed_params(self.params, self.whitelist)
     self.assertNotIn('foo', result)