feature 8029 change RO to python3. Using vim plugins
[osm/RO.git] / test-docker / test-gen-devops.sh
1 #!/bin/bash
2
3 ##
4 # Licensed under the Apache License, Version 2.0 (the "License"); you may
5 # not use this file except in compliance with the License. You may obtain
6 # a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 # License for the specific language governing permissions and limitations
14 # under the License.
15 #
16 # For those usages not covered by the Apache License, Version 2.0 please
17 # contact with: nfvlabs@tid.es
18 ##
19
20 # Generates the debian packages; and then generates a docker image base on Dockerfile-devops and update a
21 # running docker stack with the generated image
22
23 HERE=$(dirname $(readlink -f ${BASH_SOURCE[0]}))
24 export RO_BASE=$(dirname $HERE)
25
26 # clean
27 docker rm -f ro_pkg 2>/dev/null && echo docker ro_pkg removed
28 rm -rf $HERE/temp/*
29 mkdir -p $HERE/temp
30
31 echo -e "\n\n[STAGE 1] Builind dockerfile userd for the package generation"
32 docker build $RO_BASE -f $RO_BASE/Dockerfile -t opensourcemano/ro_pkg
33 sleep 2
34
35 echo "[STAGE 1.1] Generting packages inside docker ro_pkg"
36 docker run -d --name ro_pkg opensourcemano/ro_pkg bash -c 'sleep 3600'
37 docker cp $RO_BASE ro_pkg:/RO
38 docker exec ro_pkg bash -c 'cd /RO; ./devops-stages/stage-build.sh'
39 deb_files=`docker exec ro_pkg bash -c 'ls /RO/deb_dist/'`
40 [ -z "$deb_files" ] && echo "No packages generated" >&2 && exit 1
41 echo $deb_files
42
43 echo -e "\n\n[STAGE 1.2] Print package information and copy to '$HERE/temp/'"
44 # print package information and copy to "$HERE/temp/"
45 for deb_file in $deb_files ; do
46 echo; echo; echo
47 echo $deb_file info:
48 echo "==========================="
49 docker cp ro_pkg:/RO/deb_dist/$deb_file $HERE/temp/
50 dpkg -I $HERE/temp/$(basename $deb_file)
51 done
52
53 # docker rm -f ro_pkg
54 echo -e "\n\n[STAGE 2] Building docker image opensourcemano/ro:py3_devops based on debian packages"
55 docker build $HERE -f $HERE/Dockerfile-devops -t opensourcemano/ro:py3_devops ||
56 ! echo "error generating devops dockerfile" >&2 || exit 1
57 sleep 2
58 # docker run -d --name ro_devops opensourcemano/ro:py3_devops
59 # docker run -ti exec ro_devops ro tenant-list || ! echo "Cannot exec ro client to get server tenants" >&2 || exit 1
60
61 echo -e "\n\n[STAGE 3] Update service osm_ro with generated docker image"
62 docker service update osm_ro --force --image opensourcemano/ro:py3_devops
63 sleep 2
64 docker container prune -f
65 docker service logs osm_ro