60110e753d
Sysinv had partially converted to oslo_log, but not all the files had been updated. This completes that conversion and completely removes - sysinv.openstack.common.log.py - sysinv.openstack.common.log_handler.py Most of the changes in this review are: Old Code: from sysinv.openstack.common import log New Code: from oslo_log import log Two main differences are: - verbose flag was removed from oslo_log config in 2017 - oslo_log automatically prefixes each line with config type (sysinv) Old Prefix: 2019-11-01 16:39:24.142 72561 INFO New Prefix: sysinv 2019-11-05 18:55:03.620 96275 INFO Change-Id: I0dda384d943c6dc9277ebce87a6b295fb62500ff Story: 2006796 Task: 37342 Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
106 lines
3.5 KiB
Python
106 lines
3.5 KiB
Python
#
|
|
# Copyright (c) 2016-2018 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
|
|
# FM Fault Management Handling
|
|
|
|
from keystoneauth1.access import service_catalog as k_service_catalog
|
|
from oslo_config import cfg
|
|
from oslo_log import log
|
|
|
|
from fm_api import constants as fm_constants
|
|
from fm_api import fm_api
|
|
import fmclient as fm_client
|
|
|
|
CONF = cfg.CONF
|
|
|
|
LOG = log.getLogger(__name__)
|
|
|
|
|
|
fm_group = cfg.OptGroup(
|
|
'fm',
|
|
title='FM Options',
|
|
help="Configuration options for the fault management service")
|
|
|
|
fm_opts = [
|
|
cfg.StrOpt('catalog_info',
|
|
default='faultmanagement:fm:internalURL',
|
|
help="Service catalog Look up info."),
|
|
cfg.StrOpt('os_region_name',
|
|
default='RegionOne',
|
|
help="Region name of this node. It is used for catalog lookup")
|
|
]
|
|
|
|
CONF.register_group(fm_group)
|
|
CONF.register_opts(fm_opts, group=fm_group)
|
|
|
|
|
|
class FmCustomerLog(object):
|
|
"""
|
|
Fault Management Customer Log
|
|
"""
|
|
|
|
_fm_api = None
|
|
|
|
def __init__(self):
|
|
self._fm_api = fm_api.FaultAPIs()
|
|
|
|
def customer_log(self, log_data):
|
|
LOG.info("Generating FM Customer Log %s" % log_data)
|
|
fm_event_id = log_data.get('event_id', None)
|
|
if fm_event_id is not None:
|
|
fm_event_state = fm_constants.FM_ALARM_STATE_MSG
|
|
entity_type = log_data.get('entity_type', None)
|
|
entity = log_data.get('entity', None)
|
|
fm_severity = log_data.get('fm_severity', None)
|
|
reason_text = log_data.get('reason_text', None)
|
|
fm_event_type = log_data.get('fm_event_type', None)
|
|
fm_probable_cause = fm_constants.ALARM_PROBABLE_CAUSE_UNKNOWN
|
|
fm_uuid = None
|
|
fault = fm_api.Fault(fm_event_id,
|
|
fm_event_state,
|
|
entity_type,
|
|
entity,
|
|
fm_severity,
|
|
reason_text,
|
|
fm_event_type,
|
|
fm_probable_cause, "",
|
|
False, True)
|
|
|
|
response = self._fm_api.set_fault(fault)
|
|
if response is None:
|
|
LOG.error("Failed to generate customer log, fm_uuid=%s." %
|
|
fm_uuid)
|
|
else:
|
|
fm_uuid = response
|
|
LOG.info("Generated customer log, fm_uuid=%s." % fm_uuid)
|
|
else:
|
|
LOG.error("Unknown event id (%s) given." % fm_event_id)
|
|
|
|
|
|
def fmclient(context, version=1, endpoint=None):
|
|
"""Constructs a fm client object for making API requests.
|
|
|
|
:param context: The request context for auth.
|
|
:param version: API endpoint version.
|
|
:param endpoint: Optional If the endpoint is not available, it will be
|
|
retrieved from context
|
|
"""
|
|
auth_token = context.auth_token
|
|
if endpoint is None:
|
|
sc = k_service_catalog.ServiceCatalogV2(context.service_catalog)
|
|
service_type, service_name, interface = \
|
|
CONF.fm.catalog_info.split(':')
|
|
service_parameters = {'service_type': service_type,
|
|
'service_name': service_name,
|
|
'interface': interface,
|
|
'region_name': CONF.fm.os_region_name}
|
|
endpoint = sc.url_for(**service_parameters)
|
|
|
|
return fm_client.Client(version=version,
|
|
endpoint=endpoint,
|
|
auth_token=auth_token)
|