def run(self) -> None:
self.pull_conf_settings()
-
- t_node_proxy = Thread(target=cephadmlib.node_proxy.server.main)
ssl_ctx = ssl.create_default_context()
ssl_ctx.check_hostname = True
ssl_ctx.verify_mode = ssl.CERT_REQUIRED
ssl_ctx.load_verify_locations(self.ca_path)
+ node_proxy_data = json.dumps({'keyring': self.keyring,
+ 'host': self.host})
+ node_proxy_data = node_proxy_data.encode('ascii')
+ result = self.query_endpoint(data=node_proxy_data,
+ endpoint='/node-proxy/idrac',
+ ssl_ctx=ssl_ctx)
+ result_json = json.loads(result)
+ t_node_proxy = Thread(target=cephadmlib.node_proxy.server.main,
+ kwargs={'host': result_json['result']['addr'],
+ 'username': result_json['result']['username'],
+ 'password': result_json['result']['password'])
t_node_proxy.start()
try:
import sys
import argparse
-# for devel purposes
-import os
-DEVEL_ENV_VARS = ['REDFISH_HOST',
- 'REDFISH_USERNAME',
- 'REDFISH_PASSWORD']
-
DEFAULT_CONFIG = {
'reporter': {
'check_interval': 5,
}
}
-#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:
exposed = True
return 'use /system or /admin endpoints'
-def main() -> None:
+def main(host: str = '',
+ username: str = '',
+ password: str = '') -> None:
+ # TODO: add a check and fail if host/username/password/data aren't passed
# parser = argparse.ArgumentParser(
# prog='node-proxy',
config = Config('/etc/ceph/node-proxy.yml', default_config=DEFAULT_CONFIG)
log = Logger(__name__, level=config.__dict__['logging']['level'])
- # must be passed as arguments
- host = os.environ.get('REDFISH_HOST')
- username = os.environ.get('REDFISH_USERNAME')
- password = os.environ.get('REDFISH_PASSWORD')
+
+ host = host
+ username = username
+ password = password
# create the redfish system and the obsever
log.logger.info("Server initialization...")