コード例 #1
0
    def do_put_alarm_definitions(self, req, res, id):
        LOG.debug("Put the alarm definitions with id: %s" % id)

        es_res = self._es_conn.get_message_by_id(id)
        LOG.debug('Query to ElasticSearch returned Status: %s' %
                  es_res.status_code)
        es_res = self._get_alarm_definitions_response(es_res)
        LOG.debug('Query to ElasticSearch returned: %s' % es_res)

        original_data = {}
        try:
            if es_res["hits"]:
                res_data = es_res["hits"][0]
                if res_data:
                    original_data = json.dumps({
                        "id": id,
                        "name": res_data["_source"]["name"],
                        "description": res_data["_source"]["description"],
                        "expression": res_data["_source"]["expression"],
                        "expression_data":
                            res_data["_source"]["expression_data"],
                        "severity": res_data["_source"]["severity"],
                        "match_by": res_data["_source"]["match_by"],
                        "alarm_actions": res_data["_source"]["alarm_actions"],
                        "ok_actions": res_data["_source"]["ok_actions"],
                        "undetermined_actions": res_data["_source"]
                        ["undetermined_actions"]})

            msg = req.stream.read()
            put_msg = ast.literal_eval(msg)
            put_msg = AlarmDefinitionUtil.severityparsing(put_msg)

            expression_parsed = (
                alarm_expr_parser.AlarmExprParser(put_msg["expression"])
            )
            expression_data = expression_parsed.sub_alarm_expressions
            expression_data_list = []
            for temp in expression_data:
                expression_data_list.append(expression_data[temp])
            put_msg["expression_data"] = expression_data_list

            put_msg_json = json.dumps(put_msg)
            LOG.debug("Alarm Definition Put Data: %s" % put_msg_json)

            if alarm_expr_validator.is_valid_update_alarm_definition(
                    original_data, put_msg_json):
                es_res = self._es_conn.put_messages(put_msg_json, id)
                LOG.debug('Query to ElasticSearch returned Status: %s' %
                          es_res)
                res.status = getattr(falcon, 'HTTP_%s' % es_res)
            else:
                res.status = getattr(falcon, 'HTTP_400')
                LOG.debug("Validating Alarm Definition Failed !!")
        except Exception:
            res.status = getattr(falcon, 'HTTP_400')
            LOG.exception('Error occurred while handling Alarm '
                          'Definition Put Request.')
コード例 #2
0
 def test_is_valid_update_alarm_definition(self):
     self.assertEqual(
         True,
         validator.is_valid_update_alarm_definition(
             self.util.get_alarm_def("alarm_def_1"),
             self.util.get_alarm_def("alarm_def_1_update")))
     self.assertEqual(
         False,
         validator.is_valid_update_alarm_definition(
             self.util.get_alarm_def("alarm_def_1"),
             self.util.get_alarm_def("alarm_def_0_wrong_0")))
     self.assertEqual(
         False,
         validator.is_valid_update_alarm_definition(
             self.util.get_alarm_def("alarm_def_1"),
             self.util.get_alarm_def("alarm_def_1_update_wrong_0")))
     self.assertEqual(
         False,
         validator.is_valid_update_alarm_definition(
             self.util.get_alarm_def("alarm_def_1"),
             self.util.get_alarm_def("alarm_def_1_update_wrong_1")))
     self.assertEqual(
         False,
         validator.is_valid_update_alarm_definition(
             self.util.get_alarm_def("alarm_def_1"),
             self.util.get_alarm_def("alarm_def_1_update_wrong_2")))
     self.assertEqual(
         False,
         validator.is_valid_update_alarm_definition(
             self.util.get_alarm_def("alarm_def_1"),
             self.util.get_alarm_def("alarm_def_1_update_wrong_3")))
コード例 #3
0
 def test_is_valid_update_alarm_definition(self):
     self.assertEqual(True, validator.is_valid_update_alarm_definition(
         self.util.get_alarm_def("alarm_def_1"),
         self.util.get_alarm_def("alarm_def_1_update")))
     self.assertEqual(False, validator.is_valid_update_alarm_definition(
         self.util.get_alarm_def("alarm_def_1"),
         self.util.get_alarm_def("alarm_def_0_wrong_0")))
     self.assertEqual(False, validator.is_valid_update_alarm_definition(
         self.util.get_alarm_def("alarm_def_1"),
         self.util.get_alarm_def("alarm_def_1_update_wrong_0")))
     self.assertEqual(False, validator.is_valid_update_alarm_definition(
         self.util.get_alarm_def("alarm_def_1"),
         self.util.get_alarm_def("alarm_def_1_update_wrong_1")))
     self.assertEqual(False, validator.is_valid_update_alarm_definition(
         self.util.get_alarm_def("alarm_def_1"),
         self.util.get_alarm_def("alarm_def_1_update_wrong_2")))
     self.assertEqual(False, validator.is_valid_update_alarm_definition(
         self.util.get_alarm_def("alarm_def_1"),
         self.util.get_alarm_def("alarm_def_1_update_wrong_3")))