- # Check the alarming functionlity that needs to be performed
- for message in self._consumer:
-
- values = json.loads(message.value)
- vim_type = values['vim_type'].lower()
-
- if vim_type == "openstack":
- log.info("Alarm action required: %s" % (message.topic))
-
- if message.key == "create_alarm_request":
- # Configure/Update an alarm
- alarm_details = values['alarm_create_request']
-
- # Generate an auth_token and endpoint
- auth_token = self._common._authenticate(
- tenant_id=alarm_details['tenant_uuid'])
- endpoint = self._common.get_endpoint("alarming")
-
- alarm_id = self.configure_alarm(
- endpoint, auth_token, alarm_details)
-
- # TODO(mcgoughh): will send an acknowledge message back on
- # the bus via the producer
- if alarm_id is not None:
- self.resp_status = True
- log.debug("A valid alarm was found/created: %s",
- self.resp_status)
- else:
- self.resp_status = False
- log.debug("Failed to create desired alarm: %s",
- self.resp_status)
-
- elif message.key == "list_alarm_request":
- auth_token = self._common._authenticate()
- endpoint = self._common.get_endpoint("alarming")
-
- # List all of the alarms
- alarm_list = self.list_alarms(endpoint, auth_token)
-
- # TODO(mcgoughh): send a repsonse back to SO
- if alarm_list is not None:
- self.resp_status = True
- log.info("A list of alarms was generated: %s",
- alarm_list)
- else:
- self.resp_status = False
- log.warn("Failed to generae an alarm list")
-
- elif message.key == "delete_alarm_request":
- # Delete the specified alarm
- auth_token = self._common._authenticate()
- endpoint = self._common.get_endpoint("alarming")
-
- alarm_id = values['alarm_delete_request']['alarm_uuid']
-
- response = self.delete_alarm(
- endpoint, auth_token, alarm_id)
-
- # TODO(mcgoughh): send a response back on the bus
- if response is True:
- log.info("Requested alarm has been deleted: %s",
- alarm_id)
- else:
- log.warn("Failed to delete requested alarm.")
-
- elif message.key == "acknowledge_alarm":
- # Acknowledge that an alarm has been dealt with by the SO
- # Set its state to ok
- auth_token = self._common._authenticate()
- endpoint = self._common.get_endpoint("alarming")
-
- alarm_id = values['ack_details']['alarm_uuid']
-
- response = self.update_alarm_state(
- endpoint, auth_token, alarm_id)
-
- if response is True:
- log.info("Status has been updated for alarm, %s.",
- alarm_id)
- else:
- log.warn("Failed update the state of requested alarm.")
-
- elif message.key == "update_alarm_request":
- # Update alarm configurations
- auth_token = self._common._authenticate()
- endpoint = self._common.get_endpoint("alarming")
-
- alarm_details = values['alarm_update_request']
-
- alarm_id = self.update_alarm(
- endpoint, auth_token, alarm_details)
-
- # TODO(mcgoughh): send a response message to the SO
- if alarm_id is not None:
- log.info("Alarm configuration was update correctly.")
- else:
- log.warn("Unable to update the specified alarm")