Skip to content

Commit 8ccc06c

Browse files
committed
fix loading of default jail config when no defaults.json is present
1 parent 7f0e47c commit 8ccc06c

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

libiocage/lib/JailConfig.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,17 @@ def __init__(self,
9090
self["legacy"] = False
9191

9292
self.defaults_file = defaults_file
93-
self.defaults = None
93+
self._defaults = None
9494

9595
self.clone(data)
9696

97-
def load_defaults(self, defaults_file=None):
97+
@property
98+
def defaults(self):
99+
if self._defaults is None:
100+
self._load_defaults()
101+
return self._defaults
102+
103+
def _load_defaults(self, defaults_file=None):
98104

99105
if defaults_file is not None:
100106
self.defaults_file = defaults_file
@@ -103,7 +109,7 @@ def load_defaults(self, defaults_file=None):
103109
root_mountpoint = self.jail.host.datasets.root.mountpoint
104110
defaults_file = f"{root_mountpoint}/defaults.json"
105111

106-
self.defaults = libiocage.lib.JailConfigDefaults.JailConfigDefaults(
112+
self._defaults = libiocage.lib.JailConfigDefaults.JailConfigDefaults(
107113
file=defaults_file,
108114
logger=self.logger
109115
)
@@ -365,17 +371,21 @@ def _get_jail_zfs(self):
365371
enabled = self._default_jail_zfs()
366372

367373
if not enabled:
368-
if len(self.jail_zfs_dataset) > 0:
374+
if len(self["jail_zfs_dataset"]) > 0:
369375
raise libiocage.lib.errors.JailConigZFSIsNotAllowed(
370-
logger=self.logger)
376+
logger=self.logger
377+
)
371378
return enabled
372379

373380
def _set_jail_zfs(self, value, **kwargs):
374381
if (value is None) or (value == ""):
375382
del self.data["jail_zfs"]
376383
return
377384
self.data["jail_zfs"] = libiocage.lib.helpers.to_string(
378-
value, true="on", false="off")
385+
value,
386+
true="on",
387+
false="off"
388+
)
379389

380390
def _default_jail_zfs(self):
381391
# if self.data["jail_zfs"] does not explicitly exist,
@@ -395,7 +405,8 @@ def _set_resolver(self, value, **kwargs):
395405
resolver = self["resolver"]
396406
else:
397407
resolver = libiocage.lib.JailConfigResolver.JailConfigResolver(
398-
jail_config=self)
408+
jail_config=self
409+
)
399410
resolver.update(value, notify=True)
400411

401412
def _get_cloned_release(self):

libiocage/lib/JailConfigDefaults.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ def __init__(self, file, logger):
5555
self.logger = logger
5656
dict.__init__(self, JailConfigDefaults.DEFAULTS)
5757
self.file = file
58-
self.read(file)
58+
try:
59+
self.read()
60+
except:
61+
pass
5962

6063
def read(self):
6164

@@ -67,7 +70,7 @@ def read(self):
6770
if not os.path.isfile(self.file):
6871
raise libiocage.lib.errors.DefaultConfigNotFound(
6972
config_file_path=self.file,
70-
logger=self.logger
73+
logger=None
7174
)
7275

7376
if self.logger:

libiocage/lib/Release.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ def fetch(self, update=None, fetch_updates=None):
250250
release_changed = False
251251

252252
if not self.fetched:
253+
253254
self._clean_dataset()
254255
self._create_dataset()
255256
self._ensure_dataset_mounted()
@@ -464,7 +465,7 @@ def _update_freebsd_jail(self, jail):
464465
"-f",
465466
"/var/db/freebsd-update/freebsd-update.conf",
466467
"install"
467-
], ignore_error=True, logger=self.logger)
468+
], ignore_error=True)
468469

469470
if child.returncode != 0:
470471
if "No updates are available to install." in stdout:

0 commit comments

Comments
 (0)