Ejemplo n.º 1
0
    def on_post(self, req, res):
        helpers.validate_authorization(req, self._default_authorized_roles)

        alarm_definition = helpers.read_json_msg_body(req)

        self._validate_alarm_definition(alarm_definition)

        tenant_id = helpers.get_tenant_id(req)
        name = get_query_alarm_definition_name(alarm_definition)
        expression = get_query_alarm_definition_expression(alarm_definition)
        description = get_query_alarm_definition_description(alarm_definition)
        severity = get_query_alarm_definition_severity(alarm_definition)
        match_by = get_query_alarm_definition_match_by(alarm_definition)
        alarm_actions = get_query_alarm_definition_alarm_actions(
            alarm_definition)
        undetermined_actions = get_query_alarm_definition_undetermined_actions(
            alarm_definition)
        ok_actions = get_query_ok_actions(alarm_definition)

        result = self._alarm_definition_create(tenant_id, name, expression,
                                               description, severity, match_by,
                                               alarm_actions,
                                               undetermined_actions,
                                               ok_actions)

        helpers.add_links_to_resource(result, req.uri)
        res.body = helpers.dumpit_utf8(result)
        res.status = falcon.HTTP_201
Ejemplo n.º 2
0
    def on_put(self, req, res, alarm_definition_id):

        helpers.validate_authorization(req, self._default_authorized_roles)

        alarm_definition = helpers.read_json_msg_body(req)

        self._validate_alarm_definition(alarm_definition)

        tenant_id = helpers.get_tenant_id(req)

        # Mandatory positional args
        name = get_query_alarm_definition_name(alarm_definition)
        expression = get_query_alarm_definition_expression(alarm_definition)
        actions_enabled = (
            get_query_alarm_definition_actions_enabled(alarm_definition,
                                                       required=True))

        # Validator makes actions_enabled optional. So, check it here.
        if not actions_enabled:
            raise falcon.HTTPBadRequest('Bad request', 'Missing '
                                                       'actions_enabled')

        # Optional args
        description = get_query_alarm_definition_description(alarm_definition,
                                                             return_none=True)
        alarm_actions = get_query_alarm_definition_alarm_actions(
            alarm_definition, return_none=True)
        ok_actions = get_query_ok_actions(alarm_definition, return_none=True)
        undetermined_actions = get_query_alarm_definition_undetermined_actions(
            alarm_definition, return_none=True)
        match_by = get_query_alarm_definition_match_by(alarm_definition,
                                                       return_none=True)
        severity = get_query_alarm_definition_severity(alarm_definition,
                                                       return_none=True)

        result = self._alarm_definition_update_or_patch(tenant_id,
                                                        alarm_definition_id,
                                                        name,
                                                        expression,
                                                        actions_enabled,
                                                        description,
                                                        alarm_actions,
                                                        ok_actions,
                                                        undetermined_actions,
                                                        match_by,
                                                        severity,
                                                        patch=False)

        helpers.add_links_to_resource(result, req.uri)
        res.body = helpers.dumpit_utf8(result)
        res.status = falcon.HTTP_200
Ejemplo n.º 3
0
    def on_patch(self, req, res, alarm_definition_id):

        helpers.validate_authorization(req, self._default_authorized_roles)

        alarm_definition = helpers.read_json_msg_body(req)

        tenant_id = helpers.get_tenant_id(req)

        # Optional args
        name = get_query_alarm_definition_name(alarm_definition,
                                               return_none=True)
        expression = get_query_alarm_definition_expression(alarm_definition,
                                                           return_none=True)
        actions_enabled = (
            get_query_alarm_definition_actions_enabled(alarm_definition,
                                                       return_none=True))

        description = get_query_alarm_definition_description(alarm_definition,
                                                             return_none=True)
        alarm_actions = get_query_alarm_definition_alarm_actions(
            alarm_definition, return_none=True)
        ok_actions = get_query_ok_actions(alarm_definition, return_none=True)
        undetermined_actions = get_query_alarm_definition_undetermined_actions(
            alarm_definition, return_none=True)
        match_by = get_query_alarm_definition_match_by(alarm_definition,
                                                       return_none=True)
        severity = get_query_alarm_definition_severity(alarm_definition,
                                                       return_none=True)

        result = self._alarm_definition_update_or_patch(tenant_id,
                                                        alarm_definition_id,
                                                        name,
                                                        expression,
                                                        actions_enabled,
                                                        description,
                                                        alarm_actions,
                                                        ok_actions,
                                                        undetermined_actions,
                                                        match_by,
                                                        severity,
                                                        patch=True)

        helpers.add_links_to_resource(result, req.uri)
        res.body = helpers.dumpit_utf8(result)
        res.status = falcon.HTTP_200
Ejemplo n.º 4
0
    def on_put(self, req, res, alarm_definition_id):

        helpers.validate_authorization(req, self._default_authorized_roles)

        alarm_definition = helpers.read_json_msg_body(req)

        self._validate_alarm_definition(alarm_definition, require_all=True)

        name = get_query_alarm_definition_name(alarm_definition)
        expression = get_query_alarm_definition_expression(alarm_definition)
        actions_enabled = (
            get_query_alarm_definition_actions_enabled(alarm_definition))
        description = get_query_alarm_definition_description(alarm_definition)
        alarm_actions = get_query_alarm_definition_alarm_actions(
            alarm_definition)
        ok_actions = get_query_ok_actions(alarm_definition)
        undetermined_actions = get_query_alarm_definition_undetermined_actions(
            alarm_definition)
        match_by = get_query_alarm_definition_match_by(alarm_definition)
        severity = get_query_alarm_definition_severity(alarm_definition)

        result = self._alarm_definition_update_or_patch(req.project_id,
                                                        alarm_definition_id,
                                                        name,
                                                        expression,
                                                        actions_enabled,
                                                        description,
                                                        alarm_actions,
                                                        ok_actions,
                                                        undetermined_actions,
                                                        match_by,
                                                        severity,
                                                        patch=False)

        helpers.add_links_to_resource(result, req.uri)
        res.body = helpers.dumpit_utf8(result)
        res.status = falcon.HTTP_200
Ejemplo n.º 5
0
    def on_put(self, req, res, alarm_definition_id):

        helpers.validate_authorization(req, self._default_authorized_roles)

        alarm_definition = helpers.read_json_msg_body(req)

        self._validate_alarm_definition(alarm_definition, require_all=True)

        name = get_query_alarm_definition_name(alarm_definition)
        expression = get_query_alarm_definition_expression(alarm_definition)
        actions_enabled = (
            get_query_alarm_definition_actions_enabled(alarm_definition))
        description = get_query_alarm_definition_description(alarm_definition)
        alarm_actions = get_query_alarm_definition_alarm_actions(alarm_definition)
        ok_actions = get_query_ok_actions(alarm_definition)
        undetermined_actions = get_query_alarm_definition_undetermined_actions(
            alarm_definition)
        match_by = get_query_alarm_definition_match_by(alarm_definition)
        severity = get_query_alarm_definition_severity(alarm_definition)

        result = self._alarm_definition_update_or_patch(req.project_id,
                                                        alarm_definition_id,
                                                        name,
                                                        expression,
                                                        actions_enabled,
                                                        description,
                                                        alarm_actions,
                                                        ok_actions,
                                                        undetermined_actions,
                                                        match_by,
                                                        severity,
                                                        patch=False)

        helpers.add_links_to_resource(result, req.uri)
        res.body = helpers.dumpit_utf8(result)
        res.status = falcon.HTTP_200