log.info("OpenStack alarm action required.")
- auth_token = Common.get_auth_token(vim_uuid)
+ verify_ssl = self._auth_manager.is_verify_ssl(vim_uuid)
- alarm_endpoint = Common.get_endpoint("alarming", vim_uuid)
- metric_endpoint = Common.get_endpoint("metric", vim_uuid)
+ auth_token = Common.get_auth_token(vim_uuid, verify_ssl=verify_ssl)
+
+ alarm_endpoint = Common.get_endpoint("alarming", vim_uuid, verify_ssl=verify_ssl)
+ metric_endpoint = Common.get_endpoint("metric", vim_uuid, verify_ssl=verify_ssl)
vim_account = self._auth_manager.get_credentials(vim_uuid)
vim_config = json.loads(vim_account.config)
metric_name = alarm_details['metric_name'].lower()
resource_id = alarm_details['resource_uuid']
- self.check_for_metric(auth_token, metric_endpoint, metric_name, resource_id)
+ self.check_for_metric(auth_token, metric_endpoint, metric_name, resource_id, verify_ssl)
alarm_id = self.configure_alarm(
- alarm_endpoint, auth_token, alarm_details, vim_config)
+ alarm_endpoint, auth_token, alarm_details, vim_config, verify_ssl)
log.info("Alarm successfully created")
self._database_manager.save_alarm(alarm_id,
alarm_details['operation'].lower(),
alarm_details['metric_name'].lower(),
alarm_details['vdu_name'].lower(),
- alarm_details['vnf_member_index'].lower(),
+ alarm_details['vnf_member_index'],
alarm_details['ns_id'].lower()
)
status = True
alarm_list = None
try:
alarm_list = self.list_alarms(
- alarm_endpoint, auth_token, list_details)
+ alarm_endpoint, auth_token, list_details, verify_ssl)
except Exception as e:
log.exception("Error listing alarms")
raise e
status = False
try:
self.delete_alarm(
- alarm_endpoint, auth_token, alarm_id)
+ alarm_endpoint, auth_token, alarm_id, verify_ssl)
status = True
except Exception as e:
log.exception("Error deleting alarm")
alarm_id = values['ack_details']['alarm_uuid']
self.update_alarm_state(
- alarm_endpoint, auth_token, alarm_id)
+ alarm_endpoint, auth_token, alarm_id, verify_ssl)
log.info("Acknowledged the alarm and cleared it.")
except Exception as e:
status = False
try:
alarm_id = self.update_alarm(
- alarm_endpoint, auth_token, alarm_details, vim_config)
+ alarm_endpoint, auth_token, alarm_details, vim_config, verify_ssl)
status = True
except Exception as e:
log.exception("Error updating alarm")
else:
log.debug("Unknown key, no action will be performed")
- def configure_alarm(self, alarm_endpoint, auth_token, values, vim_config):
+ def configure_alarm(self, alarm_endpoint, auth_token, values, vim_config, verify_ssl):
"""Create requested alarm in Aodh."""
url = "{}/v2/alarms/".format(alarm_endpoint)
payload = self.check_payload(values, metric_name, resource_id,
alarm_name)
new_alarm = Common.perform_request(
- url, auth_token, req_type="post", payload=payload)
+ url, auth_token, req_type="post", payload=payload, verify_ssl=verify_ssl)
return json.loads(new_alarm.text)['alarm_id']
- def delete_alarm(self, endpoint, auth_token, alarm_id):
+ def delete_alarm(self, endpoint, auth_token, alarm_id, verify_ssl):
"""Delete alarm function."""
url = "{}/v2/alarms/%s".format(endpoint) % alarm_id
result = Common.perform_request(
- url, auth_token, req_type="delete")
+ url, auth_token, req_type="delete", verify_ssl=verify_ssl)
if str(result.status_code) == "404":
raise ValueError("Alarm {} doesn't exist".format(alarm_id))
- def list_alarms(self, endpoint, auth_token, list_details):
+ def list_alarms(self, endpoint, auth_token, list_details, verify_ssl):
"""Generate the requested list of alarms."""
url = "{}/v2/alarms/".format(endpoint)
a_list, name_list, sev_list, res_list = [], [], [], []
# Perform the request to get the desired list
try:
result = Common.perform_request(
- url, auth_token, req_type="get")
+ url, auth_token, req_type="get", verify_ssl=verify_ssl)
if result is not None:
# Get list based on resource id
log.exception("Failed to generate alarm list: ")
raise e
- def update_alarm_state(self, endpoint, auth_token, alarm_id):
+ def update_alarm_state(self, endpoint, auth_token, alarm_id, verify_ssl):
"""Set the state of an alarm to ok when ack message is received."""
url = "{}/v2/alarms/%s/state".format(endpoint) % alarm_id
payload = json.dumps("ok")
Common.perform_request(
- url, auth_token, req_type="put", payload=payload)
+ url, auth_token, req_type="put", payload=payload, verify_ssl=verify_ssl)
- def update_alarm(self, endpoint, auth_token, values, vim_config):
+ def update_alarm(self, endpoint, auth_token, values, vim_config, verify_ssl):
"""Get alarm name for an alarm configuration update."""
# Get already existing alarm details
url = "{}/v2/alarms/%s".format(endpoint) % values['alarm_uuid']
# Updates the alarm configurations with the valid payload
update_alarm = Common.perform_request(
- url, auth_token, req_type="put", payload=payload)
+ url, auth_token, req_type="put", payload=payload, verify_ssl=verify_ssl)
return json.loads(update_alarm.text)['alarm_id']
url, auth_token, req_type="get")
return json.loads(alarm_state.text)
- def check_for_metric(self, auth_token, metric_endpoint, metric_name, resource_id):
+ def check_for_metric(self, auth_token, metric_endpoint, metric_name, resource_id, verify_ssl):
"""
Checks if resource has a specific metric. If not, throws exception.
:param auth_token: OpenStack auth token
try:
url = "{}/v1/resource/generic/{}".format(metric_endpoint, resource_id)
result = Common.perform_request(
- url, auth_token, req_type="get")
+ url, auth_token, req_type="get", verify_ssl=verify_ssl)
resource = json.loads(result.text)
metrics_dict = resource['metrics']
return metrics_dict[METRIC_MAPPINGS[metric_name]]