summaryrefslogtreecommitdiffstats
path: root/cobbler/action_sync.py
diff options
context:
space:
mode:
Diffstat (limited to 'cobbler/action_sync.py')
-rw-r--r--cobbler/action_sync.py95
1 files changed, 64 insertions, 31 deletions
diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py
index f6e5bcd8..78f3c3d5 100644
--- a/cobbler/action_sync.py
+++ b/cobbler/action_sync.py
@@ -56,19 +56,22 @@ class BootSync:
"""
Constructor
"""
- self.verbose = verbose
- self.config = config
- self.api = config.api
- self.distros = config.distros()
- self.profiles = config.profiles()
- self.systems = config.systems()
- self.settings = config.settings()
- self.repos = config.repos()
- self.templar = templar.Templar(config)
- self.pxegen = pxegen.PXEGen(config)
- self.dns = dns
- self.dhcp = dhcp
- self.bootloc = utils.tftpboot_location()
+ self.verbose = verbose
+ self.config = config
+ self.api = config.api
+ self.distros = config.distros()
+ self.profiles = config.profiles()
+ self.systems = config.systems()
+ self.settings = config.settings()
+ self.repos = config.repos()
+ self.templar = templar.Templar(config)
+ self.pxegen = pxegen.PXEGen(config)
+ self.dns = dns
+ self.dhcp = dhcp
+ self.bootloc = utils.tftpboot_location()
+ self.pxegen.verbose = verbose
+ self.dns.verbose = verbose
+ self.dhcp.verbose = verbose
def run(self):
"""
@@ -78,37 +81,67 @@ class BootSync:
if not os.path.exists(self.bootloc):
raise CX(_("cannot find directory: %s") % self.bootloc)
+ if self.verbose:
+ print "- running pre-sync triggers"
+
# run pre-triggers...
- utils.run_triggers(None, "/var/lib/cobbler/triggers/sync/pre/*")
+ utils.run_triggers(self.api, None, "/var/lib/cobbler/triggers/sync/pre/*")
# (paranoid) in case the pre-trigger modified any objects...
+
+ if self.verbose:
+ print "- loading configuration"
self.api.deserialize()
+
self.distros = self.config.distros()
self.profiles = self.config.profiles()
self.systems = self.config.systems()
self.settings = self.config.settings()
self.repos = self.config.repos()
- self.pxegen = pxegen.PXEGen(self.config)
# execute the core of the sync operation
+
+ if self.verbose:
+ print "- cleaning trees"
self.clean_trees()
+
+ if self.verbose:
+ print "- copying bootloaders"
self.pxegen.copy_bootloaders()
+
+ if self.verbose:
+ print "- copying distros"
self.pxegen.copy_distros()
+
+ if self.verbose:
+ print "- copying images"
self.pxegen.copy_images()
self.pxegen.generate_windows_files()
for x in self.systems:
+ if self.verbose:
+ print "- copying files for system: %s" % x.name
self.pxegen.write_all_system_files(x)
+
if self.settings.manage_dhcp:
+ if self.verbose:
+ print "- rendering DHCP files"
self.dhcp.write_dhcp_file()
self.dhcp.regen_ethers()
if self.settings.manage_dns:
+ if self.verbose:
+ print "- rendering DNS files"
self.dns.regen_hosts()
self.dns.write_dns_files()
+
+ if self.verbose:
+ print "- generating PXE menu structure"
self.pxegen.make_pxe_menu()
self.pxegen.write_tftpd_rules(True)
# run post-triggers
- utils.run_triggers(None, "/var/lib/cobbler/triggers/sync/post/*")
+ if self.verbose:
+ print "- running post-sync triggers"
+ utils.run_triggers(self.api, None, "/var/lib/cobbler/triggers/sync/post/*")
return True
def clean_trees(self):
@@ -128,14 +161,14 @@ class BootSync:
path = os.path.join(self.settings.webdir,x)
if os.path.isfile(path):
if not x.endswith(".py"):
- utils.rmfile(path)
+ utils.rmfile(path,verbose=self.verbose)
if os.path.isdir(path):
- if not x in ["web", "webui", "localmirror","repo_mirror","ks_mirror","images","links","repo_profile","repo_system","svc","rendered"] :
+ if not x in ["aux", "web", "webui", "localmirror","repo_mirror","ks_mirror","images","links","repo_profile","repo_system","svc","rendered"] :
# delete directories that shouldn't exist
- utils.rmtree(path)
+ utils.rmtree(path,verbose=self.verbose)
if x in ["kickstarts","kickstarts_sys","images","systems","distros","profiles","repo_profile","repo_system","rendered"]:
# clean out directory contents
- utils.rmtree_contents(path)
+ utils.rmtree_contents(path,verbose=self.verbose)
pxelinux_dir = os.path.join(self.bootloc, "pxelinux.cfg")
images_dir = os.path.join(self.bootloc, "images")
yaboot_bin_dir = os.path.join(self.bootloc, "ppc")
@@ -143,21 +176,21 @@ class BootSync:
s390_dir = os.path.join(self.bootloc, "s390x")
rendered_dir = os.path.join(self.settings.webdir, "rendered")
if not os.path.exists(pxelinux_dir):
- utils.mkdir(pxelinux_dir)
+ utils.mkdir(pxelinux_dir,verbose=self.verbose)
if not os.path.exists(images_dir):
- utils.mkdir(images_dir)
+ utils.mkdir(images_dir,verbose=self.verbose)
if not os.path.exists(rendered_dir):
- utils.mkdir(rendered_dir)
+ utils.mkdir(rendered_dir,verbose=self.verbose)
if not os.path.exists(yaboot_bin_dir):
- utils.mkdir(yaboot_bin_dir)
+ utils.mkdir(yaboot_bin_dir,verbose=self.verbose)
if not os.path.exists(yaboot_cfg_dir):
- utils.mkdir(yaboot_cfg_dir)
- utils.rmtree_contents(os.path.join(self.bootloc, "pxelinux.cfg"))
- utils.rmtree_contents(os.path.join(self.bootloc, "images"))
- utils.rmtree_contents(os.path.join(self.bootloc, "s390x"))
- utils.rmtree_contents(os.path.join(self.bootloc, "ppc"))
- utils.rmtree_contents(os.path.join(self.bootloc, "etc"))
- utils.rmtree_contents(rendered_dir)
+ utils.mkdir(yaboot_cfg_dir,verbose=self.verbose)
+ utils.rmtree_contents(os.path.join(self.bootloc, "pxelinux.cfg"),verbose=self.verbose)
+ utils.rmtree_contents(os.path.join(self.bootloc, "images"),verbose=self.verbose)
+ utils.rmtree_contents(os.path.join(self.bootloc, "s390x"),verbose=self.verbose)
+ utils.rmtree_contents(os.path.join(self.bootloc, "ppc"),verbose=self.verbose)
+ utils.rmtree_contents(os.path.join(self.bootloc, "etc"),verbose=self.verbose)
+ utils.rmtree_contents(rendered_dir,verbose=self.verbose)