Skip to content

Commit 8263bce

Browse files
committed
Conf directiory as CLI option and more updates
1 parent 4a783b9 commit 8263bce

File tree

4 files changed

+18
-9
lines changed

4 files changed

+18
-9
lines changed

candore/cli.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,19 @@
1616
@click.option("--version", is_flag=True, help="Installed version of candore")
1717
@click.option("--settings-file", "-s", default=None, help="Settings file path")
1818
@click.option("--components-file", "-c", default=None, help="Components file path")
19+
@click.option("--conf-dir", default=None, help="Conf directory contain configuration files")
1920
@click.pass_context
20-
def candore(ctx, version, settings_file, components_file):
21+
def candore(ctx, version, settings_file, components_file, conf_dir):
2122
if version:
2223
import pkg_resources
2324

2425
ver = pkg_resources.get_distribution("candore").version
2526
click.echo(f"Version: {ver}")
2627
candore_obj = Candore(
2728
settings=candore_settings(
28-
option_settings_file=settings_file, option_components_file=components_file
29+
option_settings_file=settings_file,
30+
option_components_file=components_file,
31+
conf_dir=conf_dir
2932
)
3033
)
3134
ctx.__dict__["candore"] = candore_obj

candore/config.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
CURRENT_DIRECTORY = Path().resolve()
88

99

10-
def candore_settings(option_settings_file=None, option_components_file=None):
10+
def candore_settings(option_settings_file=None, option_components_file=None, conf_dir=None):
1111
settings_file = (
1212
PurePath(option_settings_file)
1313
if option_settings_file
@@ -18,12 +18,18 @@ def candore_settings(option_settings_file=None, option_components_file=None):
1818
if option_components_file
1919
else PurePath(CURRENT_DIRECTORY, "components.yaml")
2020
)
21+
if conf_dir:
22+
a_conf_dir = PurePath(conf_dir)
23+
if not Path(a_conf_dir).exists():
24+
raise OSError(f'The conf directory path {a_conf_dir} does not exists')
25+
else:
26+
a_conf_dir = PurePath('conf/')
2127
# Initialize and Configure Settings
2228
settings = Dynaconf(
2329
core_loaders=["YAML"],
2430
envvar_prefix="CANDORE",
2531
settings_files=[settings_file, components_file],
26-
preload=["conf/*.yaml"],
32+
preload=[f"{a_conf_dir}/*.yaml"],
2733
envless_mode=True,
2834
lowercase_read=True,
2935
)

candore/modules/extractor.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ async def extract_all_entities(self):
192192

193193
async def extract_all_rpms(self):
194194
"""Extracts all installed RPMs from server"""
195-
with Session() as ssh_client:
195+
with Session(settings=self.settings) as ssh_client:
196196
rpms = ssh_client.execute('rpm -qa').stdout
197197
rpms = rpms.splitlines()
198198
name_version_pattern = rf'{self.settings.rpms.regex_pattern}'

candore/modules/ssh.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66

77
class Session:
88

9-
def __init__(self):
10-
self.settings = candore_settings()
11-
self.hostname = urlparse(self.settings.candore.base_url).hostname
12-
self.username = self.settings.candore.ssh.username or 'root'
9+
def __init__(self, settings=None):
10+
self.settings = settings
11+
self.hostname = urlparse(settings.candore.base_url).hostname
12+
self.username = settings.candore.ssh.username or 'root'
1313

1414
@cached_property
1515
def auth(self):

0 commit comments

Comments
 (0)