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

Reply via email to