diff options
author | David Lutterkort <dlutter@redhat.com> | 2006-10-27 17:42:46 -0700 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2006-10-27 17:42:46 -0700 |
commit | 68c6ec5f26e67d578e4629c817dddd187ff40510 (patch) | |
tree | 1f34d8d5a3da9c890ddcf5faacf3a065d6a4b61a /cobbler/action_sync.py | |
parent | 0efafa0d4b88b8975e23ad5315f42a11e578507e (diff) | |
download | third_party-cobbler-68c6ec5f26e67d578e4629c817dddd187ff40510.tar.gz third_party-cobbler-68c6ec5f26e67d578e4629c817dddd187ff40510.tar.xz third_party-cobbler-68c6ec5f26e67d578e4629c817dddd187ff40510.zip |
Add support for default PXE boots via /etc/cobbler/default.pxe; wrap
service reloads/restarts so they don't happen in dryrun mode; allow '-n' as
an alias for '--dryrun' when syncing.
Diffstat (limited to 'cobbler/action_sync.py')
-rw-r--r-- | cobbler/action_sync.py | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py index fb7697a..60919e7 100644 --- a/cobbler/action_sync.py +++ b/cobbler/action_sync.py @@ -67,7 +67,7 @@ class BootSync: if self.settings.manage_dhcp: self.write_dhcp_file() try: - retcode = sub_process.call("/sbin/service dhcpd restart", shell=True) + retcode = self.service("dhcpd", "restart") if retcode != 0: print >>sys.stderr, "Warning: dhcpd restart failed" except OSError, e: @@ -172,7 +172,7 @@ class BootSync: config_data = config_data.replace("/cobbler_webdir",self.settings.webdir) self.tee(f, config_data) self.close_file(f) - sub_process.call("/sbin/service httpd reload", shell=True) + self.service("httpd", "reload") def clean_trees(self): """ @@ -369,6 +369,13 @@ class BootSync: # yaml file: http only self.write_profile_file(filename,p) + # Copy default PXE file if it exists; if there's none, ignore + # FIXME: Log something inobtrusive ifthe default file is missing + src = "/etc/cobbler/default.pxe" + if os.path.exists(src): + dst = os.path.join(self.settings.tftpboot, "pxelinux.cfg", "default") + self.copyfile(src, dst) + for system in self.systems: profile = self.profiles.find(system.profile) if profile is None: @@ -627,6 +634,18 @@ class BootSync: if not oe.errno == 17: # already exists (no constant for 17?) raise cexceptions.CobblerException("no_create", path) + def service(self, name, action): + """ + Call /sbin/service NAME ACTION, unless its a dryrun + """ + + cmd = "/sbin/service %s %s" % (name, action) + if self.dryrun: + print cmd + return 0 + else: + return sub_process.call(cmd, shell=True) + def blend_options(self, is_for_kernel, list_of_opts): """ Given a list of options, take the values used by the |