Ejemplo n.º 1
0
    def on_get(self, req, res):
        helpers.validate_authorization(req, self._get_metrics_authorized_roles)
        tenant_id = (
            helpers.get_x_tenant_or_tenant_id(req,
                                              self._delegate_authorized_roles))
        name = helpers.get_query_name(req, True)
        helpers.validate_query_name(name)
        dimensions = helpers.get_query_dimensions(req)
        helpers.validate_query_dimensions(dimensions)
        start_timestamp = helpers.get_query_starttime_timestamp(req)
        end_timestamp = helpers.get_query_endtime_timestamp(req, False)
        helpers.validate_start_end_timestamps(start_timestamp, end_timestamp)
        statistics = helpers.get_query_statistics(req)
        period = helpers.get_query_period(req)
        offset = helpers.get_query_param(req, 'offset')
        merge_metrics_flag = get_merge_metrics_flag(req)
        group_by = helpers.get_query_group_by(req)

        result = self._metric_statistics(tenant_id, name, dimensions,
                                         start_timestamp, end_timestamp,
                                         statistics, period, req.uri,
                                         offset, req.limit, merge_metrics_flag,
                                         group_by)

        res.body = helpers.dumpit_utf8(result)
        res.status = falcon.HTTP_200
Ejemplo n.º 2
0
    def on_get(self, req, res):
        helpers.validate_authorization(req, self._get_metrics_authorized_roles)
        tenant_id = (
            helpers.get_x_tenant_or_tenant_id(req,
                                              self._delegate_authorized_roles))
        name = helpers.get_query_name(req, True)
        helpers.validate_query_name(name)
        dimensions = helpers.get_query_dimensions(req)
        helpers.validate_query_dimensions(dimensions)
        start_timestamp = helpers.get_query_starttime_timestamp(req)
        end_timestamp = helpers.get_query_endtime_timestamp(req, False)
        helpers.validate_start_end_timestamps(start_timestamp, end_timestamp)
        statistics = helpers.get_query_statistics(req)
        period = helpers.get_query_period(req)
        offset = helpers.get_query_param(req, 'offset')
        merge_metrics_flag = get_merge_metrics_flag(req)
        group_by = helpers.get_query_group_by(req)

        result = self._metric_statistics(tenant_id, name, dimensions,
                                         start_timestamp, end_timestamp,
                                         statistics, period, req.uri,
                                         offset, req.limit, merge_metrics_flag,
                                         group_by)

        res.body = helpers.dumpit_utf8(result)
        res.status = falcon.HTTP_200
Ejemplo n.º 3
0
 def test_return_project_id_on_unavailable_tenant_id(self):
     req_context = self._get_request_context()
     req_context.query_string = ''
     self.assertEqual(
         'fake_project_id',
         helpers.get_x_tenant_or_tenant_id(req_context,
                                           ['example:allowed']))
Ejemplo n.º 4
0
    def test_return_tenant_id_on_authorized_roles(self):

        for role in ['role_1', 'role_2']:
            req_context = self._get_request_context(role)
            self.assertEqual(
                'fake_tenant_id',
                helpers.get_x_tenant_or_tenant_id(req_context,
                                                  ['example:authorized']))
Ejemplo n.º 5
0
 def test_return_project_id_on_denied_rules(self):
     req_context = self._get_request_context()
     self.assertEqual(
         'fake_project_id',
         helpers.get_x_tenant_or_tenant_id(
             req_context,
             ['example:denied']
         )
     )
Ejemplo n.º 6
0
 def on_get(self, req, res):
     helpers.validate_authorization(req, ['api:metrics:dimension:names'])
     tenant_id = helpers.get_x_tenant_or_tenant_id(req, ['api:delegate'])
     metric_name = helpers.get_query_param(req, 'metric_name')
     offset = helpers.get_query_param(req, 'offset')
     result = self._dimension_names(tenant_id, req.uri, metric_name,
                                    offset, req.limit)
     res.body = helpers.to_json(result)
     res.status = falcon.HTTP_200
Ejemplo n.º 7
0
    def test_return_tenant_id_on_authorized_roles(self):

        for role in ['role_1', 'role_2']:
            req_context = self._get_request_context(role)
            self.assertEqual(
                'fake_tenant_id',
                helpers.get_x_tenant_or_tenant_id(
                    req_context, ['example:authorized']
                )
            )
Ejemplo n.º 8
0
 def on_get(self, req, res):
     helpers.validate_authorization(req, self._get_metrics_authorized_roles)
     tenant_id = (helpers.get_x_tenant_or_tenant_id(
         req, self._delegate_authorized_roles))
     metric_name = helpers.get_query_param(req, 'metric_name')
     offset = helpers.get_query_param(req, 'offset')
     result = self._dimension_names(tenant_id, req.uri, metric_name, offset,
                                    req.limit)
     res.body = helpers.dumpit_utf8(result)
     res.status = falcon.HTTP_200
Ejemplo n.º 9
0
 def test_return_project_id_on_unavailable_tenant_id(self):
     req_context = self._get_request_context()
     req_context.query_string = ''
     self.assertEqual(
         'fake_project_id',
         helpers.get_x_tenant_or_tenant_id(
             req_context,
             ['example:allowed']
         )
     )
Ejemplo n.º 10
0
 def on_get(self, req, res):
     helpers.validate_authorization(req, ['api:metrics:get'])
     tenant_id = helpers.get_x_tenant_or_tenant_id(req, ['api:delegate'])
     dimensions = helpers.get_query_dimensions(req)
     helpers.validate_query_dimensions(dimensions)
     offset = helpers.get_query_param(req, 'offset')
     result = self._list_metric_names(tenant_id, dimensions, req.uri,
                                      offset, req.limit)
     res.body = helpers.to_json(result)
     res.status = falcon.HTTP_200
Ejemplo n.º 11
0
 def on_get(self, req, res):
     helpers.validate_authorization(req, self._get_metrics_authorized_roles)
     tenant_id = (
         helpers.get_x_tenant_or_tenant_id(req,
                                           self._delegate_authorized_roles))
     metric_name = helpers.get_query_param(req, 'metric_name')
     offset = helpers.get_query_param(req, 'offset')
     result = self._dimension_names(tenant_id, req.uri, metric_name,
                                    offset, req.limit)
     res.body = helpers.dumpit_utf8(result)
     res.status = falcon.HTTP_200
Ejemplo n.º 12
0
 def on_post(self, req, res):
     helpers.validate_json_content_type(req)
     helpers.validate_authorization(req,
                                    self._post_metrics_authorized_roles)
     metrics = helpers.read_http_resource(req)
     self._validate_metrics(metrics)
     tenant_id = (helpers.get_x_tenant_or_tenant_id(
         req, self._delegate_authorized_roles))
     transformed_metrics = metrics_message.transform(
         metrics, tenant_id, self._region)
     self._send_metrics(transformed_metrics)
     res.status = falcon.HTTP_204
Ejemplo n.º 13
0
 def on_get(self, req, res):
     helpers.validate_authorization(req, self._get_metrics_authorized_roles)
     tenant_id = (
         helpers.get_x_tenant_or_tenant_id(req,
                                           self._delegate_authorized_roles))
     dimensions = helpers.get_query_dimensions(req)
     helpers.validate_query_dimensions(dimensions)
     offset = helpers.get_query_param(req, 'offset')
     result = self._list_metric_names(tenant_id, dimensions,
                                      req.uri, offset, req.limit)
     res.body = helpers.to_json(result)
     res.status = falcon.HTTP_200
Ejemplo n.º 14
0
 def on_post(self, req, res):
     helpers.validate_json_content_type(req)
     helpers.validate_authorization(req,
                                    self._post_metrics_authorized_roles)
     metrics = helpers.read_http_resource(req)
     self._validate_metrics(metrics)
     tenant_id = (
         helpers.get_x_tenant_or_tenant_id(req,
                                           self._delegate_authorized_roles))
     transformed_metrics = metrics_message.transform(
         metrics, tenant_id, self._region)
     self._send_metrics(transformed_metrics)
     res.status = falcon.HTTP_204
Ejemplo n.º 15
0
 def on_get(self, req, res):
     helpers.validate_authorization(req, ['api:metrics:dimension:values'])
     tenant_id = helpers.get_x_tenant_or_tenant_id(req, ['api:delegate'])
     metric_name = helpers.get_query_param(req, 'metric_name')
     dimension_name = helpers.get_query_param(req,
                                              'dimension_name',
                                              required=True)
     offset = helpers.get_query_param(req, 'offset')
     start_timestamp = helpers.get_query_starttime_timestamp(req, False)
     end_timestamp = helpers.get_query_endtime_timestamp(req, False)
     result = self._dimension_values(tenant_id, req.uri, metric_name,
                                     dimension_name, offset, req.limit,
                                     start_timestamp, end_timestamp)
     res.body = helpers.to_json(result)
     res.status = falcon.HTTP_200
Ejemplo n.º 16
0
    def on_post(self, req, res):
        helpers.validate_json_content_type(req)
        helpers.validate_authorization(req, ['api:metrics:post'])
        metrics = helpers.from_json(req)
        try:
            metric_validation.validate(metrics)
        except Exception as ex:
            LOG.exception(ex)
            raise HTTPUnprocessableEntityError("Unprocessable Entity", str(ex))

        tenant_id = helpers.get_x_tenant_or_tenant_id(req, ['api:delegate'])
        transformed_metrics = metrics_message.transform(
            metrics, tenant_id, self._region)
        self._send_metrics(transformed_metrics)
        res.status = falcon.HTTP_204
Ejemplo n.º 17
0
 def on_get(self, req, res):
     helpers.validate_authorization(req, ['api:metrics:get'])
     tenant_id = helpers.get_x_tenant_or_tenant_id(req, ['api:delegate'])
     name = helpers.get_query_name(req)
     helpers.validate_query_name(name)
     dimensions = helpers.get_query_dimensions(req)
     helpers.validate_query_dimensions(dimensions)
     offset = helpers.get_query_param(req, 'offset')
     start_timestamp = helpers.get_query_starttime_timestamp(req, False)
     end_timestamp = helpers.get_query_endtime_timestamp(req, False)
     helpers.validate_start_end_timestamps(start_timestamp, end_timestamp)
     result = self._list_metrics(tenant_id, name, dimensions, req.uri,
                                 offset, req.limit, start_timestamp,
                                 end_timestamp)
     res.body = helpers.to_json(result)
     res.status = falcon.HTTP_200
Ejemplo n.º 18
0
    def on_post(self, req, res):
        helpers.validate_json_content_type(req)
        helpers.validate_authorization(req,
                                       self._post_metrics_authorized_roles)
        metrics = helpers.from_json(req)
        try:
            metric_validation.validate(metrics)
        except Exception as ex:
            LOG.exception(ex)
            raise HTTPUnprocessableEntityError("Unprocessable Entity", str(ex))

        tenant_id = (
            helpers.get_x_tenant_or_tenant_id(req,
                                              self._delegate_authorized_roles))
        transformed_metrics = metrics_message.transform(
            metrics, tenant_id, self._region)
        self._send_metrics(transformed_metrics)
        res.status = falcon.HTTP_204
Ejemplo n.º 19
0
    def on_post(self, req, res):
        helpers.validate_json_content_type(req)
        helpers.validate_authorization(req,
                                       self._post_metrics_authorized_roles)
        metrics = helpers.read_http_resource(req)
        try:
            metric_validation.validate(metrics)
        except Exception as ex:
            LOG.exception(ex)
            raise HTTPUnprocessableEntityError("Unprocessable Entity",
                                               ex.message)

        tenant_id = (helpers.get_x_tenant_or_tenant_id(
            req, self._delegate_authorized_roles))
        transformed_metrics = metrics_message.transform(
            metrics, tenant_id, self._region)
        self._send_metrics(transformed_metrics)
        res.status = falcon.HTTP_204
Ejemplo n.º 20
0
 def on_get(self, req, res):
     helpers.validate_authorization(req, self._get_metrics_authorized_roles)
     tenant_id = (
         helpers.get_x_tenant_or_tenant_id(req,
                                           self._delegate_authorized_roles))
     name = helpers.get_query_name(req)
     helpers.validate_query_name(name)
     dimensions = helpers.get_query_dimensions(req)
     helpers.validate_query_dimensions(dimensions)
     offset = helpers.get_query_param(req, 'offset')
     start_timestamp = helpers.get_query_starttime_timestamp(req, False)
     end_timestamp = helpers.get_query_endtime_timestamp(req, False)
     helpers.validate_start_end_timestamps(start_timestamp, end_timestamp)
     result = self._list_metrics(tenant_id, name,
                                 dimensions, req.uri,
                                 offset, req.limit,
                                 start_timestamp, end_timestamp)
     res.body = helpers.dumpit_utf8(result)
     res.status = falcon.HTTP_200
Ejemplo n.º 21
0
 def test_return_project_id_on_unauthorized_role(self):
     req_context = self._get_request_context()
     self.assertEqual('fake_project_id',
                      helpers.get_x_tenant_or_tenant_id(
                          req_context,
                          ['example:authorized']))
Ejemplo n.º 22
0
 def test_return_project_id_on_unauthorized_role(self):
     req_context = self._get_request_context()
     self.assertEqual(
         'fake_project_id',
         helpers.get_x_tenant_or_tenant_id(req_context,
                                           ['example:authorized']))
Ejemplo n.º 23
0
 def test_return_tenant_id_on_allowed_rules(self):
     req_context = self._get_request_context()
     self.assertEqual(
         'fake_tenant_id',
         helpers.get_x_tenant_or_tenant_id(req_context,
                                           ['example:allowed']))