Bläddra i källkod

Se agregan reload para kea.

Maxi Schvindt 7 år sedan
förälder
incheckning
cde8b8d482

+ 4 - 0
src/KeaBundle/Controller/ConfigController.php

@@ -45,6 +45,10 @@ class ConfigController extends Controller
 
             if($action == 'get') {
                 $config = $keaConfigService->getRemoteConfig($dhcp);
+            } elseif($action == 'reload_config') {
+                $config = $keaConfigService->reloadConfig($dhcp);
+            } elseif($action == 'reload_hook') {
+                $config = $keaConfigService->reloadHook($dhcp);
             } elseif($action == 'generate') {
                 $config = $keaConfigService->getConfig($dhcpId);
             } elseif($action == 'set') {

+ 7 - 2
src/KeaBundle/Controller/REST/ConfigRESTController.php

@@ -56,9 +56,10 @@ class ConfigRESTController extends RESTController
                                 'action' => array(
                                     'get' => $translator->trans("api.get_config_help", array(), "KeaBundle"),
                                     'generate' => $translator->trans("api.generate_config_help", array(), "KeaBundle"),
-                                    'set' => $translator->trans("api.set_config_help", array(), "KeaBundle")
+                                    'set' => $translator->trans("api.set_config_help", array(), "KeaBundle"),
+                                    'reload_config' => $translator->trans("api.reload_config_help", array(), "KeaBundle"),
+                                    'reload_hook' => $translator->trans("api.reload_hooks_help", array(), "KeaBundle")
                                     )));
-                                
         }
 
         if(is_null($dhcp)) {
@@ -67,6 +68,10 @@ class ConfigRESTController extends RESTController
         
         if($action == "get") {
             $config = $keaConfigService->getRemoteConfig($dhcp);
+        } elseif($action == "reload_config") {
+            $config = $keaConfigService->reloadConfig($dhcp);
+        } elseif($action == "reload_hook") {
+            $config = $keaConfigService->reloadHook($dhcp);
         } elseif($action == "generate") {
             $config = $keaConfigService->getConfig($id);
         } elseif($action == "set") {

+ 7 - 1
src/KeaBundle/Resources/translations/KeaBundle.es.yml

@@ -46,10 +46,16 @@ set_config_help: Envía la configuración visible en el editor al KEA del DHCP s
 save_config: Guardar configuración
 save_config_help: Guarda la configuración visible en el sistema.
 kea_get_config: Configurar KEA
+reload_config: Reload Configuración KEA
+reload_config_help: El KEA levanta la configuración por defecto que posee, sirve en casos en que la configuración cargada ha bloqueado el KEA.
+reload_hooks: Reload Hooks KEA
+reload_hooks_help: Carga nuevamente las librerías de Hooks.
 api:
     dhcp_not_found: Elemento DHCP no encontrado
     config_action_not_found: "Acción incorrecta, opciones: get|generate|set|help"
     dhcp_id: ID del DHCP sobre el cual se desea obtener o cargar la configuración de KEA.
     get_config_help: Obtiene la configuración actual del KEA perteneciente al DHCP.
     generate_config_help: Genera la configuración para el KEA del DHCP partiendo de los datos cargados en el sistema de Flowdat(host, dhcp, subred y pool).
-    set_config_help: Genera configuración KEA y la envía hacia el KEA del DHCP seleccionado.
+    set_config_help: Genera configuración KEA y la envía hacia el KEA del DHCP seleccionado.
+    reload_config_help: Genera configuración KEA y la envía hacia el KEA del DHCP seleccionado.
+    reload_hooks_help: Carga nuevamente las librerías de Hooks.

+ 11 - 0
src/KeaBundle/Resources/views/Config/get.html.twig

@@ -80,6 +80,10 @@
                                         <code><i class="fa fa-upload" aria-hidden="true"></i> {{ 'set_config'|trans({}, 'KeaBundle') }} :</code> {{ 'set_config_help'|trans({}, 'KeaBundle') }}
                                         <br />
                                         <code><i class="fa fa-save" aria-hidden="true"></i> {{ 'save_config'|trans({}, 'KeaBundle') }} :</code> {{ 'save_config_help'|trans({}, 'KeaBundle') }}
+                                        <br />
+                                        <code><i class="fa fa-cog" aria-hidden="true"></i> {{ 'reload_config'|trans({}, 'KeaBundle') }} :</code> {{ 'reload_config_help'|trans({}, 'KeaBundle') }}
+                                        <br />
+                                        <code><i class="fa fa-cog" aria-hidden="true"></i> {{ 'reload_hooks'|trans({}, 'KeaBundle') }} :</code> {{ 'reload_hooks_help'|trans({}, 'KeaBundle') }}
                                     </div>
                                 </div>
                                 <div id="result_load" style="display:none">
@@ -108,6 +112,13 @@
     <button class="btn btn-success" type="submit" id="btn_save_config" onclick="bclick('btn_save_config','save');">
         <i class="fa fa-save" aria-hidden="true"></i>&nbsp;{{ 'save_config'|trans({}, 'KeaBundle') }}
     </button>
+    &nbsp;&nbsp;
+    <button class="btn btn-info" type="submit" id="btn_reload_config" onclick="bclick('btn_reload_config','reload_config');">
+        <i class="fa fa-cog" aria-hidden="true"></i>&nbsp;{{ 'reload_config'|trans({}, 'KeaBundle') }}
+    </button>
+    <button class="btn btn-info" type="submit" id="btn_reload_hooks" onclick="bclick('btn_reload_hook','reload_hook');">
+        <i class="fa fa-cog" aria-hidden="true"></i>&nbsp;{{ 'reload_hooks'|trans({}, 'KeaBundle') }}
+    </button>
 </div>
 
 

+ 40 - 0
src/KeaBundle/Services/KeaConfigService.php

@@ -88,6 +88,46 @@ class KeaConfigService
 
     }
 
+    /**
+     * @param DHCP $dhcp
+     *
+     * @return string
+     */
+    public function reloadConfig(DHCP $dhcp, $service = null)
+    {
+        $host = $dhcp->getHost();
+        if(is_null($host)) $host = "kea:8080";
+        
+        $_params = array("command" => "config-reload", "service" => array("dhcp4"));
+        
+        $params = json_encode($_params);
+        
+        $config = $this->curlPost($host, $params);
+
+        return $config;
+
+    }
+
+    /**
+     * @param DHCP $dhcp
+     *
+     * @return string
+     */
+    public function reloadHook(DHCP $dhcp, $service = null)
+    {
+        $host = $dhcp->getHost();
+        if(is_null($host)) $host = "kea:8080";
+        
+        $_params = array("command" => "libreload", "service" => array("dhcp4"));
+        
+        $params = json_encode($_params);
+        
+        $config = $this->curlPost($host, $params);
+
+        return $config;
+
+    }
+
     /**
      * @param DHCP $dhcp
      * @param json params