Univention Bugzilla – Attachment 10129 Details for
Bug 49837
Improve UMC policy vs. DHCP inheritance usability
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Testcase
49837-dhcp-tests.sh (text/plain), 3.61 KB, created by
Philipp Hahn
on 2019-07-22 17:33:19 CEST
(
hide
)
Description:
Testcase
Filename:
MIME Type:
Creator:
Philipp Hahn
Created:
2019-07-22 17:33:19 CEST
Size:
3.61 KB
patch
obsolete
>#!/bin/bash ># ># <https://forge.univention.org/bugzilla/show_bug.cgi?id=49837> ># <https://hutten.knut.univention.de/mediawiki/index.php/Philipp_memo/DHCP> ># ># shellcheck disable=SC2034 > >#set -e -u # -o pipefail >export LANG=C LC_ALL=C > >main () { > setup_ucs > setup_interface 1 > main1="$main" guest1="$guest" > setup_interface 2 > main2="$main" guest2="$guest" > setup_dhcp 1 > subnet1="$subnet" gw1="$gw" host1="$host" > setup_dhcp 2 > subnet2="$subnet" gw2="$gw" host2="$host" > wait_dhcp_restart > test_guest 1 > test_guest 2 > # bash -i > teardown_dhcp 1 > teardown_dhcp 2 > teardown_interface 1 > teardown_interface 2 >} > > >setup_ucs () { > apt-get -qq install univention-dhcp ethtool > > if [ -z "${tmp:-}" ] > then > tmp=$(mktemp -d) > # shellcheck disable=SC2064 > trap "rm -rf '$tmp'" EXIT > lease="${tmp}/dhclient.lease" > pid="${tmp}/pid" > fi > > NET1='192.0.2' # .0/24 # "TEST-NET-1" > NET2='198.51.100' # .0/24 # "TEST-NET-2" >} > >setup_interface () { > [ -e "/sys/class/net/veth${1}-main" ] && return > ip link add name "veth${1}-main" type veth peer name "veth${1}-guest" > main=$(<"/sys/class/net/veth${1}-main/address") > [ -n "$main" ] > guest=$(<"/sys/class/net/veth${1}-guest/address") > [ -n "$guest" ] > local NET="NET${1}" > ip addr add "${!NET}.1/24" dev "veth${1}-main" > ip link set "veth${1}-main" up > > ethtool -K "veth${1}-main" tx off >/dev/null > ethtool -K "veth${1}-guest" tx off >/dev/null > > ip netns add "my-env${1}" > ip link set dev "veth${1}-guest" netns "my-env${1}" name eth0 > ip netns exec "my-env${1}" ip addr flush eth0 > ip netns exec "my-env${1}" ip link set eth0 up >} > >setup_dhcp () { > service=$(udm dhcp/service list|DN1) > [ -n "$service" ] || die service > > local NET="NET${1}" > udm policies/dhcp_routing create --ignore_exists --set name="gw${1}" --set routers="${!NET}.0" > gw=$(udm policies/dhcp_routing list --filter name="gw${1}"|DN1) > > udm dhcp/subnet create --ignore_exists --superordinate="$service" --set subnet="${!NET}.0" --set subnetmask="24" --policy-reference "$gw" > subnet=$(udm dhcp/subnet list --superordinate="$service" --filter subnet="${!NET}.0"|DN1) > [ -n "$subnet" ] || die subnet > > local guest="guest${1}" > udm dhcp/host create --superordinate="$service" --set hwaddress="ethernet ${!guest}" --set host="${!guest}" --set fixedaddress="${!NET}.50" > host=$(udm dhcp/host list --superordinate="$service" --filter host="${!guest}"|DN1) > [ -n "$host" ] || die host >} > >wait_dhcp_restart () { > local i oldpid > oldpid=$(</var/run/dhcpd.pid) > for ((i=20;i>0;i+=-1)) > do > sleep 1 > [ "$oldpid" -eq "$(</var/run/dhcpd.pid)" ] || break > printf '%d ' "$i" > done > echo "dhcpd.pid: $oldpid -> $(</var/run/dhcpd.pid)" >} > >test_guest () { > local NET="NET${1}" host="host${1}" > : >"$lease" 2>"$pid" > ip netns exec "my-env${1}" dhclient -1 -pf "$pid" -sf /bin/true -lf "$lease" -q -4 eth0 > grep --color -F -e " fixed-address ${!NET}.50" "$lease" > grep --color -F -e " option dhcp-server-identifier ${!NET}.1;" "$lease" > grep --color -F -e " option routers ${!NET}.0;" "$lease" > ip netns exec "my-env${1}" dhclient -1 -pf "$pid" -sf /bin/true -lf "$lease" -q -r -4 eth0 > udm dhcp/host list --policies 0 --position "${!host}" > echo >} > > >teardown_dhcp () { > local subnet="subnet${1}" > udm dhcp/subnet remove --superordinate "$service" --dn "${!subnet}" > local host="host${1}" > udm dhcp/host remove --superordinate "$service" --dn "${!host}" > local gw="gw${1}" > udm policies/dhcp_routing remove --dn "${!gw}" >} > > >teardown_interface () { > ip link del dev "veth${1}-main" > ip netns del "my-env${1}" >} > > >die () { > echo "${0##*/}: $*" >&2 > exit 1 >} >DN1 () { > sed -ne 's/^DN: //p;T;q' >} >udm () { > local module="$1" action="$2" > shift 2 > /usr/sbin/udm "$module" "$action" "$@" >} > >main "$@"
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 49837
: 10129