Skip to content

Commit 6cbe651

Browse files
commands: add a context property returning an opener
This opener property is the top-level point for fetching the opener to be used for this instance of sambacc. Signed-off-by: John Mulligan <[email protected]>
1 parent 7372143 commit 6cbe651

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

sambacc/commands/cli.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
from sambacc import config
2525
from sambacc import leader
26+
from sambacc import opener
2627
from sambacc import permissions
2728
from sambacc import simple_waiter
2829

@@ -142,6 +143,10 @@ def instance_config(self) -> config.InstanceConfig:
142143
def require_validation(self) -> typing.Optional[bool]:
143144
... # pragma: no cover
144145

146+
@property
147+
def opener(self) -> opener.Opener:
148+
... # pragma: no cover
149+
145150

146151
def best_waiter(
147152
filename: typing.Optional[str] = None,

sambacc/commands/main.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ def __init__(self, cli_args: argparse.Namespace):
182182
self._cli = cli_args
183183
self._iconfig: typing.Optional[config.InstanceConfig] = None
184184
self.expects_ctdb = False
185+
self._opener: typing.Optional[opener.Opener] = None
185186

186187
@property
187188
def cli(self) -> argparse.Namespace:
@@ -191,11 +192,10 @@ def cli(self) -> argparse.Namespace:
191192
def instance_config(self) -> config.InstanceConfig:
192193
if self._iconfig is None:
193194
cfgs = self.cli.config or []
194-
_opener = opener.FallbackOpener([url_opener.URLOpener()])
195195
self._iconfig = config.read_config_files(
196196
cfgs,
197197
require_validation=self.require_validation,
198-
opener=_opener,
198+
opener=self.opener,
199199
).get(self.cli.identity)
200200
return self._iconfig
201201

@@ -207,6 +207,12 @@ def require_validation(self) -> typing.Optional[bool]:
207207
return False
208208
return None
209209

210+
@property
211+
def opener(self) -> opener.Opener:
212+
if self._opener is None:
213+
self._opener = opener.FallbackOpener([url_opener.URLOpener()])
214+
return self._opener
215+
210216

211217
def pre_action(cli: typing.Any) -> None:
212218
"""Handle debugging/diagnostic related options before the target

0 commit comments

Comments
 (0)