aboutsummaryrefslogtreecommitdiffstats
path: root/functest/ci/add_proxy.sh
blob: a3270b136893080b6635fab17095617e10df696a (plain)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash

set -e

pushd "${1:-/home/opnfv/functest/images}" > /dev/null

http_proxy_host=${http_proxy_host:-proxy}
http_proxy_port=${http_proxy_port:-8080}

http_proxy=http://${http_proxy_host}:${http_proxy_port}
https_proxy=${https_proxy:-${http_proxy:-http://proxy:8080}}
ftp_proxy=${ftp_proxy:-${http_proxy:-http://proxy:8080}}
no_proxy=${no_proxy:-"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"}

images=${images-"\
ubuntu-14.04-server-cloudimg-amd64-disk1.img \
ubuntu-16.04-server-cloudimg-amd64-disk1.img"}

add_proxy () {
    cat << EOF >> "$1"
http_proxy=${http_proxy}
HTTP_PROXY=${http_proxy}
https_proxy=${https_proxy}
HTTPS_PROXY=${https_proxy}
ftp_proxy=${ftp_proxy}
FTP_PROXY=${ftp_proxy}
no_proxy=${no_proxy}
NO_PROXY=${no_proxy}
EOF
}

add_proxy_apt () {
    cat << EOF >> "$1"
Acquire::http::Proxy "${http_proxy}";
Acquire::https::Proxy "${https_proxy}";
EOF
}

add_proxy_juju_env () {
    cat << EOF >> "$1"
export no_proxy="${no_proxy}";
export NO_PROXY="${no_proxy}";
EOF
}

add_proxy_juju_systemd () {
    cat << EOF >> "$1"
[Manager]
DefaultEnvironment="no_proxy='${no_proxy}'" "NO_PROXY='${no_proxy}'"
EOF
}

add_proxy_maven () {
    cat << EOF >> "$1"
<settings>
   <proxies>
      <proxy>
        <id>example-proxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>"${http_proxy_host}"</host>
        <port>"${http_proxy_port}"</port>
      </proxy>
   </proxies>
</settings>
EOF
}

add_proxy_svn ()  {
    cat << EOF >> "$1"
[global]
http-proxy-host = "${http_proxy_host}"
http-proxy-port = "${http_proxy_port}"
EOF
}

tmpdir=$(mktemp -d)
for image in $images; do
    if [ ! -f "$image" ]; then
        echo "skip ${image} ($(pwd)/${image} not found)"
        continue
    fi
    guestmount -a "${image}" -i --rw "${tmpdir}"
    add_proxy "${tmpdir}/etc/environment"
    if [[ ${image} == "ubuntu"* ]]; then
        add_proxy_apt "${tmpdir}/etc/apt/apt.conf"
        add_proxy_juju_env "${tmpdir}/etc/juju-proxy.conf"
        add_proxy_juju_systemd "${tmpdir}/etc/juju-proxy-systemd.conf"
        mkdir -p ${tmpdir}/root/.m2
        mkdir -p ${tmpdir}/root/.subversion
        add_proxy_maven "${tmpdir}/root/.m2/settings.xml}"
        add_proxy_svn "${tmpdir}/root/.subversion/servers}"
    fi
    guestunmount "${tmpdir}"
done

if [ -f cloudify-docker-manager-community-19.01.24.tar ]; then
    sudo docker load -i cloudify-docker-manager-community-19.01.24.tar
    dockerfile=${tmpdir}/Dockerfile
    cat << EOF > $dockerfile
FROM docker-cfy-manager:latest
ENV HTTP_PROXY "${http_proxy}"
ENV HTTPS_PROXY "${https_proxy}"
ENV NO_PROXY "${no_proxy}"
EOF
    for f in /etc/sysconfig/cloudify-mgmtworker /etc/sysconfig/cloudify-restservice; do \
        cat << EOF >> $dockerfile
RUN echo >> $f
RUN echo "http_proxy=${http_proxy}" >> $f
RUN echo "https_proxy=${https_proxy}" >> $f
RUN echo "HTTP_PROXY=${http_proxy}" >> $f
RUN echo "HTTPS_PROXY=${https_proxy}" >> $f
RUN echo "no_proxy=${no_proxy}" >> $f
EOF
    done
    sudo docker build -t docker-cfy-manager -f $dockerfile ${tmpdir}
    sudo docker save \
        docker-cfy-manager > cloudify-docker-manager-community-19.01.24.tar
    sudo docker rmi docker-cfy-manager

    rm "${dockerfile}"
else
    echo "skip cloudify-docker-manager-community-19.01.24.tar \
        ($(pwd)/cloudify-docker-manager-community-19.01.24.tar not found)"
fi

rmdir "${tmpdir}"
popd > /dev/null