syntax error
[osm/devops.git] / jenkins / SO / install
1 #!/usr/bin/env bash
2
3 #   Copyright 2017 RIFT.IO Inc
4 #
5 #   Licensed under the Apache License, Version 2.0 (the "License");
6 #   you may not use this file except in compliance with the License.
7 #   You may obtain a copy of the License at
8 #
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
11 #   Unless required by applicable law or agreed to in writing, software
12 #   distributed under the License is distributed on an "AS IS" BASIS,
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 #   See the License for the specific language governing permissions and
15 #   limitations under the License.
16 #
17 # Author(s): Jeremy Mordkoff
18 # Creation Date: 26 April 2017
19
20 #
21
22 # INSTALL.sh
23 # install launchpad SO and all of its dependencies
24 #
25
26 # Defensive bash programming flags
27 set -o errexit    # Exit on any error
28 trap 'echo ERROR: Command failed: \"$BASH_COMMAND\"' ERR
29 set -o nounset    # Expanding an unset variable is an error.  Variables must be
30                   # set before they can be used.
31
32 if [ $# -gt 0 ]; then
33     case "$1" in
34         -h|--help)
35             echo
36             echo "NAME:"
37             echo "  $0"
38             echo
39             echo "SYNOPSIS:"
40             echo "  $0 -h|--help"
41             echo "  $0 [PLATFORM_REPOSITORY] [PLATFORM_VERSION]"
42             echo
43             echo "DESCRIPTION:"
44             echo "  Prepare current system to run SO and UI."
45             echo
46             echo "  PLATFORM_REPOSITORY (optional): name of the RIFT.ware repository."
47             echo "  PLATFORM_VERSION (optional): version of the platform packages to be installed."
48             echo
49             exit 0;;
50     esac
51 fi
52
53
54 ###############################################################################
55 # Set up repo and version
56
57 PLATFORM_REPOSITORY=${1:-OSM}
58 PLATFORM_VERSION=${2:-4.4.2.1.60497}
59
60 ###############################################################################
61 # Main block
62
63 # Disable apt-daily.service and apt-daily.timer
64
65 DAILY_TIMER='apt-daily.timer'
66 DAILY_SERVICE='apt-daily.service'
67 if [ $(systemctl is-active $DAILY_TIMER) = "active" ]
68 then
69     systemctl stop $DAILY_TIMER
70     systemctl disable $DAILY_TIMER
71     systemctl disable $DAILY_SERVICE
72 fi
73
74 # enable the right repos
75 curl http://repos.riftio.com/public/xenial-riftware-public-key | apt-key add -
76 curl -o /etc/apt/sources.list.d/RIFT.list http://buildtracker.riftio.com/repo_file/ub16/${PLATFORM_REPOSITORY}/ 
77 apt-get update
78         
79 # and install the tools
80 apt remove -y rw.toolchain-rwbase tcpdump
81 apt-get install -y --allow-downgrades rw.tools-container-tools=${PLATFORM_VERSION} rw.tools-scripts=${PLATFORM_VERSION} python 
82 /usr/rift/container_tools/mkcontainer --modes ext --modes platform --rw-version ${PLATFORM_VERSION}
83 pip3 install lxml==3.4.0
84
85
86 chmod 777 /usr/rift /usr/rift/usr/share
87
88 # now disable the RIFT OSM repo so that we'll get MANO from 
89 # the OSM repos
90 rm -f /etc/apt/sources.list.d/RIFT.list 
91 curl https://osm-download.etsi.org/repository/osm/debian/ReleaseTWO/OSM%20ETSI%20Release%20Key.gpg |apt-key add -
92 add-apt-repository -y "deb https://osm-download.etsi.org/repository/osm/debian/ReleaseTWO stable SO UI RO openvim"
93 apt-get update
94     
95 apt-get install -y \
96              rw.core.mano-rwcal_yang_ylib-1.0 \
97              rw.core.mano-rwconfig_agent_yang_ylib-1.0 \
98              rw.core.mano-rwlaunchpad_yang_ylib-1.0 \
99              rw.core.mano-mano_yang_ylib-1.0 \
100              rw.core.mano-common-1.0 \
101              rw.core.mano-rwsdn_yang_ylib-1.0 \
102              rw.core.mano-rwsdnal_yang_ylib-1.0 \
103              rw.core.mano-mano-types_yang_ylib-1.0 \
104              rw.core.mano-rwcal-cloudsim-1.0 \
105              rw.core.mano-rwcal-1.0 \
106              rw.core.mano-rw_conman_yang_ylib-1.0 \
107              rw.core.mano-rwcalproxytasklet-1.0 \
108              rw.core.mano-rwlaunchpad-1.0 \
109              rw.core.mano-rwcal-openmano-vimconnector-1.0 \
110              rw.core.mano-lpmocklet_yang_ylib-1.0 \
111              rw.core.mano-rwmon-1.0 \
112              rw.core.mano-rwcloud_yang_ylib-1.0 \
113              rw.core.mano-rwcal-openstack-1.0 \
114              rw.core.mano-rw.core.mano_foss \
115              rw.core.mano-rwmon_yang_ylib-1.0 \
116              rw.core.mano-rwcm-1.0 \
117              rw.core.mano-rwcal-mock-1.0 \
118              rw.core.mano-rwcal-cloudsimproxy-1.0 \
119              rw.core.mano-models-1.0 \
120              rw.core.mano-rwcal-aws-1.0
121