From 906286426f02e068f5f8379e9330b2dcbaace050 Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Wed, 5 Apr 2023 14:08:38 +0200 Subject: [PATCH] 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 --- src/cephadm/node-proxy/redfish_client.py | 11 ++++++++--- src/cephadm/node-proxy/redfish_system.py | 16 +++++++++++----- src/cephadm/node-proxy/server.py | 4 ++++ src/cephadm/node-proxy/util.py | 12 ++++++++++++ 4 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 src/cephadm/node-proxy/util.py diff --git a/src/cephadm/node-proxy/redfish_client.py b/src/cephadm/node-proxy/redfish_client.py index f4a06ffc309..8b85daeace3 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 921b7520640..07f9cd69973 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 fc09a4fc8e5..14c8db941ee 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 00000000000..d70e99fc4f3 --- /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 -- 2.39.5