Browse Source

[3465] Added support for D2 startup and reconfigure in keactrl.

Marcin Siodelski 11 years ago
parent
commit
8b7ce97ef3

+ 4 - 1
src/bin/keactrl/keactrl.conf.in

@@ -12,7 +12,7 @@ kea_config_file=@sysconfdir@/@PACKAGE@/kea.conf
 exec_prefix=@exec_prefix@
 dhcp4_srv=@libexecdir@/@PACKAGE@/b10-dhcp4
 dhcp6_srv=@libexecdir@/@PACKAGE@/b10-dhcp6
-dhcp_ddns=@libexecdir@/@PACKAGE@/b10-dhcp-ddns
+dhcp_ddns_srv=@libexecdir@/@PACKAGE@/b10-dhcp-ddns
 
 # Start DHCPv4 server?
 dhcp4=yes
@@ -20,5 +20,8 @@ dhcp4=yes
 # Start DHCPv6 server?
 dhcp6=yes
 
+# Start DHCP DDNS server?
+dhcp_ddns=yes
+
 # Be verbose?
 kea_verbose=no

+ 11 - 0
src/bin/keactrl/keactrl.in

@@ -276,6 +276,7 @@ fi
 # respectively.
 dhcp4=$( printf "%s" ${dhcp4} | tr [:upper:] [:lower:] )
 dhcp6=$( printf "%s" ${dhcp6} | tr [:upper:] [:lower:] )
+dhcp_ddns=$( printf "%s" ${dhcp_ddns} | tr [:upper:] [:lower:] )
 
 case ${command} in
     # Start the servers.
@@ -290,6 +291,7 @@ case ${command} in
         # and if they are enabled in the keactrl configuration file.
         run_conditional "dhcp4" "start_server ${dhcp4_srv} \"${args}\"" 1
         run_conditional "dhcp6" "start_server ${dhcp6_srv} \"${args}\"" 1
+        run_conditional "dhcp_ddns" "start_server ${dhcp_ddns_srv} \"${args}\"" 1
 
         exit 0 ;;
 
@@ -298,6 +300,7 @@ case ${command} in
         # Stop all servers or servers specified from the command line.
         run_conditional "dhcp4" "send_signal 15 $(basename ${dhcp4_srv})" 0
         run_conditional "dhcp6" "send_signal 15 $(basename ${dhcp6_srv})" 0
+        run_conditional "dhcp_ddns" "send_signal 15 $(basename ${dhcp_ddns_srv})" 0
 
         exit 0 ;;
 
@@ -306,6 +309,7 @@ case ${command} in
         # Reconfigure all servers or servers specified from the command line.
         run_conditional "dhcp4" "send_signal 1 $(basename ${dhcp4_srv})" 0
         run_conditional "dhcp6" "send_signal 1 $(basename ${dhcp6_srv})" 0
+        run_conditional "dhcp_ddns" "send_signal 1 $(basename ${dhcp_ddns_srv})" 0
 
         exit 0 ;;
 
@@ -323,6 +327,13 @@ case ${command} in
             kea6_status="active"
         fi
         printf "DHCPv6 server: %s\n" ${kea6_status}
+
+        d2_status="inactive"
+        check_running $(basename ${dhcp_ddns_srv})
+        if [ ${_running} -eq 1 ]; then
+            d2_status="active"
+        fi
+        printf "DHCP DDNS: %s\n" ${d2_status}
         printf "Kea configuration file: %s\n" ${kea_config_file}
         printf "keactrl configuration file: %s\n" ${keactrl_conf}
 

+ 6 - 6
src/bin/keactrl/tests/keactrl_tests.sh.in

@@ -80,7 +80,7 @@ config="{
 # Fixed part of the keactrl configuration file.
 keactrl_fixed_config="dhcp4_srv=${KEACTRL_BUILD_DIR}/src/bin/dhcp4/b10-dhcp4\n\
 dhcp6_srv=${KEACTRL_BUILD_DIR}/src/bin/dhcp6/b10-dhcp6\n\
-dhcp_ddns=${KEACTRL_BUILD_DIR}/src/bin/d2/b10-dhcp-ddns\n"
+dhcp_ddns_srv=${KEACTRL_BUILD_DIR}/src/bin/d2/b10-dhcp-ddns\n"
 
 # This test checks that DHCPv4, DHCPv6 and D2 server can be started and
 # shut down.
@@ -368,7 +368,7 @@ Expected wait_for_message return %d, returned %d."
         "Expected keactrl status command return %s"
     assert_string_contains "DHCPv6 server: inactive" "${output}" \
         "Expected keactrl status command return %s"
-    assert_string_contains "DHCP DDNS server: inactive" "${output}" \
+    assert_string_contains "DHCP DDNS: inactive" "${output}" \
         "Expected keactrl status command return %s"
 
     # Use keactrl stop to shutdown the servers.
@@ -457,7 +457,7 @@ Expected wait_for_message return %d, returned %d."
         "Expected keactrl status command return %s"
     assert_string_contains "DHCPv6 server: active" "${output}" \
         "Expected keactrl status command return %s"
-    assert_string_contains "DHCP DDNS server: inactive" "${output}" \
+    assert_string_contains "DHCP DDNS: inactive" "${output}" \
         "Expected keactrl status command return %s"
 
 
@@ -654,7 +654,7 @@ late_start_v6_server_test() {
     # Create configuration file for keactrl. This configuration enables
     # DHCPv4 server but disables DHCPv6 server.
     keactrl_config="kea_config_file=${CFG_FILE}\ndhcp4=yes\ndhcp6=no\n\
-dhcp_ddns=yes\nkea_verbose=yes\n${keactrl_fixed_config}"
+dhcp_ddns=no\nkea_verbose=yes\n${keactrl_fixed_config}"
 
     test_start "keactrl.late_start_v6_server_test"
 
@@ -815,7 +815,7 @@ stop_selected_server_test() {
     # Create configuration file for keactrl. This configuration enables
     # all servers.
     keactrl_config="kea_config_file=${CFG_FILE}\ndhcp4=yes\ndhcp6=yes\n\
-dhcp_ddns=no\nkea_verbose=no\n${keactrl_fixed_config}"
+dhcp_ddns=yes\nkea_verbose=no\n${keactrl_fixed_config}"
 
     test_start "keactrl.stop_selected_server_test"
 
@@ -920,7 +920,7 @@ Expected wait_for_message return %d, returned %d."
         "Expected %d ${kea6_name} processes running, found %d processes running"
 
     # Make sure D2 server is still running
-    get_pids ${kea6_name}
+    get_pids ${d2_name}
     assert_eq 1 ${_GET_PIDS_NUM} \
         "Expected %d ${d2_name} process running, found %d processes running"