[et-mgmt-tools] [PATCH] Let users keep images in /tftpboot
Michael DeHaan
mdehaan at redhat.com
Mon Oct 15 20:43:32 UTC 2007
Jack Neely wrote:
> I tend to keep images in the /tftpboot space ordered by support group.
> This makes cobbler use hard/soft links in that case and does some simple
> testing for filesystem suckiness.
>
> Jack Neely
>
> ---
> cobbler/action_sync.py | 29 +++++++++++++++++++++++++++--
> 1 files changed, 27 insertions(+), 2 deletions(-)
>
> diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py
> index 3de38a8..ee707f3 100644
> --- a/cobbler/action_sync.py
> +++ b/cobbler/action_sync.py
> @@ -302,8 +302,14 @@ class BootSync:
> raise CX(_("initrd not found: %(file)s, distro: %(distro)s") % { "file" : d.initrd, "distro" : d.name })
> b_kernel = os.path.basename(kernel)
> b_initrd = os.path.basename(initrd)
> - self.copyfile(kernel, os.path.join(distro_dir, b_kernel))
> - self.copyfile(initrd, os.path.join(distro_dir, b_initrd))
> + if kernel.startswith(dirtree):
> + self.linkfile(kernel, os.path.join(distro_dir, b_kernel))
> + else:
> + self.copyfile(kernel, os.path.join(distro_dir, b_kernel))
> + if initrd.startswith(dirtree):
> + self.linkfile(initrd, os.path.join(distro_dir, b_initrd))
> + else:
> + self.copyfile(initrd, os.path.join(distro_dir, b_initrd))
>
> def validate_kickstarts(self):
> """
> @@ -840,6 +846,25 @@ class BootSync:
> fd.write(yaml.dump(blended))
> fd.close()
>
> + def linkfile(self, src, dst):
> + """
> + Attempt to create a link dst that points to src. Because file
> + systems suck we attempt several different methods or bail to
> + self.copyfile()
> + """
> +
> + try:
> + return os.link(src, dst)
> + except (IOError, OSError):
> + pass
> +
> + try:
> + return os.symlink(src, dst)
> + except (IOError, OSError):
> + pass
> +
> + return self.copyfile(src, dst)
> +
> def copyfile(self,src,dst):
> try:
> return shutil.copyfile(src,dst)
>
Sounds good and applied, thanks!
--Michael
More information about the et-mgmt-tools
mailing list