# ------------------------------------------------------------------------- # Copyright (c) 2019 AT&T Intellectual Property # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # ------------------------------------------------------------------------- # import socket import threading import uuid from onaplogging.mdcContext import MDC def default_server_info(): # If not set or purposely set = None, then set default if MDC.get('server') is None: try: server = socket.getfqdn() except Exception as err: try: server = socket.gethostname() except Exception as err: server = '' MDC.put('server', server) if MDC.get('serverIPAddress') is None: try: server_ip_address = socket.gethostbyname(MDC.get('server')) except Exception: server_ip_address = "" MDC.put('serverIPAddress', server_ip_address) def default_mdc(): MDC.put('instanceUUID', uuid.uuid1()) MDC.put('serviceName', 'OOF_OSDF') MDC.put('threadID', threading.currentThread().getName()) default_server_info() MDC.put('requestID', 'N/A') MDC.put('partnerName', 'N/A') def mdc_from_json(request_json): default_mdc() MDC.put('requestID', get_request_id(request_json)) MDC.put('partnerName', request_json['requestInfo']['sourceId']) def get_request_id(request_json): request_id = request_json['requestInfo'].get('requestId') if not request_id: request_id = request_json['requestInfo'].get('requestID') return request_id def clear_mdc(): MDC.clear()