File: gate_hook.sh

package info (click to toggle)
networking-bagpipe 23.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,872 kB
  • sloc: python: 15,677; sh: 927; makefile: 62
file content (96 lines) | stat: -rw-r--r-- 2,685 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/bin/sh

GATE_DEST=$BASE/new

VENV=${1:-"tempest"}

DEVSTACK_PATH=$GATE_DEST/devstack
NEUTRON_PATH=$GATE_DEST/neutron
BAGPIPE_PATH=$GATE_DEST/networking-bagpipe
GATE_HOOKS=$NEUTRON_PATH/neutron/tests/contrib/hooks
BAGPIPE_GATE_HOOKS=$BAGPIPE_PATH/devstack/gate-hooks
LOCAL_CONF=$DEVSTACK_PATH/late-local.conf
DSCONF=/tmp/devstack-tools/bin/dsconf

# Install devstack-tools used to produce local.conf; we can't rely on
# test-requirements.txt because the gate hook is triggered before neutron is
# installed
sudo -H pip install virtualenv
virtualenv /tmp/devstack-tools
/tmp/devstack-tools/bin/pip install -U devstack-tools==0.4.0

# Inject config from bagipe hook into localrc
function load_bagpipe_rc_hook {
    local hook="$1"
    local tmpfile
    local config
    tmpfile=$(tempfile)
    config=$(cat $BAGPIPE_GATE_HOOKS/$hook)
    echo "[[local|localrc]]" > $tmpfile
    $DSCONF setlc_raw $tmpfile "$config"
    $DSCONF merge_lc $LOCAL_CONF $tmpfile
    rm -f $tmpfile
}


case $VENV in
"functional"|"fullstack")
    VENV=dsvm-$VENV

    # The following need to be set before sourcing
    # configure_for_func_testing.
    GATE_STACK_USER=stack
    PROJECT_NAME=networking-bagpipe
    IS_GATE=True
    LOCAL_CONF=$DEVSTACK_PATH/local.conf

    source $DEVSTACK_PATH/functions
    source $NEUTRON_PATH/devstack/lib/ovs

    source $NEUTRON_PATH/tools/configure_for_func_testing.sh

    configure_host_for_func_testing

    # to be replaced by project config bindep trigger
    sudo PATH=/usr/sbin:/sbin:$PATH DEBIAN_FRONTEND=noninteractive \
            apt-get -q --option "Dpkg::Options::=--force-confold" \
            --assume-yes install fping

    # prepare base environment for ./stack.sh
    load_bagpipe_rc_hook stack_base

    # enable monitoring
    load_bagpipe_rc_hook dstat

    # have devstack know about our devstack plugin
    load_bagpipe_rc_hook bagpipe

    # setup go environement variables in devstack
    load_bagpipe_rc_hook go-env
    # create same go environement
    source $BAGPIPE_GATE_HOOKS/go-env
    sudo mkdir -p $GOPATH
    sudo chown -R $STACK_USER:$STACK_USER $GOPATH

    # install gobgp via our devstack plugin
    load_bagpipe_rc_hook gobgp

    # Make the workspace owned by the stack user
    sudo chown -R $STACK_USER:$STACK_USER $BASE

    # temporary fix for bug 1693689
    export IPV4_ADDRS_SAFE_TO_USE=${DEVSTACK_GATE_IPV4_ADDRS_SAFE_TO_USE:-${DEVSTACK_GATE_FIXED_RANGE:-10.1.0.0/20}}

    # deploy devstack as per local.conf
    cd $DEVSTACK_PATH && sudo -E -H -u $GATE_STACK_USER ./stack.sh
    ;;

"tempest")
    $GATE_DEST/devstack-gate/devstack-vm-gate.sh
    ;;

*)
    echo "Unrecognized environment $VENV".
    exit 1
esac