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.')
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")))
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")))