diff options
Diffstat (limited to 'cobbler/action_hardlink.py')
-rw-r--r-- | cobbler/action_hardlink.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/cobbler/action_hardlink.py b/cobbler/action_hardlink.py new file mode 100644 index 00000000..6e17e357 --- /dev/null +++ b/cobbler/action_hardlink.py @@ -0,0 +1,56 @@ +""" +Hard links cobbler content together to save space. + +Copyright 2009, Red Hat, Inc +Michael DeHaan <mdehaan@redhat.com> + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA +""" + +import os +import utils +from cexceptions import * + +class HardLinker: + + def __init__(self,config): + """ + Constructor + """ + #self.config = config + #self.api = config.api + #self.settings = config.settings() + pass + + def run(self): + """ + Simply hardlinks directories that are cobbler managed. + This is a /very/ simple command but may grow more complex + and intelligent over time. + """ + + # FIXME: if these directories become configurable some + # changes will be required here. + + if not os.path.exists("/usr/sbin/hardlink"): + raise CX("please install 'hardlink' (/usr/sbin/hardlink) to use this feature") + + print "now hardlinking to save space, this may take some time." + + rc = os.system("/usr/sbin/hardlink -c -v /var/www/cobbler/ks_mirror /var/www/cobbler/repo_mirror") + + return rc + |