Removing access docker folder, added earlier for
trial of manual tests for cord vtn.
Change-Id: I99f676620ea57ed5616cea7be4f4ce0868090a5d
diff --git a/src/test/cordvtn/access-docker/Dockerfile b/src/test/cordvtn/access-docker/Dockerfile
deleted file mode 100644
index 427807b..0000000
--- a/src/test/cordvtn/access-docker/Dockerfile
+++ /dev/null
@@ -1,10 +0,0 @@
-FROM ubuntu:14.04
-MAINTAINER chgaonke@partner.ciena.com
-
-RUN apt-get update && \
- apt-get install -qy vlan python python-pexpect strace \
- python python-pip python-setuptools python-scapy tcpdump doxygen doxypy wget \
- openvswitch-common openvswitch-switch \
- python-twisted python-sqlite sqlite3 python-pexpect telnet arping isc-dhcp-server \
- python-paramiko python-maas-client
-
diff --git a/src/test/cordvtn/access-docker/access-tag.sh b/src/test/cordvtn/access-docker/access-tag.sh
deleted file mode 100755
index 76a1f7a..0000000
--- a/src/test/cordvtn/access-docker/access-tag.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-sudo docker run --privileged --cap-add=ALL -d -v /dev:/dev -v /lib/modules:/lib/modules --name access -t vlan /bin/bash
-sudo ./pipework fabric -i eth1 access 10.168.0.254/24
-sudo docker exec -d access modprobe 8021q
-sudo docker exec -d access vconfig add eth1 222
-sudo docker exec -d access ip link set eth1.222 up
-sudo docker exec -d access ip addr add 10.169.0.254/24 dev eth1.222
diff --git a/src/test/cordvtn/access-docker/pipework b/src/test/cordvtn/access-docker/pipework
deleted file mode 100755
index fffc097..0000000
--- a/src/test/cordvtn/access-docker/pipework
+++ /dev/null
@@ -1,422 +0,0 @@
-#!/bin/sh
-# This code should (try to) follow Google's Shell Style Guide
-# (https://google-styleguide.googlecode.com/svn/trunk/shell.xml)
-set -e
-
-case "$1" in
- --wait)
- WAIT=1
- ;;
-esac
-
-IFNAME=$1
-
-# default value set further down if not set here
-CONTAINER_IFNAME=
-if [ "$2" = "-i" ]; then
- CONTAINER_IFNAME=$3
- shift 2
-fi
-
-if [ "$2" = "-l" ]; then
- LOCAL_IFNAME=$3
- shift 2
-fi
-
-GUESTNAME=$2
-IPADDR=$3
-MACADDR=$4
-
-case "$MACADDR" in
- *@*)
- VLAN="${MACADDR#*@}"
- VLAN="${VLAN%%@*}"
- MACADDR="${MACADDR%%@*}"
- ;;
- *)
- VLAN=
- ;;
-esac
-
-# did they ask to generate a custom MACADDR?
-# generate the unique string
-case "$MACADDR" in
- U:*)
- macunique="${MACADDR#*:}"
- # now generate a 48-bit hash string from $macunique
- MACADDR=$(echo $macunique|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
- ;;
-esac
-
-
-[ "$IPADDR" ] || [ "$WAIT" ] || {
- echo "Syntax:"
- echo "pipework <hostinterface> [-i containerinterface] [-l localinterfacename] <guest> <ipaddr>/<subnet>[@default_gateway] [macaddr][@vlan]"
- echo "pipework <hostinterface> [-i containerinterface] [-l localinterfacename] <guest> dhcp [macaddr][@vlan]"
- echo "pipework route <guest> <route_command>"
- echo "pipework --wait [-i containerinterface]"
- exit 1
-}
-
-# Succeed if the given utility is installed. Fail otherwise.
-# For explanations about `which` vs `type` vs `command`, see:
-# http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script/677212#677212
-# (Thanks to @chenhanxiao for pointing this out!)
-installed () {
- command -v "$1" >/dev/null 2>&1
-}
-
-# Google Styleguide says error messages should go to standard error.
-warn () {
- echo "$@" >&2
-}
-die () {
- status="$1"
- shift
- warn "$@"
- exit "$status"
-}
-
-# First step: determine type of first argument (bridge, physical interface...),
-# Unless "--wait" is set (then skip the whole section)
-if [ -z "$WAIT" ]; then
- if [ -d "/sys/class/net/$IFNAME" ]
- then
- if [ -d "/sys/class/net/$IFNAME/bridge" ]; then
- IFTYPE=bridge
- BRTYPE=linux
- elif installed ovs-vsctl && ovs-vsctl list-br|grep -q "^${IFNAME}$"; then
- IFTYPE=bridge
- BRTYPE=openvswitch
- elif [ "$(cat "/sys/class/net/$IFNAME/type")" -eq 32 ]; then # InfiniBand IPoIB interface type 32
- IFTYPE=ipoib
- # The IPoIB kernel module is fussy, set device name to ib0 if not overridden
- CONTAINER_IFNAME=${CONTAINER_IFNAME:-ib0}
- PKEY=$VLAN
- else IFTYPE=phys
- fi
- else
- case "$IFNAME" in
- br*)
- IFTYPE=bridge
- BRTYPE=linux
- ;;
- ovs*)
- if ! installed ovs-vsctl; then
- die 1 "Need OVS installed on the system to create an ovs bridge"
- fi
- IFTYPE=bridge
- BRTYPE=openvswitch
- ;;
- route*)
- IFTYPE=route
- ;;
- dummy*)
- IFTYPE=dummy
- ;;
- *) die 1 "I do not know how to setup interface $IFNAME." ;;
- esac
- fi
-fi
-
-# Set the default container interface name to eth1 if not already set
-CONTAINER_IFNAME=${CONTAINER_IFNAME:-eth1}
-
-[ "$WAIT" ] && {
- while true; do
- # This first method works even without `ip` or `ifconfig` installed,
- # but doesn't work on older kernels (e.g. CentOS 6.X). See #128.
- grep -q '^1$' "/sys/class/net/$CONTAINER_IFNAME/carrier" && break
- # This method hopefully works on those older kernels.
- ip link ls dev "$CONTAINER_IFNAME" && break
- sleep 1
- done > /dev/null 2>&1
- exit 0
-}
-
-[ "$IFTYPE" = bridge ] && [ "$BRTYPE" = linux ] && [ "$VLAN" ] && {
- die 1 "VLAN configuration currently unsupported for Linux bridge."
-}
-
-[ "$IFTYPE" = ipoib ] && [ "$MACADDR" ] && {
- die 1 "MACADDR configuration unsupported for IPoIB interfaces."
-}
-
-# Second step: find the guest (for now, we only support LXC containers)
-while read _ mnt fstype options _; do
- [ "$fstype" != "cgroup" ] && continue
- echo "$options" | grep -qw devices || continue
- CGROUPMNT=$mnt
-done < /proc/mounts
-
-[ "$CGROUPMNT" ] || {
- die 1 "Could not locate cgroup mount point."
-}
-
-# Try to find a cgroup matching exactly the provided name.
-N=$(find "$CGROUPMNT" -name "$GUESTNAME" | wc -l)
-case "$N" in
- 0)
- # If we didn't find anything, try to lookup the container with Docker.
- if installed docker; then
- RETRIES=3
- while [ "$RETRIES" -gt 0 ]; do
- DOCKERPID=$(docker inspect --format='{{ .State.Pid }}' "$GUESTNAME")
- [ "$DOCKERPID" != 0 ] && break
- sleep 1
- RETRIES=$((RETRIES - 1))
- done
-
- [ "$DOCKERPID" = 0 ] && {
- die 1 "Docker inspect returned invalid PID 0"
- }
-
- [ "$DOCKERPID" = "<no value>" ] && {
- die 1 "Container $GUESTNAME not found, and unknown to Docker."
- }
- else
- die 1 "Container $GUESTNAME not found, and Docker not installed."
- fi
- ;;
- 1) true ;;
- *) die 1 "Found more than one container matching $GUESTNAME." ;;
-esac
-
-# only check IPADDR if we are not in a route mode
-[ "$IFTYPE" != route ] && {
- case "$IPADDR" in
- # Let's check first if the user asked for DHCP allocation.
- dhcp|dhcp:*)
- # Use Docker-specific strategy to run the DHCP client
- # from the busybox image, in the network namespace of
- # the container.
- if ! [ "$DOCKERPID" ]; then
- warn "You asked for a Docker-specific DHCP method."
- warn "However, $GUESTNAME doesn't seem to be a Docker container."
- warn "Try to replace 'dhcp' with another option?"
- die 1 "Aborting."
- fi
- DHCP_CLIENT=${IPADDR%%:*}
- ;;
- udhcpc|udhcpc:*|udhcpc-f|udhcpc-f:*|dhcpcd|dhcpcd:*|dhclient|dhclient:*|dhclient-f|dhclient-f:*)
- DHCP_CLIENT=${IPADDR%%:*}
- # did they ask for the client to remain?
- DHCP_FOREGROUND=
- [ "${DHCP_CLIENT: -2}" = '-f' ] && {
- DHCP_FOREGROUND=true
- }
- DHCP_CLIENT=${DHCP_CLIENT%-f}
- if ! installed "$DHCP_CLIENT"; then
- die 1 "You asked for DHCP client $DHCP_CLIENT, but I can't find it."
- fi
- ;;
- # Alright, no DHCP? Then let's see if we have a subnet *and* gateway.
- */*@*)
- GATEWAY="${IPADDR#*@}" GATEWAY="${GATEWAY%%@*}"
- IPADDR="${IPADDR%%@*}"
- ;;
- # No gateway? We need at least a subnet, anyway!
- */*) : ;;
- # ... No? Then stop right here.
- *)
- warn "The IP address should include a netmask."
- die 1 "Maybe you meant $IPADDR/24 ?"
- ;;
- esac
-}
-
-# If a DHCP method was specified, extract the DHCP options.
-if [ "$DHCP_CLIENT" ]; then
- case "$IPADDR" in
- *:*) DHCP_OPTIONS="${IPADDR#*:}" ;;
- esac
-fi
-
-if [ "$DOCKERPID" ]; then
- NSPID=$DOCKERPID
-else
- NSPID=$(head -n 1 "$(find "$CGROUPMNT" -name "$GUESTNAME" | head -n 1)/tasks")
- [ "$NSPID" ] || {
- # it is an alternative way to get the pid
- NSPID=$(lxc-info -n "$GUESTNAME" | grep PID | grep -Eo '[0-9]+')
- [ "$NSPID" ] || {
- die 1 "Could not find a process inside container $GUESTNAME."
- }
- }
-fi
-
-# Check if an incompatible VLAN device already exists
-[ "$IFTYPE" = phys ] && [ "$VLAN" ] && [ -d "/sys/class/net/$IFNAME.VLAN" ] && {
- ip -d link show "$IFNAME.$VLAN" | grep -q "vlan.*id $VLAN" || {
- die 1 "$IFNAME.VLAN already exists but is not a VLAN device for tag $VLAN"
- }
-}
-
-[ ! -d /var/run/netns ] && mkdir -p /var/run/netns
-rm -f "/var/run/netns/$NSPID"
-ln -s "/proc/$NSPID/ns/net" "/var/run/netns/$NSPID"
-
-# Check if we need to create a bridge.
-[ "$IFTYPE" = bridge ] && [ ! -d "/sys/class/net/$IFNAME" ] && {
- [ "$BRTYPE" = linux ] && {
- (ip link add dev "$IFNAME" type bridge > /dev/null 2>&1) || (brctl addbr "$IFNAME")
- ip link set "$IFNAME" up
- }
- [ "$BRTYPE" = openvswitch ] && {
- ovs-vsctl add-br "$IFNAME"
- }
-}
-
-[ "$IFTYPE" != "route" ] && [ "$IFTYPE" != "dummy" ] && MTU=$(ip link show "$IFNAME" | awk '{print $5}')
-
-# If it's a bridge, we need to create a veth pair
-[ "$IFTYPE" = bridge ] && {
- if [ -z "$LOCAL_IFNAME" ]; then
- LOCAL_IFNAME="v${CONTAINER_IFNAME}pl${NSPID}"
- fi
- GUEST_IFNAME="v${CONTAINER_IFNAME}pg${NSPID}"
- # Does the link already exist?
- if ip link show "$LOCAL_IFNAME" >/dev/null 2>&1; then
- # link exists, is it in use?
- if ip link show "$LOCAL_IFNAME" up | grep -q "UP"; then
- echo "Link $LOCAL_IFNAME exists and is up"
- exit 1
- fi
- # delete the link so we can re-add it afterwards
- ip link del "$LOCAL_IFNAME"
- fi
- ip link add name "$LOCAL_IFNAME" mtu "$MTU" type veth peer name "$GUEST_IFNAME" mtu "$MTU"
- case "$BRTYPE" in
- linux)
- (ip link set "$LOCAL_IFNAME" master "$IFNAME" > /dev/null 2>&1) || (brctl addif "$IFNAME" "$LOCAL_IFNAME")
- ;;
- openvswitch)
- if ! ovs-vsctl list-ports "$IFNAME" | grep -q "^${LOCAL_IFNAME}$"; then
- ovs-vsctl add-port "$IFNAME" "$LOCAL_IFNAME" ${VLAN:+tag="$VLAN"}
- fi
- ;;
- esac
- ip link set "$LOCAL_IFNAME" up
-}
-
-# If it's a physical interface, create a macvlan subinterface
-[ "$IFTYPE" = phys ] && {
- [ "$VLAN" ] && {
- [ ! -d "/sys/class/net/${IFNAME}.${VLAN}" ] && {
- ip link add link "$IFNAME" name "$IFNAME.$VLAN" mtu "$MTU" type vlan id "$VLAN"
- }
- ip link set "$IFNAME" up
- IFNAME=$IFNAME.$VLAN
- }
- GUEST_IFNAME=ph$NSPID$CONTAINER_IFNAME
- ip link add link "$IFNAME" dev "$GUEST_IFNAME" mtu "$MTU" type macvlan mode bridge
- ip link set "$IFNAME" up
-}
-
-# If it's an IPoIB interface, create a virtual IPoIB interface (the IPoIB
-# equivalent of a macvlan device)
-#
-# Note: no macvlan subinterface nor Ethernet bridge can be created on top of an
-# IPoIB interface. InfiniBand is not Ethernet. IPoIB is an IP layer on top of
-# InfiniBand, without an intermediate Ethernet layer.
-[ "$IFTYPE" = ipoib ] && {
- GUEST_IFNAME="${IFNAME}.${NSPID}"
-
- # If a partition key is provided, use it
- [ "$PKEY" ] && {
- GUEST_IFNAME="${IFNAME}.${PKEY}.${NSPID}"
- PKEY="pkey 0x$PKEY"
- }
-
- ip link add link "$IFNAME" name "$GUEST_IFNAME" type ipoib $PKEY
- ip link set "$IFNAME" up
-}
-
-# If its a dummy interface, create a dummy interface.
-[ "$IFTYPE" = dummy ] && {
- GUEST_IFNAME=du$NSPID$CONTAINER_IFNAME
- ip link add dev "$GUEST_IFNAME" type dummy
-}
-
-# If the `route` command was specified ...
-if [ "$IFTYPE" = route ]; then
- # ... discard the first two arguments and pass the rest to the route command.
- shift 2
- ip netns exec "$NSPID" ip route "$@"
-else
- # Otherwise, run normally.
- ip link set "$GUEST_IFNAME" netns "$NSPID"
- ip netns exec "$NSPID" ip link set "$GUEST_IFNAME" name "$CONTAINER_IFNAME"
- [ "$MACADDR" ] && ip netns exec "$NSPID" ip link set dev "$CONTAINER_IFNAME" address "$MACADDR"
-
- # When using any of the DHCP methods, we start a DHCP client in the
- # network namespace of the container. With the 'dhcp' method, the
- # client used is taken from the Docker busybox image (therefore
- # requiring no specific client installed on the host). Other methods
- # use a locally installed client.
- case "$DHCP_CLIENT" in
- dhcp)
- docker run -d --net container:$GUESTNAME --cap-add NET_ADMIN \
- busybox udhcpc -i "$CONTAINER_IFNAME" -x "hostname:$GUESTNAME" \
- $DHCP_OPTIONS \
- >/dev/null
- ;;
- udhcpc)
- DHCP_Q="-q"
- [ "$DHCP_FOREGROUND" ] && {
- DHCP_OPTIONS="$DHCP_OPTIONS -f"
- }
- ip netns exec "$NSPID" "$DHCP_CLIENT" -qi "$CONTAINER_IFNAME" \
- -x "hostname:$GUESTNAME" \
- -p "/var/run/udhcpc.$GUESTNAME.pid" \
- $DHCP_OPTIONS
- [ ! "$DHCP_FOREGROUND" ] && {
- rm "/var/run/udhcpc.$GUESTNAME.pid"
- }
- ;;
- dhclient)
- ip netns exec "$NSPID" "$DHCP_CLIENT" "$CONTAINER_IFNAME" \
- -pf "/var/run/dhclient.$GUESTNAME.pid" \
- -lf "/etc/dhclient/dhclient.$GUESTNAME.leases" \
- $DHCP_OPTIONS
- # kill dhclient after get ip address to prevent device be used after container close
- [ ! "$DHCP_FOREGROUND" ] && {
- kill "$(cat "/var/run/dhclient.$GUESTNAME.pid")"
- rm "/var/run/dhclient.$GUESTNAME.pid"
- }
- ;;
- dhcpcd)
- ip netns exec "$NSPID" "$DHCP_CLIENT" -q "$CONTAINER_IFNAME" -h "$GUESTNAME"
- ;;
- "")
- if installed ipcalc; then
- eval $(ipcalc -b $IPADDR)
- ip netns exec "$NSPID" ip addr add "$IPADDR" brd "$BROADCAST" dev "$CONTAINER_IFNAME"
- else
- ip netns exec "$NSPID" ip addr add "$IPADDR" dev "$CONTAINER_IFNAME"
- fi
-
- [ "$GATEWAY" ] && {
- ip netns exec "$NSPID" ip route delete default >/dev/null 2>&1 && true
- }
- ip netns exec "$NSPID" ip link set "$CONTAINER_IFNAME" up
- [ "$GATEWAY" ] && {
- ip netns exec "$NSPID" ip route get "$GATEWAY" >/dev/null 2>&1 || \
- ip netns exec "$NSPID" ip route add "$GATEWAY/32" dev "$CONTAINER_IFNAME"
- ip netns exec "$NSPID" ip route replace default via "$GATEWAY"
- }
- ;;
- esac
-
- # Give our ARP neighbors a nudge about the new interface
- if installed arping; then
- IPADDR=$(echo "$IPADDR" | cut -d/ -f1)
- ip netns exec "$NSPID" arping -c 1 -A -I "$CONTAINER_IFNAME" "$IPADDR" > /dev/null 2>&1 || true
- else
- echo "Warning: arping not found; interface may not be immediately reachable"
- fi
-fi
-# Remove NSPID to avoid `ip netns` catch it.
-rm -f "/var/run/netns/$NSPID"
-
-# vim: set tabstop=2 shiftwidth=2 softtabstop=2 expandtab :
diff --git a/src/test/cordvtn/access-docker/run-agent.sh b/src/test/cordvtn/access-docker/run-agent.sh
deleted file mode 100755
index da6c69f..0000000
--- a/src/test/cordvtn/access-docker/run-agent.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-sudo docker run --privileged --cap-add=ALL -d --name access-agent -t ubuntu:14.04 /bin/bash
-sudo ./pipework br-mgmt -i eth1 access 10.10.10.101/24
-sudo ./pipework br-int -i eth2 access 10.168.0.101/24