We are also using cobbler in a docker container, and we use supervisord for process management in CentOS 6.6. What we did is, we changed the Sys V init script of dhcpd service to use supervisorctl. *service dhcpd start *is an standard command and since your container is always customised to your specific requirements, you can always modify the startup scripts.
On Mon, Apr 6, 2015 at 11:47 PM, Nishanth Aravamudan < n...@linux.vnet.ibm.com> wrote: > On 06.04.2015 [08:58:35 +0200], J?rgen Maas wrote: > > Hi Nish, > > > > I agree and i'd be happy to take any patches to clean stuff up. > > Not yet tested, but this should work... > > diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py > index 7a41ee2..8734151 100644 > --- a/cobbler/action_sync.py > +++ b/cobbler/action_sync.py > @@ -212,27 +212,7 @@ class CobblerSync: > > if self.settings.manage_dhcp: > self.write_dhcp() > - if which_dhcp_module == "manage_isc": > - service_name = utils.dhcp_service_name(self.api) > - if restart_dhcp != "0": > - rc = utils.subprocess_call(self.logger, "dhcpd -t > -q", shell=True) > - if rc != 0: > - error_msg = "dhcpd -t failed" > - self.logger.error(error_msg) > - raise CX(error_msg) > - service_restart = "service %s restart" % service_name > - rc = utils.subprocess_call(self.logger, > service_restart, shell=True) > - if rc != 0: > - error_msg = "%s failed" % service_name > - self.logger.error(error_msg) > - raise CX(error_msg) > - elif which_dhcp_module == "manage_dnsmasq": > - if restart_dhcp != "0": > - rc = utils.subprocess_call(self.logger, "service > dnsmasq restart") > - if rc != 0: > - error_msg = "service dnsmasq restart failed" > - self.logger.error(error_msg) > - raise CX(error_msg) > + self.dhcp.sync_dhcp() > > def clean_link_cache(self): > for dirtree in [os.path.join(self.bootloc, 'images'), > self.settings.webdir]: > diff --git a/cobbler/modules/manage_dnsmasq.py > b/cobbler/modules/manage_dnsmasq.py > index a87365c..7ec24e6 100644 > --- a/cobbler/modules/manage_dnsmasq.py > +++ b/cobbler/modules/manage_dnsmasq.py > @@ -191,6 +191,14 @@ class DnsmasqManager: > # already taken care of by the regen_hosts() > pass > > + def sync_dhcp(self): > + restart_dhcp = str(self.settings.restart_dhcp).lower() > + if restart_dhcp != "0": > + rc = utils.subprocess_call(self.logger, "service dnsmasq > restart") > + if rc != 0: > + error_msg = "service dnsmasq restart failed" > + self.logger.error(error_msg) > + raise CX(error_msg) > > def get_manager(collection_mgr, logger): > return DnsmasqManager(collection_mgr, logger) > diff --git a/cobbler/modules/manage_isc.py b/cobbler/modules/manage_isc.py > index 6dabd32..d0a8102 100644 > --- a/cobbler/modules/manage_isc.py > +++ b/cobbler/modules/manage_isc.py > @@ -188,6 +188,21 @@ class IscManager: > def regen_ethers(self): > pass # ISC/BIND do not use this > > + def sync_dhcp(self): > + restart_dhcp = str(self.settings.restart_dhcp).lower() > + service_name = utils.dhcp_service_name(self.api) > + if restart_dhcp != "0": > + rc = utils.subprocess_call(self.logger, "dhcpd -t -q", > shell=True) > + if rc != 0: > + error_msg = "dhcpd -t failed" > + self.logger.error(error_msg) > + raise CX(error_msg) > + service_restart = "service %s restart" % service_name > + rc = utils.subprocess_call(self.logger, service_restart, > shell=True) > + if rc != 0: > + error_msg = "%s failed" % service_name > + self.logger.error(error_msg) > + raise CX(error_msg) > > def get_manager(collection_mgr, logger): > return IscManager(collection_mgr, logger) > > _______________________________________________ > cobbler-devel mailing list > cobbler-devel@lists.fedorahosted.org > https://lists.fedorahosted.org/mailman/listinfo/cobbler-devel >
_______________________________________________ cobbler-devel mailing list cobbler-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/cobbler-devel