Skip to content

Commit

Permalink
Fix be listing to work without 'creation'
Browse files Browse the repository at this point in the history
list_boot_environment(..) shouldn't require 'creation'
  • Loading branch information
johnramsden committed Jun 7, 2018
1 parent c28431d commit bf3783f
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 22 deletions.
27 changes: 13 additions & 14 deletions zedenv/cli/mount.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,44 +59,43 @@ def zedenv_mount(boot_environment: str, mountpoint: Optional[str], verbose: bool
}, verbose)

if not mountpoint:
mountpoint_used = tempfile.mkdtemp(suffix=f"-{boot_environment}", prefix="zedenv-")
mountpoint = tempfile.mkdtemp(suffix=f"-{boot_environment}", prefix="zedenv-")
ZELogger.verbose_log({
"level": "INFO",
"message": f"No mountpoint given, using a temporary directory {mountpoint_used}.\n"
"message": f"No mountpoint given, using a temporary directory {mountpoint}.\n"
}, verbose)
else:
mountpoint_used = mountpoint[0]
if os.path.ismount(mountpoint_used):
if os.path.ismount(mountpoint):
ZELogger.log({
"level": "EXCEPTION",
"message": f"There is already a file system mounted at {mountpoint_used}"
"message": f"There is already a file system mounted at {mountpoint}"
}, exit_on_error=True)

if not os.path.isdir(mountpoint_used):
if not os.path.isdir(mountpoint):
ZELogger.log({
"level": "EXCEPTION",
"message": (f"The path'{mountpoint_used}' is not a directory, "
"message": (f"The path'{mountpoint}' is not a directory, "
"cannot be used as mountpoint.\n")
}, exit_on_error=True)
ZELogger.verbose_log({
"level": "INFO",
"message": f"Mountpoint '{mountpoint_used}' given, using as mountpoint.\n"
"message": f"Mountpoint '{mountpoint}' given, using as mountpoint.\n"
}, verbose)

be_dataset = f"{be_root}/{boot_environment}"

try:
zedenv.lib.system.zfs_manual_mount(be_dataset, mountpoint_used)
zedenv.lib.system.zfs_manual_mount(be_dataset, mountpoint)
except RuntimeError as e:
ZELogger.log({
"level": "EXCEPTION",
"message": f"Failed mounting dataset to '{mountpoint_used}'.\n{e}"
"message": f"Failed mounting dataset to '{mountpoint}'.\n{e}"
}, exit_on_error=True)

ZELogger.verbose_log(
{"level": "INFO", "message": f"Mounted dataset to '{mountpoint_used}'.\n"}, verbose)
{"level": "INFO", "message": f"Mounted dataset to '{mountpoint}'.\n"}, verbose)
if not verbose:
ZELogger.log({"level": "INFO", "message": mountpoint_used})
ZELogger.log({"level": "INFO", "message": mountpoint})

child_datasets = zedenv.lib.be.list_child_mountpoints(be_dataset)

Expand All @@ -105,7 +104,7 @@ def zedenv_mount(boot_environment: str, mountpoint: Optional[str], verbose: bool
"level": "INFO",
"message": f"Mounting children of '{boot_environment}'.\n"
}, verbose)
mount_children(child_datasets, mountpoint_used, verbose)
mount_children(child_datasets, mountpoint, verbose)


@click.command(name="mount",
Expand Down Expand Up @@ -142,4 +141,4 @@ def cli(boot_environment: str, mountpoint: Optional[str], verbose: Optional[bool
"message": f"Dataset already mounted to {dataset_mountpoint}\n"
}, exit_on_error=True)

zedenv_mount(boot_environment, mountpoint, verbose, be_root)
zedenv_mount(boot_environment, mountpoint[0], verbose, be_root)
11 changes: 7 additions & 4 deletions zedenv/lib/be.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,15 +245,18 @@ def list_boot_environments(target: str, columns: list) -> List[Dict[str, str]]:
for line in split_property_list:
if line[0] != target:
line_item = {}
line_date = "-".join(line[len(line) - date_length:])
line_columns = line[:-date_length]

if "creation" in columns:
line_columns = line[:-date_length]
line_date = "-".join(line[len(line) - date_length:])
line_item['creation'] = line_date
else:
line_columns = line

for i, it in enumerate(line_columns):
if columns[i] != 'creation':
line_item[columns[i]] = it

line_item['creation'] = line_date

full_property_list.append(line_item)

return full_property_list
Expand Down
15 changes: 11 additions & 4 deletions zedenv/plugins/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,21 @@ def check_zedenv_properties(self):
If prop unset, leave default
"""
for prop in self.zedenv_properties:
ZELogger.verbose_log({
"level": "INFO",
"message": f"Checking prop: 'org.zedenv.{self.bootloader}:{prop}'"
}, self.verbose)
prop_val = zedenv.lib.be.get_property(
"/".join([self.be_root, self.boot_environment]),
f"org.zedenv.{self.bootloader}:{prop}")

if prop_val is not None and prop_val != "-":
self.zedenv_properties[prop] = prop_val

ZELogger.log({"level": "INFO", "message": f"Found: {prop}"})
ZELogger.verbose_log({
"level": "INFO",
"message": (f"org.zedenv.{self.bootloader}:{prop}="
f"{self.zedenv_properties[prop]}.\n")
}, self.verbose)

def recurse_move(self, source, dest, overwrite=False):
for tf in os.listdir(source):
Expand Down Expand Up @@ -142,8 +149,8 @@ def modify_fstab(self, be_mountpoint: str, replace_pattern: str, new_entry: str)
target = re.compile(replace_pattern)

"""
Find match for: $esp/$env_dir/$boot_environment $boot_location <fstab stuff>
eg: /mnt/efi/env/default-3 /boot none rw,defaults,bind 0 0
Find match for: $esp/$env_dir/zedenv-$boot_environment $boot_location <fstab stuff>
eg: /mnt/efi/env/zedenv-default-3 /boot none rw,defaults,bind 0 0
"""

with open(temp_fstab) as in_f:
Expand Down

0 comments on commit bf3783f

Please sign in to comment.