From: Guillaume Abrioux Date: Wed, 5 Apr 2023 12:08:38 +0000 (+0200) Subject: node-proxy: improve logging X-Git-Tag: v18.2.4~314^2~118 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=94849e426a0b16a51223816cd4bf870899fe7d5f;p=ceph.git node-proxy: improve logging this adds a new file `util.py` with a logger function in order to improve a bit the logging. Signed-off-by: Guillaume Abrioux (cherry picked from commit 906286426f02e068f5f8379e9330b2dcbaace050) --- diff --git a/src/cephadm/node-proxy/redfish_client.py b/src/cephadm/node-proxy/redfish_client.py index f4a06ffc309b..8b85daeace38 100644 --- a/src/cephadm/node-proxy/redfish_client.py +++ b/src/cephadm/node-proxy/redfish_client.py @@ -1,12 +1,15 @@ from redfish.rest.v1 import ServerDownOrUnreachableError import redfish -import logging +from util import logger + +log = logger(__name__, level=10) class RedFishClient: PREFIX = '/redfish/v1' def __init__(self, host, username, password): + log.info(f"redfish client initialization...") self.host = host self.username = username self.password = password @@ -19,14 +22,15 @@ class RedFishClient: default_prefix=self.PREFIX) try: self.redfish_obj.login(auth="session") + log.info(f"Logging to redfish api at {self.host} with user: {self.username}") except ServerDownOrUnreachableError as e: - logging.error(f"Server not reachable or does not support RedFish {e}", e) + log.error(f"Server not reachable or does not support RedFish {e}", e) def get_path(self, path): try: if self.PREFIX not in path: path = f"{self.PREFIX}{path}" - print(f"getting: {path}") + log.debug(f"getting: {path}") response = self.redfish_obj.get(path) return response.dict except Exception as e: @@ -34,4 +38,5 @@ class RedFishClient: pass def logout(self): + log.info('logging out...') self.redfish_obj.logout() diff --git a/src/cephadm/node-proxy/redfish_system.py b/src/cephadm/node-proxy/redfish_system.py index 921b7520640a..07f9cd69973a 100644 --- a/src/cephadm/node-proxy/redfish_system.py +++ b/src/cephadm/node-proxy/redfish_system.py @@ -2,9 +2,15 @@ from system import System from redfish_client import RedFishClient from threading import Thread from time import sleep +from flask import request +from util import logger + +log = logger(__name__) + class RedfishSystem(System): def __init__(self, host, username, password): + log.info(f"redfish system initialization, host: {host}, user: {username}") self.client = RedFishClient(host, username, password) self.client.login() self._system = {} @@ -43,20 +49,20 @@ class RedfishSystem(System): self._system = self._process_redfish_system(redfish_system) def _update_metadata(self): - print("Updating metadata") + log.info("Updating metadata") pass def _update_memory(self): - print("Updating memory") + log.info("Updating memory") pass def _update_power(self): - print("Updating power") + log.info("Updating power") pass def _update_network(self): - print("Updating network") net_path = self._system['EthernetInterfaces']['@odata.id'] + log.info("Updating network") network_info = self.client.get_path(net_path) self._system['network'] = {} for interface in network_info['Members']: @@ -65,7 +71,7 @@ class RedfishSystem(System): self._system['network'][interface_info['Id']] = interface_info def _update_storage(self): - print("Updating storage") + log.info("Updating storage") pass def start_update_loop(self): diff --git a/src/cephadm/node-proxy/server.py b/src/cephadm/node-proxy/server.py index fc09a4fc8e5a..14c8db941ee7 100644 --- a/src/cephadm/node-proxy/server.py +++ b/src/cephadm/node-proxy/server.py @@ -2,8 +2,11 @@ from flask import Flask, request, jsonify from system import System from redfish_system import RedfishSystem from reporter import Reporter +from util import logger import time +log = logger(__name__) + # must be passed as arguments host = "https://x.x.x.x:8443" username = "myuser" @@ -11,6 +14,7 @@ password = "mypassword" # create the redfish system and the obsever system = RedfishSystem(host, username, password) +log.info(f"Server initialization...") reporter_agent = Reporter(system, "http://127.0.0.1:8000") app = Flask(__name__) diff --git a/src/cephadm/node-proxy/util.py b/src/cephadm/node-proxy/util.py new file mode 100644 index 000000000000..d70e99fc4f38 --- /dev/null +++ b/src/cephadm/node-proxy/util.py @@ -0,0 +1,12 @@ +import logging + +def logger(name, level=logging.INFO): + logger = logging.getLogger(name) + logger.setLevel(level) + handler = logging.StreamHandler() + handler.setLevel(level) + fmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + handler.setFormatter(fmt) + logger.addHandler(handler) + + return logger