aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket-be/deployment/install/vtp_install.sh
blob: 7c71977aa73df42869223ed081616c0c3f77edc5 (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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
#!/bin/bash

#*******************************************************************************
# Copyright 2019 Huawei Technologies Co., Ltd.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#*******************************************************************************
# VTP Installation script supported Ubuntu 16.04 64 bit
#
# Following the guidelines given below:
# source < this file >
#
# Install:
#    vtp_setup
# Start:
#    vtp_start
# Stop:
#    vtp_stop
# Uninstall
#    vtp_purge
#
# Happy VTPing ...
#
export OCLIP_DOWNLOAD_URL="https://nexus.onap.org/content/repositories/autorelease-114174/org/onap/cli/cli-zip/2.0.6/cli-zip-2.0.6.zip"
export VTP_DOWNLOAD_URL="https://nexus.onap.org/content/repositories/autorelease-114194/org/onap/vnfsdk/refrepo/vnf-sdk-marketplace/1.2.1/vnf-sdk-marketplace-1.2.1.war"
export CSAR_VALIDATE_DOWNLOAD_URL="https://nexus.onap.org/content/repositories/autorelease-114111/org/onap/vnfsdk/validation/csarvalidation-deployment/1.1.5/csarvalidation-deployment-1.1.5.zip"
export TOMCAT8_DOWNLOAD_URL="https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.30/bin/apache-tomcat-8.5.30.tar.gz"
export SAMPLE_VTP_CSAR="https://github.com/onap/vnfsdk-validation/raw/master/csarvalidation/src/test/resources/VoLTE.csar"
export VVP_GITHUB="https://github.com/onap/vvp-validation-scripts"
export SAMPLE_VTP_HOT="https://git.openstack.org/cgit/openstack/heat-templates/plain/hot/hello_world.yaml"

export VTP_STAGE_DIR=/opt/vtp_stage

export OPEN_CLI_HOME=/opt/oclip
export PATH=$OPEN_CLI_HOME/bin:$PATH
export CATALINA_HOME=/opt/controller
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export ONAP_VVP_HOME=$VTP_STAGE_DIR/vvp-validation-scripts/ice_validator
export VTP_TRACK_MARK=++++++++++++++++++++++++

function vtp_download() {
	echo $VTP_TRACK_MARK Downloading VTP binaries and setup the dependencies ...

	apt-get install -y tar wget unzip git python3 python3-pip
	pip3 install --upgrade pip

	mkdir -p $VTP_STAGE_DIR

	if [ ! -f $VTP_STAGE_DIR/CLI.zip ]
	then
		wget -O $VTP_STAGE_DIR/CLI.zip $OCLIP_DOWNLOAD_URL
	else
		echo $VTP_TRACK_MARK $OCLIP_DOWNLOAD_URL already downloded
	fi

	if [ ! -f $VTP_STAGE_DIR/CSAR-VALIDATE.zip ]
	then
		wget -O $VTP_STAGE_DIR/CSAR-VALIDATE.zip $CSAR_VALIDATE_DOWNLOAD_URL
		wget -O $VTP_STAGE_DIR/CSAR.csar $SAMPLE_VTP_CSAR
	else
		echo $VTP_TRACK_MARK $CSAR_VALIDATE_DOWNLOAD_URL already downloded
	fi

	if [ ! -f $VTP_STAGE_DIR/TOMCAT.tar.gz ]
	then
		wget -O $VTP_STAGE_DIR/TOMCAT.tar.gz $TOMCAT8_DOWNLOAD_URL
	else
		echo $VTP_TRACK_MARK $TOMCAT8_DOWNLOAD_URL already downloded
	fi

	if [ ! -f $VTP_STAGE_DIR/VTP.zip ]
	then
		wget -O $VTP_STAGE_DIR/VTP.zip $VTP_DOWNLOAD_URL
	else
		echo $VTP_TRACK_MARK $VTP_DOWNLOAD_URL already downloded
	fi

	if [ ! -d $VTP_STAGE_DIR/vvp-validation-scripts ]
	then
		git clone $VVP_GITHUB $VTP_STAGE_DIR/vvp-validation-scripts
		mkdir -p $VTP_STAGE_DIR/HOT
		wget -O $VTP_STAGE_DIR/HOT/HOT.yaml $SAMPLE_VTP_HOT
	else
		echo $VTP_TRACK_MARK $VTP_DOWNLOAD_URL already cloned
	fi

	if [ ! -d $JAVA_HOME ]
	then
		apt-get install -y openjdk-8-jre
	else
		echo $VTP_TRACK_MARK JAVA already installed
	fi
}

function vtp_backend_install() {
	if [ ! -f $OPEN_CLI_HOME/bin/oclip.sh ]
	then
		echo $VTP_TRACK_MARK Installing VTP Backend...

		mkdir -p $OPEN_CLI_HOME
		unzip $VTP_STAGE_DIR/CLI.zip -d $OPEN_CLI_HOME
		ln -s $OPEN_CLI_HOME/bin/oclip.sh $OPEN_CLI_HOME/bin/oclip

		echo $VTP_TRACK_MARK Configuring VTP Backend...
		cp $OPEN_CLI_HOME/conf/oclip.service /etc/systemd/system
		systemctl daemon-reload
		systemctl status oclip
	else
		echo "VTP Backend already installed"
	fi
}

function vtp_csar_validation_install() {
	echo "$VTP_TRACK_MARK Installing CSAR Validation Test cases (TOSCA & HEAT)"
	mkdir -p $OPEN_CLI_HOME/CSAR-VALIDATE
	unzip $VTP_STAGE_DIR/CSAR-VALIDATE.zip -d $OPEN_CLI_HOME/CSAR-VALIDATE
	cp $OPEN_CLI_HOME/CSAR-VALIDATE/validation-csar-*.jar $OPEN_CLI_HOME/lib
}

function vtp_controller_install() {
	if [ ! -d $CATALINA_HOME ]
	then
		echo $VTP_TRACK_MARK Installing Tomcat 8.5.3 ...
		mkdir -p $CATALINA_HOME
		tar --strip-components=1 -xf $VTP_STAGE_DIR/TOMCAT.tar.gz -C $CATALINA_HOME
		rm -rf $CATALINA_HOME/webapps
		mkdir -p $CATALINA_HOME/webapps/ROOT

		unzip $VTP_STAGE_DIR/VTP.zip -d $CATALINA_HOME/webapps/ROOT
		echo 'export CATALINA_OPTS="$CATALINA_OPTS -Xms64m -Xmx256m -XX:MaxPermSize=64m"' > $CATALINA_HOME/bin/setenv.sh
		echo 'export JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"' >> $CATALINA_HOME/bin/setenv.sh
	else
		echo "VTP Controller already installed"
	fi
}

function vtp_start() {
	echo $VTP_TRACK_MARK Starting VTP Backend...
	systemctl start oclip
	systemctl status oclip --no-pager

	echo $VTP_TRACK_MARK Starting VTP Controller...
	$CATALINA_HOME/bin/startup.sh
}

function vtp_stop() {
	echo $VTP_TRACK_MARK Stoping VTP Backend...
	systemctl stop oclip
	systemctl status oclip --no-pager

	echo $VTP_TRACK_MARK Stoping VTP Controller...
	$CATALINA_HOME/bin/shutdown.sh
}

function vtp_purge() {
	#Stop services
	vtp_stop

	#Stop tracking
	jobs -p | xargs kill -9

	echo $VTP_TRACK_MARK Purging VTP...
	rm -rf $OPEN_CLI_HOME
	rm -rf $CATALINA_HOME

	vtp_vvp_uninstall
}

function vtp_trace() {
	tailf $CATALINA_HOME/logs/catalina.out &
	tailf $OPEN_CLI_HOME/logs/open-cli.log &
}

function vtp_vvp_install() {
	echo $VTP_TRACK_MARK Installing VVP scripts
	_CWD=`pwd`
	cd $VTP_STAGE_DIR/vvp-validation-scripts
	pip install -r requirements.txt
	cd $_CWD
}

function vtp_vvp_uninstall() {
	echo $VTP_TRACK_MARK Installing VVP scripts
	_CWD=`pwd`
	cd $VTP_STAGE_DIR/vvp-validation-scripts
	pip uninstall -y -r requirements.txt
	cd $_CWD
}

function vtp_sample_scenario_install() {
	echo $VTP_TRACK_MARK Installing sample scenarios...
	mkdir -p $OPEN_CLI_HOME/open-cli-schema/sample-scenarios
	cp -r $CATALINA_HOME/webapps/ROOT/WEB-INF/classes/sample-vtp-scenarios/open-cli-schema/ $OPEN_CLI_HOME/open-cli-schema/sample-scenarios
}

function vtp_test() {
	oclip --product onap-vtp csar-validate --csar $VTP_STAGE_DIR/CSAR.csar
	oclip --product onap-vtp hot-validate --hot-folder $VTP_STAGE_DIR/HOT --format json
}

function vtp_setup() {
	vtp_download
	vtp_backend_install
	vtp_controller_install
	vtp_csar_validation_install
	vtp_vvp_install
	vtp_sample_scenario_install
	vtp_start
	vtp_test
}

if [[ $1 == '--install' ]]
then
	vtp_setup
elif [[ $1 == '--uninstall' ]]
then
	vtp_purge
elif [[ $1 == '--stop' ]]
then
	vtp_stop
elif [[ $1 == '--start' ]]
then
	vtp_start
elif [[ $1 == '--verify' ]]
then
	vtp_test
else
	echo "$0 [ --install | --uninstall | --start | --stop | --verify]"
fi