]> git.proxmox.com Git - mirror_frr.git/blame - tests/topotests/docker/entrypoint.sh
docker: add support for running inside container
[mirror_frr.git] / tests / topotests / docker / entrypoint.sh
CommitLineData
1e9c095c
RZ
1#!/bin/bash
2#
3# Copyright 2018 Network Device Education Foundation, Inc. ("NetDEF")
4#
5# Permission is hereby granted, free of charge, to any person obtaining
6# a copy of this software and associated documentation files (the
7# "Software"), to deal in the Software without restriction, including
8# without limitation the rights to use, copy, modify, merge, publish,
9# distribute, sublicense, and/or sell copies of the Software, and to
10# permit persons to whom the Software is furnished to do so, subject to
11# the following conditions:
12#
13# The above copyright notice and this permission notice shall be
14# included in all copies or substantial portions of the Software.
15#
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
20# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23# SOFTWARE.
24
25# Load shared functions
26CDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
27. $CDIR/funcs.sh
28
29#
30# Script begin
31#
32log_info "Configuring OpenvSwitch...."
33
34# Configure OpenvSwitch so we are able to run mininet
35mkdir -p /var/run/openvswitch
36ovsdb-tool create /etc/openvswitch/conf.db \
37 /usr/share/openvswitch/vswitch.ovsschema
38ovsdb-server /etc/openvswitch/conf.db \
39 --remote=punix:/var/run/openvswitch/db.sock \
40 --remote=ptcp:6640 --pidfile=ovsdb-server.pid >/dev/null 2>/dev/null & \
41 disown
42ovs-vswitchd >/dev/null 2>/dev/null & disown
43
44sleep 2
45
46ovs-vsctl --no-wait -- init
47ovs_version=$(ovs-vsctl -V | grep ovs-vsctl | awk '{print $4}')
48ovs_db_version=$(\
49 ovsdb-tool schema-version /usr/share/openvswitch/vswitch.ovsschema)
50ovs-vsctl --no-wait -- set Open_vSwitch . db-version="${ovs_db_version}"
51ovs-vsctl --no-wait -- set Open_vSwitch . ovs-version="${ovs_version}"
52ovs-vsctl --no-wait -- set Open_vSwitch . system-type="docker-ovs"
53ovs-vsctl --no-wait -- set Open_vSwitch . system-version="0.1"
54ovs-vsctl --no-wait -- \
55 set Open_vSwitch . external-ids:system-id=`cat /proc/sys/kernel/random/uuid`
56ovs-vsctl --no-wait -- set-manager ptcp:6640
57ovs-appctl -t ovsdb-server \
58 ovsdb-server/add-remote db:Open_vSwitch,Open_vSwitch,manager_options
59
60# Build FRR
61env \
62 CLEAN=1 \
63 VERBOSE=0 \
64 bash /opt/topotests/compile_frr.sh
65
66log_info "Setting permissions on /tmp so we can generate logs"
67chmod -v 1777 /tmp
68
69log_info "Starting bash shell to interact with topotests"
70echo ''
71
72tmux
73
74log_info "Stopping OpenvSwitch"
75service openvswitch-switch stop