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
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']))
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']))
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'] ) )
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
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'] ) )
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
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'] ) )
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
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
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
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
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
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
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
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
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
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
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
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']))
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']))
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']))