From 01eb78c74dbb324f988ad8765728a019e154400c Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Thu, 17 Aug 2023 11:21:00 +0200 Subject: [PATCH] node-proxy: migrate to cephadm-agent This moves the existing files to the new directory 'cephadmlib' so we can make the existing code for node-proxy run within the cephadm agent. Indeed, we can leverage the existing code for the cephadm agent given that both daemons would achieve the same thing. Signed-off-by: Guillaume Abrioux (cherry picked from commit 83661b6c1a25b2d40f3cefa9f5de094c644a1e4e) --- src/cephadm/cephadm.py | 4 ++ .../{ => cephadmlib}/node_proxy/baseclient.py | 0 .../{ => cephadmlib}/node_proxy/basesystem.py | 4 +- .../{ => cephadmlib}/node_proxy/data.py | 0 .../fake_cephadm/cephadm_mgr_module.py | 0 .../{ => cephadmlib}/node_proxy/main.py | 0 .../node_proxy/redfish-test.py | 0 .../node_proxy/redfish_client.py | 4 +- .../node_proxy/redfish_dell.py | 4 +- .../redfish_json_samples/interface_sample | 0 .../redfish_json_samples/interfaces_sample | 0 .../node_proxy/redfish_json_samples/memory | 0 .../redfish_json_samples/memory_socket | 0 .../node_proxy/redfish_json_samples/processor | 0 .../redfish_json_samples/processors | 0 .../redfish_json_samples/storage_sample | 0 .../node_proxy/redfish_json_samples/system | 0 .../node_proxy/redfish_system.py | 6 +-- .../{ => cephadmlib}/node_proxy/reporter.py | 2 +- .../{ => cephadmlib}/node_proxy/server.py | 42 +++++++++---------- .../{ => cephadmlib}/node_proxy/util.py | 0 src/cephadm/node_proxy/requirements.txt | 8 ---- 22 files changed, 35 insertions(+), 39 deletions(-) rename src/cephadm/{ => cephadmlib}/node_proxy/baseclient.py (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/basesystem.py (95%) rename src/cephadm/{ => cephadmlib}/node_proxy/data.py (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/fake_cephadm/cephadm_mgr_module.py (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/main.py (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish-test.py (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_client.py (97%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_dell.py (95%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_json_samples/interface_sample (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_json_samples/interfaces_sample (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_json_samples/memory (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_json_samples/memory_socket (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_json_samples/processor (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_json_samples/processors (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_json_samples/storage_sample (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_json_samples/system (100%) rename src/cephadm/{ => cephadmlib}/node_proxy/redfish_system.py (97%) rename src/cephadm/{ => cephadmlib}/node_proxy/reporter.py (98%) rename src/cephadm/{ => cephadmlib}/node_proxy/server.py (89%) rename src/cephadm/{ => cephadmlib}/node_proxy/util.py (100%) delete mode 100644 src/cephadm/node_proxy/requirements.txt diff --git a/src/cephadm/cephadm.py b/src/cephadm/cephadm.py index bcb82c4c4d4..d8af9d3b918 100755 --- a/src/cephadm/cephadm.py +++ b/src/cephadm/cephadm.py @@ -40,6 +40,7 @@ from threading import Thread, Event from urllib.error import HTTPError, URLError from urllib.request import urlopen, Request from pathlib import Path +import cephadmlib.node_proxy.server FuncT = TypeVar('FuncT', bound=Callable) @@ -4895,6 +4896,9 @@ WantedBy=ceph-{fsid}.target def run(self) -> None: self.pull_conf_settings() + t_node_proxy = Thread(target=cephadmlib.node_proxy.server.main) + t_node_proxy.start() + try: for _ in range(1001): if not port_in_use(self.ctx, EndPoint('0.0.0.0', self.starting_port)): diff --git a/src/cephadm/node_proxy/baseclient.py b/src/cephadm/cephadmlib/node_proxy/baseclient.py similarity index 100% rename from src/cephadm/node_proxy/baseclient.py rename to src/cephadm/cephadmlib/node_proxy/baseclient.py diff --git a/src/cephadm/node_proxy/basesystem.py b/src/cephadm/cephadmlib/node_proxy/basesystem.py similarity index 95% rename from src/cephadm/node_proxy/basesystem.py rename to src/cephadm/cephadmlib/node_proxy/basesystem.py index a56ad7e8f9d..d3571e921f9 100644 --- a/src/cephadm/node_proxy/basesystem.py +++ b/src/cephadm/cephadmlib/node_proxy/basesystem.py @@ -1,6 +1,6 @@ -from util import Config +from .util import Config from typing import Dict, Any -from baseclient import BaseClient +from .baseclient import BaseClient class BaseSystem: diff --git a/src/cephadm/node_proxy/data.py b/src/cephadm/cephadmlib/node_proxy/data.py similarity index 100% rename from src/cephadm/node_proxy/data.py rename to src/cephadm/cephadmlib/node_proxy/data.py diff --git a/src/cephadm/node_proxy/fake_cephadm/cephadm_mgr_module.py b/src/cephadm/cephadmlib/node_proxy/fake_cephadm/cephadm_mgr_module.py similarity index 100% rename from src/cephadm/node_proxy/fake_cephadm/cephadm_mgr_module.py rename to src/cephadm/cephadmlib/node_proxy/fake_cephadm/cephadm_mgr_module.py diff --git a/src/cephadm/node_proxy/main.py b/src/cephadm/cephadmlib/node_proxy/main.py similarity index 100% rename from src/cephadm/node_proxy/main.py rename to src/cephadm/cephadmlib/node_proxy/main.py diff --git a/src/cephadm/node_proxy/redfish-test.py b/src/cephadm/cephadmlib/node_proxy/redfish-test.py similarity index 100% rename from src/cephadm/node_proxy/redfish-test.py rename to src/cephadm/cephadmlib/node_proxy/redfish-test.py diff --git a/src/cephadm/node_proxy/redfish_client.py b/src/cephadm/cephadmlib/node_proxy/redfish_client.py similarity index 97% rename from src/cephadm/node_proxy/redfish_client.py rename to src/cephadm/cephadmlib/node_proxy/redfish_client.py index 77353cd4781..26f71358593 100644 --- a/src/cephadm/node_proxy/redfish_client.py +++ b/src/cephadm/cephadmlib/node_proxy/redfish_client.py @@ -3,8 +3,8 @@ from redfish.rest.v1 import ServerDownOrUnreachableError, \ InvalidCredentialsError import redfish import sys -from util import Logger -from baseclient import BaseClient +from .util import Logger +from .baseclient import BaseClient from typing import Dict log = Logger(__name__) diff --git a/src/cephadm/node_proxy/redfish_dell.py b/src/cephadm/cephadmlib/node_proxy/redfish_dell.py similarity index 95% rename from src/cephadm/node_proxy/redfish_dell.py rename to src/cephadm/cephadmlib/node_proxy/redfish_dell.py index 0f4467bad5f..f1cd6f6509b 100644 --- a/src/cephadm/node_proxy/redfish_dell.py +++ b/src/cephadm/cephadmlib/node_proxy/redfish_dell.py @@ -1,5 +1,5 @@ -from redfish_system import RedfishSystem -from util import Logger, normalize_dict, to_snake_case +from .redfish_system import RedfishSystem +from .util import Logger, normalize_dict, to_snake_case from typing import Dict, Any log = Logger(__name__) diff --git a/src/cephadm/node_proxy/redfish_json_samples/interface_sample b/src/cephadm/cephadmlib/node_proxy/redfish_json_samples/interface_sample similarity index 100% rename from src/cephadm/node_proxy/redfish_json_samples/interface_sample rename to src/cephadm/cephadmlib/node_proxy/redfish_json_samples/interface_sample diff --git a/src/cephadm/node_proxy/redfish_json_samples/interfaces_sample b/src/cephadm/cephadmlib/node_proxy/redfish_json_samples/interfaces_sample similarity index 100% rename from src/cephadm/node_proxy/redfish_json_samples/interfaces_sample rename to src/cephadm/cephadmlib/node_proxy/redfish_json_samples/interfaces_sample diff --git a/src/cephadm/node_proxy/redfish_json_samples/memory b/src/cephadm/cephadmlib/node_proxy/redfish_json_samples/memory similarity index 100% rename from src/cephadm/node_proxy/redfish_json_samples/memory rename to src/cephadm/cephadmlib/node_proxy/redfish_json_samples/memory diff --git a/src/cephadm/node_proxy/redfish_json_samples/memory_socket b/src/cephadm/cephadmlib/node_proxy/redfish_json_samples/memory_socket similarity index 100% rename from src/cephadm/node_proxy/redfish_json_samples/memory_socket rename to src/cephadm/cephadmlib/node_proxy/redfish_json_samples/memory_socket diff --git a/src/cephadm/node_proxy/redfish_json_samples/processor b/src/cephadm/cephadmlib/node_proxy/redfish_json_samples/processor similarity index 100% rename from src/cephadm/node_proxy/redfish_json_samples/processor rename to src/cephadm/cephadmlib/node_proxy/redfish_json_samples/processor diff --git a/src/cephadm/node_proxy/redfish_json_samples/processors b/src/cephadm/cephadmlib/node_proxy/redfish_json_samples/processors similarity index 100% rename from src/cephadm/node_proxy/redfish_json_samples/processors rename to src/cephadm/cephadmlib/node_proxy/redfish_json_samples/processors diff --git a/src/cephadm/node_proxy/redfish_json_samples/storage_sample b/src/cephadm/cephadmlib/node_proxy/redfish_json_samples/storage_sample similarity index 100% rename from src/cephadm/node_proxy/redfish_json_samples/storage_sample rename to src/cephadm/cephadmlib/node_proxy/redfish_json_samples/storage_sample diff --git a/src/cephadm/node_proxy/redfish_json_samples/system b/src/cephadm/cephadmlib/node_proxy/redfish_json_samples/system similarity index 100% rename from src/cephadm/node_proxy/redfish_json_samples/system rename to src/cephadm/cephadmlib/node_proxy/redfish_json_samples/system diff --git a/src/cephadm/node_proxy/redfish_system.py b/src/cephadm/cephadmlib/node_proxy/redfish_system.py similarity index 97% rename from src/cephadm/node_proxy/redfish_system.py rename to src/cephadm/cephadmlib/node_proxy/redfish_system.py index f23e41af79e..bb8286b127e 100644 --- a/src/cephadm/node_proxy/redfish_system.py +++ b/src/cephadm/cephadmlib/node_proxy/redfish_system.py @@ -1,8 +1,8 @@ -from basesystem import BaseSystem -from redfish_client import RedFishClient +from .basesystem import BaseSystem +from .redfish_client import RedFishClient from threading import Thread, Lock from time import sleep -from util import Logger, retry, normalize_dict, to_snake_case +from .util import Logger, retry, normalize_dict, to_snake_case from typing import Dict, Any, List log = Logger(__name__) diff --git a/src/cephadm/node_proxy/reporter.py b/src/cephadm/cephadmlib/node_proxy/reporter.py similarity index 98% rename from src/cephadm/node_proxy/reporter.py rename to src/cephadm/cephadmlib/node_proxy/reporter.py index 07ac637bf1c..43b57388e3b 100644 --- a/src/cephadm/node_proxy/reporter.py +++ b/src/cephadm/cephadmlib/node_proxy/reporter.py @@ -1,7 +1,7 @@ from threading import Thread import requests import time -from util import Logger +from .util import Logger from typing import Any log = Logger(__name__) diff --git a/src/cephadm/node_proxy/server.py b/src/cephadm/cephadmlib/node_proxy/server.py similarity index 89% rename from src/cephadm/node_proxy/server.py rename to src/cephadm/cephadmlib/node_proxy/server.py index d05dbebd9c6..714dafc31f5 100644 --- a/src/cephadm/node_proxy/server.py +++ b/src/cephadm/cephadmlib/node_proxy/server.py @@ -1,9 +1,9 @@ import cherrypy -from redfish_dell import RedfishDell -from reporter import Reporter -from util import Config, Logger +from .redfish_dell import RedfishDell +from .reporter import Reporter +from .util import Config, Logger from typing import Dict -from basesystem import BaseSystem +from .basesystem import BaseSystem import sys import argparse @@ -30,10 +30,10 @@ DEFAULT_CONFIG = { } } -for env_var in DEVEL_ENV_VARS: - if os.environ.get(env_var) is None: - print(f"{env_var} environment variable must be set.") - sys.exit(1) +#for env_var in DEVEL_ENV_VARS: +# if os.environ.get(env_var) is None: +# print(f"{env_var} environment variable must be set.") +# sys.exit(1) class Memory: @@ -199,19 +199,19 @@ class API: def main() -> None: - parser = argparse.ArgumentParser( - prog='node-proxy', - ) - parser.add_argument( - '--config', - dest='config', - type=str, - required=False, - default='/etc/ceph/node-proxy.yml' - ) - - args = parser.parse_args() - config = Config(args.config, default_config=DEFAULT_CONFIG) + # parser = argparse.ArgumentParser( + # prog='node-proxy', + # ) + # parser.add_argument( + # '--config', + # dest='config', + # type=str, + # required=False, + # default='/etc/ceph/node-proxy.yml' + # ) + + # args = parser.parse_args() + config = Config('/etc/ceph/node-proxy.yml', default_config=DEFAULT_CONFIG) log = Logger(__name__, level=config.__dict__['logging']['level']) # must be passed as arguments diff --git a/src/cephadm/node_proxy/util.py b/src/cephadm/cephadmlib/node_proxy/util.py similarity index 100% rename from src/cephadm/node_proxy/util.py rename to src/cephadm/cephadmlib/node_proxy/util.py diff --git a/src/cephadm/node_proxy/requirements.txt b/src/cephadm/node_proxy/requirements.txt deleted file mode 100644 index ab20bcc64b4..00000000000 --- a/src/cephadm/node_proxy/requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -pyyaml -types-PyYAML -types-requests -mypy -flake8 -redfish -CherryPy -requests -- 2.39.5