tero@632: DHCP_SBIN=/usr/sbin/dhcpd tero@632: DHCP_CONF=/etc/dhcp/dhcpd.conf tero@632: DHCP_SERVICE=isc-dhcp-server tero@628: terom@662: # absolute path! terom@662: DHCP_INCLUDE="$SRV/var/dhcp" terom@662: tero@628: ## Generate DHCP hosts config from hosts hosts using pvl.hosts-dhcp tero@628: # tero@628: # update_hosts_dhcpe $out $src tero@628: function update_hosts_dhcp { tero@628: local out="$1" tero@628: local src="$2" terom@664: local srcs=($(list_tree $src)) tero@628: local msg="$out: Generating DHCP hosts: $src" tero@628: terom@664: if apply_check "$out" "${srcs[@]}"; then tero@628: log_skip "$msg" tero@628: else tero@628: log_apply "$msg" tero@628: tero@628: apply_cmd "$out" $OPT/bin/pvl.hosts-dhcp \ tero@628: --hosts-include="$HOSTS_INCLUDE" \ tero@628: "$src" tero@628: fi tero@628: } tero@628: tero@628: ## Generate dhcp confs from source using pvl.dhcp-conf: tero@628: function update_dhcp_conf { tero@628: local out="$1" tero@628: local src="$2" tero@628: local msg="$out: Generating DHCP conf: $src" tero@628: tero@628: if apply_check "$out" "$src"; then tero@628: log_skip "$msg" tero@628: else tero@628: log_apply "$msg" tero@628: tero@628: apply_cmd "$out" $OPT/bin/pvl.dhcp-conf \ terom@662: --include-path=$DHCP_INCLUDE \ tero@628: "$src" tero@628: fi tero@628: } tero@628: tero@628: ## Test DHCP configuration for validity using dhcpd -t: tero@628: # tero@701: # check_dhcp tero@628: # tero@701: # Uses the global $DHCPD_CONF, tero@628: function test_dhcp { tero@632: if [ ! -e "$DHCP_SBIN" ]; then tero@628: log_warn "check_dhcp: dhcpd not installed, skipping: $conf" tero@628: return 0 tero@628: fi tero@628: tero@701: log_check "Checking DHCP: $DHCP_CONF" tero@628: tero@628: test_cmd "$conf" \ tero@701: "$DHCP_SBIN" -cf "$DHCP_CONF" -t tero@628: } tero@628: tero@628: ## Reload dhcp hosts tero@628: # tero@628: # reload_dhcp tero@628: # tero@628: # noop's if we haven't reloaded zones tero@628: function reload_dhcp { tero@629: if [ "$UPDATE_RELOAD" = 1 ]; then tero@628: log_force "Reload DHCP" tero@628: tero@629: elif [ "$UPDATE_RELOAD" = 0 ]; then tero@628: log_noop "Skip reload DHCP" tero@628: tero@628: return tero@628: tero@632: elif [ ! -e "$DHCP_SBIN" ]; then tero@628: warn "Skip missing DHCP" tero@628: tero@628: return tero@628: tero@632: elif ! service_status $DHCP_SERVICE; then tero@632: log_skip "dhcpd not running; did not restart" tero@628: tero@628: return tero@628: tero@628: else tero@628: log_apply "Reload DHCP" tero@628: fi tero@628: tero@632: service_restart $DHCP_SERVICE tero@628: }