Skip to content

Commit

Permalink
Inherit from 'Plugin' to avoid code duplication
Browse files Browse the repository at this point in the history
  • Loading branch information
johnramsden committed Jun 3, 2018
1 parent 6c3ea69 commit 341f6fd
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 85 deletions.
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ def readme():
with open('README.rst') as f:
return f.read()


setup(
name='zedenv',
version=__version__,
Expand Down
19 changes: 4 additions & 15 deletions zedenv/plugins/freebsdloader.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,14 @@
from zedenv.lib.logger import ZELogger


class FreeBSDLoader:
class FreeBSDLoader(plugin_config.Plugin):

systems_allowed = ["freebsd"]
bootloader = "freebsdloader"

def __init__(self, zedenv_data: dict):

for k in zedenv_data:
if k not in plugin_config.allowed_keys:
raise ValueError(f"Type {k} is not in allowed keys")

self.boot_environment = zedenv_data['boot_environment']
self.old_boot_environment = zedenv_data['old_boot_environment']
self.bootloader = zedenv_data['bootloader']
self.verbose = zedenv_data['verbose']
self.noconfirm = zedenv_data['noconfirm']
self.noop = zedenv_data['noop']
self.be_root = zedenv_data['boot_environment_root']
super().__init__(zedenv_data)

self.zpool_cache = "boot/zfs/zpool.cache"
self.zfs_be_path = "etc/rc.d/zfsbe"
Expand All @@ -45,9 +37,6 @@ def post_activate(self):
"message": f"Failed to set {canmount_setting} for {ds}\n{e}\n"
}, exit_on_error=True)

def pre_activate(self):
pass

def _loader_replace(self, configs: list):
be_dataset = f"{self.be_root}/{self.boot_environment}"

Expand Down
74 changes: 4 additions & 70 deletions zedenv/plugins/systemdboot.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,14 @@
from zedenv.lib.logger import ZELogger


class SystemdBoot:
systems_allowed = ["linux"]
class SystemdBoot(plugin_config.Plugin):

systems_allowed = ["linux"]
bootloader = "systemdboot"

def __init__(self, zedenv_data: dict):

for k in zedenv_data:
if k not in plugin_config.allowed_keys:
raise ValueError(f"Type {k} is not in allowed keys")

self.boot_environment = zedenv_data['boot_environment']
self.old_boot_environment = zedenv_data['old_boot_environment']
self.bootloader = zedenv_data['bootloader']
self.verbose = zedenv_data['verbose']
self.noconfirm = zedenv_data['noconfirm']
self.noop = zedenv_data['noop']
self.be_root = zedenv_data['boot_environment_root']
super().__init__(zedenv_data)

self.env_dir = "env"
self.boot_mountpoint = "/boot"
Expand Down Expand Up @@ -373,59 +363,6 @@ def edit_bootloader_default(self, temp_esp: str, overwrite: bool):
"Would you like to edit the generated 'loader.conf'?", default=True):
click.edit(filename=real_loader_conf_path)

def recurse_move(self, source, dest):
for tf in os.listdir(source):
tf_path_src = os.path.join(source, tf)
tf_path_dst = os.path.join(dest, tf)

if os.path.isfile(tf_path_src):
if os.path.isfile(tf_path_dst):
ZELogger.verbose_log({
"level": "INFO",
"message": f"File {tf_path_dst} already exists, will not modify.\n"
}, self.verbose)
else:
try:
shutil.copy(tf_path_src, tf_path_dst)
except PermissionError:
ZELogger.log({
"level": "EXCEPTION",
"message": (f"Require Privileges to write to "
f"'{tf_path_dst}.bak'\n")

}, exit_on_error=True)
ZELogger.verbose_log({
"level": "INFO",
"message": f"Copied file {tf_path_src} -> {tf_path_dst}\n"
}, self.verbose)
elif os.path.isdir(tf_path_src):
if os.path.isdir(tf_path_dst):
ZELogger.verbose_log({
"level": "INFO",
"message": f"Directory {tf_path_dst} already exists, will not modify.\n"
}, self.verbose)

# Call again, may be empty
self.recurse_move(tf_path_src, tf_path_dst)

else:
try:
shutil.copytree(tf_path_src, tf_path_dst)
except PermissionError as e:
ZELogger.log({
"level": "EXCEPTION",
"message": f"Require Privileges to write to {tf_path_dst}\n{e}"
}, exit_on_error=True)
except IOError as e:
ZELogger.log({
"level": "EXCEPTION",
"message": f"IOError writing to {tf_path_dst}\n{e}"
}, exit_on_error=True)
ZELogger.verbose_log({
"level": "INFO",
"message": f"Copied dir {tf_path_src} -> {tf_path_dst}\n"
}, self.verbose)

def post_activate(self):
ZELogger.verbose_log({
"level": "INFO",
Expand All @@ -448,10 +385,7 @@ def post_activate(self):

self.edit_bootloader_default(t_esp, overwrite=True)

# self.cleanup_entries()

def pre_activate(self):
pass
# TODO: self.cleanup_entries()

def mid_activate(self, be_mountpoint: str):
ZELogger.verbose_log({
Expand Down

0 comments on commit 341f6fd

Please sign in to comment.