bootloader: added option initrd_remove_dir
To remove the source directory from which the initrd image is build, the following can be used: [bootloader] initrd_remove_dir = True initrd_add_dir = /tmp/tuned-initrd.img This will create initrd image from the /tmp/tuned-initrd.img directory and and then it removes the tuned-initrd.img directory from the /tmp. Related: rhbz#1414098 Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
This commit is contained in:
parent
d89ab6731b
commit
4eadc691fc
2 changed files with 24 additions and 0 deletions
|
|
@ -30,6 +30,7 @@ class BootloaderPlugin(base.Plugin):
|
|||
instance._has_static_tuning = True
|
||||
# controls grub2_cfg rewrites in _instance_post_static
|
||||
self.update_grub2_cfg = False
|
||||
self._initrd_remove_dir = False
|
||||
self._initrd_dst_img_val = None
|
||||
self._cmdline_val = ""
|
||||
self._initrd_val = ""
|
||||
|
|
@ -46,6 +47,7 @@ class BootloaderPlugin(base.Plugin):
|
|||
"initrd_dst_img": None,
|
||||
"initrd_add_img": None,
|
||||
"initrd_add_dir": None,
|
||||
"initrd_remove_dir": None,
|
||||
"cmdline": None,
|
||||
}
|
||||
|
||||
|
|
@ -208,6 +210,14 @@ class BootloaderPlugin(base.Plugin):
|
|||
if self._initrd_dst_img_val[0] != "/":
|
||||
self._initrd_dst_img_val = os.path.join(consts.BOOT_DIR, self._initrd_dst_img_val)
|
||||
|
||||
@command_custom("initrd_remove_dir")
|
||||
def _initrd_remove_dir(self, enabling, value, verify, ignore_missing):
|
||||
# nothing to verify
|
||||
if verify:
|
||||
return None
|
||||
if enabling and value is not None:
|
||||
self._initrd_remove_dir = value
|
||||
|
||||
@command_custom("initrd_add_img", per_device = False, priority = 10)
|
||||
def _initrd_add_img(self, enabling, value, verify, ignore_missing):
|
||||
# nothing to verify
|
||||
|
|
@ -248,6 +258,9 @@ class BootloaderPlugin(base.Plugin):
|
|||
return False
|
||||
self._install_initrd(tmpfile)
|
||||
self._cmd.unlink(tmpfile)
|
||||
if self._initrd_remove_dir:
|
||||
log.info("removing directory '%s'" % src_dir)
|
||||
self._cmd.rmtree(src_dir)
|
||||
|
||||
@command_custom("cmdline", per_device = False, priority = 10)
|
||||
def _cmdline(self, enabling, value, verify, ignore_missing):
|
||||
|
|
|
|||
|
|
@ -121,6 +121,17 @@ class commands:
|
|||
self._debug("Read data from file: '%s' > '%s'" % (f, old_value))
|
||||
return old_value
|
||||
|
||||
def rmtree(self, f, no_error = False):
|
||||
self._debug("Removing tree: '%s'" % f)
|
||||
if os.path.exists(f):
|
||||
try:
|
||||
shutil.rmtree(f, no_error)
|
||||
except OSError as error:
|
||||
if not no_error:
|
||||
log.error("cannot remove tree '%s': '%s'" % (f, str(error)))
|
||||
return False
|
||||
return True
|
||||
|
||||
def unlink(self, f, no_error = False):
|
||||
self._debug("Removing file: '%s'" % f)
|
||||
if os.path.exists(f):
|
||||
|
|
|
|||
Loading…
Reference in a new issue