blob: 538ad2c029c6f68da12581e7905ebc5389519761 [file] [log] [blame]
Victor Morales89ce3212017-06-16 18:32:48 -05001#!/bin/bash
2
Victor Morales89ce3212017-06-16 18:32:48 -05003source /var/onap/functions
4
5hbase_version=1.2.3
Victor Morales8e08c872017-08-21 16:15:57 -05006aai_src_folder=$git_src_folder/aai
Victor Moralesf6c0bf12017-10-27 11:08:04 -07007aai_repos=("aai/aai-common" "aai/aai-config" "aai/aai-data" "aai/aai-service" \
8"aai/babel" "aai/champ" "aai/data-router" "aai/esr-gui" "aai/esr-server" \
9"aai/gizmo" "aai/logging-service" "aai/model-loader" "aai/resources" \
10"aai/rest-client" "aai/router-core" "aai/search-data-service" \
11"aai/test-config" "aai/traversal" "aai/sparky-fe" "aai/sparky-be")
Victor Morales455bece2017-07-31 18:40:39 -050012
13# install_hadoop() - Function that installs Hadoop
14function install_hadoop {
15 local release=titan
16 local version=1.0.0
17 local filename=$release-$version-hadoop1
18 local dest_folder=/opt/hadoop/current
19
20 if [ ! -d $dest_folder ]; then
21 curl http://s3.thinkaurelius.com/downloads/$release/$filename.zip -o /tmp/${filename}.zip
22 install_package unzip
23 mkdir -p $dest_folder
24 unzip /tmp/${filename}.zip -d $dest_folder
25 pushd $dest_folder/${filename}
Victor Morales158c18c2017-08-06 11:23:15 -050026 # Change commitlog_directory and data_file_directories values (https://stackoverflow.com/a/26856246/1707651)
27 sed -i "s|db/cassandra/data|/tmp/data|g" conf/cassandra/cassandra.yaml
28 sed -i "s|db/cassandra/commitlog|/tmp/commitlog|g" conf/cassandra/cassandra.yaml
29
30 install_java
Victor Morales455bece2017-07-31 18:40:39 -050031 ./bin/titan.sh start
32 popd
33 fi
34}
35
36# install_haproxy() - Function that install HAProxy
37function install_haproxy {
Victor Morales7ae05a42017-08-22 14:39:00 -050038 if is_package_installed haproxy; then
39 return
40 fi
41 install_package software-properties-common
42 add-apt-repository -y ppa:vbernat/haproxy-1.7
Victor Morales455bece2017-07-31 18:40:39 -050043 install_package haproxy
Victor Morales7ae05a42017-08-22 14:39:00 -050044 cp /var/onap/files/haproxy.cfg /etc/haproxy/
Victor Morales455bece2017-07-31 18:40:39 -050045 cp /var/onap/files/aai.pem /etc/ssl/private/
46 chmod 640 /etc/ssl/private/aai.pem
47 chown root:ssl-cert /etc/ssl/private/aai.pem
48 mkdir /usr/local/etc/haproxy
Victor Morales7ae05a42017-08-22 14:39:00 -050049 #echo "127.0.0.1 localhost aai-traversal.api.simpledemo.openecomp.org aai-resources.api.simpledemo.openecomp.org" >> /etc/hosts
Victor Morales455bece2017-07-31 18:40:39 -050050
51 service haproxy restart
52}
Victor Morales89ce3212017-06-16 18:32:48 -050053
Victor Moralesdd074802017-07-26 16:06:35 -050054# clone_all_aai_repos() - Function that clones AAI source repo.
55function clone_all_aai_repos {
Victor Moralesf6c0bf12017-10-27 11:08:04 -070056 for repo in ${aai_repos[@]}; do
57 clone_repo $repo $aai_src_folder${repo#*aai}
Victor Moralesdd074802017-07-26 16:06:35 -050058 done
59}
60
Victor Morales455bece2017-07-31 18:40:39 -050061# compile_aai_repos() - Function that compiles AAI source repo.
62function compile_aai_repos {
Victor Moralesf6c0bf12017-10-27 11:08:04 -070063 local repos=("aai/aai-common" "aai/resources" "aai/logging-service" "aai/traversal")
Victor Morales455bece2017-07-31 18:40:39 -050064 if [[ "$compile_repo" == "True" ]]; then
Victor Morales158c18c2017-08-06 11:23:15 -050065 repos=("${aai_repos[@]}")
Victor Morales455bece2017-07-31 18:40:39 -050066 fi
Victor Moralesdd074802017-07-26 16:06:35 -050067
Victor Moralesf6c0bf12017-10-27 11:08:04 -070068 for repo in ${repos[@]}; do
69 compile_src $aai_src_folder${repo#*aai}
Victor Moralesdd074802017-07-26 16:06:35 -050070 done
71}
72
Victor Morales455bece2017-07-31 18:40:39 -050073# setup_titan() - Function that configures AAI services to connect to Hadoop Titan
74function setup_titan {
Victor Morales7ae05a42017-08-22 14:39:00 -050075 local subdirectory="bundleconfig-local/etc/appprops"
Victor Morales455bece2017-07-31 18:40:39 -050076 install_python_package crudini
77
Victor Morales7ae05a42017-08-22 14:39:00 -050078 for dirc in resources/aai-resources traversal/aai-traversal; do
Victor Morales455bece2017-07-31 18:40:39 -050079 for file in titan-cached.properties titan-realtime.properties; do
Victor Morales7ae05a42017-08-22 14:39:00 -050080 crudini --set "$aai_src_folder/$dirc/$subdirectory/$file" "" "storage.backend" "cassandra"
81 crudini --set "$aai_src_folder/$dirc/$subdirectory/$file" "" "storage.hostname" "localhost"
Victor Morales455bece2017-07-31 18:40:39 -050082 done
83 done
84
Victor Morales7ae05a42017-08-22 14:39:00 -050085 # Add the schema to the local isntance
86 compile_src $aai_src_folder/resources/aai-resources/
87 uninstall_packages default-jre openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless
Victor Morales8e08c872017-08-21 16:15:57 -050088 pushd $aai_src_folder
Victor Morales8e08c872017-08-21 16:15:57 -050089 java -DAJSC_HOME=$aai_src_folder/resources/aai-resources -DBUNDLECONFIG_DIR="bundleconfig-local" -cp aai-common/aai-core/target/aai-core-1.1.0-SNAPSHOT.jar:resources/aai-resources/target/aai-resources.jar:resources/aai-resources/target/userjars/* org.openecomp.aai.dbgen.GenTester
Victor Morales455bece2017-07-31 18:40:39 -050090 popd
91}
92
93# start_aai_microservices() - Function that starts AAI microservices
94function start_aai_microservices {
Victor Morales7ae05a42017-08-22 14:39:00 -050095 install_maven
96 export MAVEN_OPTS="-Xms1024m -Xmx5120m -XX:PermSize=2024m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9446,server=y,suspend=n"
Victor Morales455bece2017-07-31 18:40:39 -050097 for svc in resources traversal; do
Victor Morales8e08c872017-08-21 16:15:57 -050098 pushd $aai_src_folder/resources
Victor Morales455bece2017-07-31 18:40:39 -050099 mvn -P runAjsc
100 popd
101 done
102}
103
Victor Morales158c18c2017-08-06 11:23:15 -0500104# _pull_hbase_image() - Pull HBase container image from a Docker Registry Hub
105function _pull_hbase_image {
Victor Moralesdd074802017-07-26 16:06:35 -0500106 docker_openecomp_login
Victor Morales89ce3212017-06-16 18:32:48 -0500107 docker pull $nexus_docker_repo/aaidocker/aai-hbase-${hbase_version}
108}
109
110# install_hbase() - Install HBase Service
111function install_hbase {
112 docker rm -f hbase
Victor Morales158c18c2017-08-06 11:23:15 -0500113 _pull_hbase_image
Victor Morales89ce3212017-06-16 18:32:48 -0500114 docker run -d --net=host --name="hbase" $nexus_docker_repo/aaidocker/aai-hbase-${hbase_version}
115}
116
117# install_ajsc() - Install ASJC Java service container
118function install_ajsc_aai {
119 cat <<EOL > /etc/ajsc-aai.conf
120AAI_REPO_PATH=r/aai
121AAI_CHEF_ENV=simpledemo
122AAI_CHEF_LOC=/var/chef/aai-data/environments
123docker_gitbranch=master
124EOL
125 docker rm -f aai-service
Victor Moralesdd074802017-07-26 16:06:35 -0500126 if [[ "$build_image" == "True" ]]; then
Victor Morales8e08c872017-08-21 16:15:57 -0500127 build_docker_image $aai_src_folder/aai-service/ajsc-aai
Victor Moralesdd074802017-07-26 16:06:35 -0500128 else
129 pull_openecomp_image ajsc-aai
130 fi
131
Victor Morales89ce3212017-06-16 18:32:48 -0500132 docker run --env-file /etc/ajsc-aai.conf --name=aai-service --net=host -v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt -it -d $nexus_docker_repo/openecomp/ajsc-aai:$docker_version
133}
134
135# install_model_loader() Install Model Loader
136function install_model_loader {
Victor Morales89ce3212017-06-16 18:32:48 -0500137 cat <<EOL > /etc/model-loader.conf
138DISTR_CLIENT_ASDC_ADDRESS=${SDC_ADDRESS:-c2.vm1.sdc.simpledemo.openecomp.org:8443}
139DISTR_CLIENT_CONSUMER_GROUP=${UEB_CONSUMER_GROUP:-SDCGroup}
140DISTR_CLIENT_CONSUMER_ID=${UEB_CONSUMER_GROUP_ID:-UEB}
141DISTR_CLIENT_ENVIRONMENT_NAME=${dmaap_topic}
142DISTR_CLIENT_PASSWORD=${SDC_PASSWORD:-OBF:1ks51l8d1o3i1pcc1r2r1e211r391kls1pyj1z7u1njf1lx51go21hnj1y0k1mli1sop1k8o1j651vu91mxw1vun1mze1vv11j8x1k5i1sp11mjc1y161hlr1gm41m111nkj1z781pw31kku1r4p1e391r571pbm1o741l4x1ksp}
143DISTR_CLIENT_USER=${SDC_USER:-aai}
144
145APP_SERVER_BASE_URL=${APP_SERVER_URL:-https://c1.vm1.aai.simpledemo.openecomp.org:8443}
146APP_SERVER_AUTH_USER=${APP_USER:-ModelLoader}
147APP_SERVER_KEYSTORE_PASSWORD=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
148APP_SERVER_AUTH_PASSWORD=${APP_PASSWORD:-OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw}
149EOL
150
Victor Moralesdd074802017-07-26 16:06:35 -0500151 ARGS=""
152
Victor Morales89ce3212017-06-16 18:32:48 -0500153 docker rm -f model-loader-service
154 if [[ "$build_image" == "True" ]]; then
Victor Morales8e08c872017-08-21 16:15:57 -0500155 build_docker_image $aai_src_folder/model-loader/
Victor Moralesdd074802017-07-26 16:06:35 -0500156 ARGS+="--env-file /etc/model-loader.conf model-loader"
Victor Morales89ce3212017-06-16 18:32:48 -0500157 else
158 pull_openecomp_image model-loader
Victor Moralesdd074802017-07-26 16:06:35 -0500159 ARGS+="--name=model-loader-service -it -d --env-file /etc/model-loader.conf $nexus_docker_repo/openecomp/model-loader:$docker_version"
Victor Morales89ce3212017-06-16 18:32:48 -0500160 fi
Victor Moralesdd074802017-07-26 16:06:35 -0500161 docker run ${ARGS}
Victor Morales89ce3212017-06-16 18:32:48 -0500162}
163
Victor Morales158c18c2017-08-06 11:23:15 -0500164# _wait_for_sdc() - Function that determines if SDC is up and running
165function _wait_for_sdc {
Victor Morales89ce3212017-06-16 18:32:48 -0500166 if [[ -s "/opt/config/sdc_ip_addr.txt" ]]; then
167 SDC_IP_ADDR=$(cat /opt/config/sdc_ip_addr.txt)
168 else
169 SDC_IP_ADDR="10.0.3.1"
170 fi
171
172 # Run Health Check against SDC and verify that all five components are up
173 RES=$(curl http://$SDC_IP_ADDR:8181/sdc1/rest/healthCheck | grep -c "OK")
174 while [[ $RES -lt 5 ]]; do
175 RES=$(curl http://$SDC_IP_ADDR:8181/sdc1/rest/healthCheck | grep -c "OK")
176 done
177}
178
179# init_aai() - Function that initialize AAI services
180function init_aai {
Victor Morales455bece2017-07-31 18:40:39 -0500181 install_hadoop
182 install_haproxy
Victor Morales89ce3212017-06-16 18:32:48 -0500183
Idan Amit1690e082017-08-20 08:58:14 +0300184 if [[ "$clone_repo" == "True" ]]; then
185 clone_all_aai_repos
186 if [[ "$compile_repo" == "True" ]]; then
187 compile_aai_repos
188 fi
189 fi
Victor Morales455bece2017-07-31 18:40:39 -0500190
191 setup_titan
Victor Morales14613122017-08-22 19:51:35 -0500192 #start_aai_microservices
Victor Morales455bece2017-07-31 18:40:39 -0500193
194 mkdir -p /opt/openecomp/aai/logs
195 mkdir -p /opt/openecomp/aai/data
Victor Moralesdd074802017-07-26 16:06:35 -0500196
Victor Morales89ce3212017-06-16 18:32:48 -0500197 install_hbase
198
199 # Wait 3 minutes before instantiating the A&AI container
200 sleep 180
201
202 install_ajsc_aai
Victor Morales158c18c2017-08-06 11:23:15 -0500203 _wait_for_sdc
Victor Morales6a919972017-09-28 18:29:54 -0700204 if [[ "$skip_install" == "False" ]]; then
205 install_model_loader
206 fi
Victor Morales89ce3212017-06-16 18:32:48 -0500207}