Update AAI instructions
[integration.git] / bootstrap / vagrant-onap / lib / aai
1 #!/bin/bash
2
3 source /var/onap/functions
4
5 hbase_version=1.2.0
6
7 # install_hadoop() - Function that installs Hadoop
8 function install_hadoop {
9     local release=titan
10     local version=1.0.0
11     local filename=$release-$version-hadoop1
12     local dest_folder=/opt/hadoop/current
13
14     if [ ! -d $dest_folder ]; then
15         curl http://s3.thinkaurelius.com/downloads/$release/$filename.zip -o /tmp/${filename}.zip
16         install_package unzip
17         mkdir -p $dest_folder
18         unzip /tmp/${filename}.zip -d $dest_folder
19     fi
20
21     pushd $dest_folder/${filename}
22     # Change commitlog_directory and data_file_directories values (https://stackoverflow.com/a/26856246/1707651)
23     sed -i "s|db/cassandra/data|/tmp/data|g" conf/cassandra/cassandra.yaml
24     sed -i "s|db/cassandra/commitlog|/tmp/commitlog|g" conf/cassandra/cassandra.yaml
25
26     install_java
27     ./bin/titan.sh start
28     popd
29 }
30
31 # install_haproxy() - Function that install HAProxy
32 function install_haproxy {
33     if is_package_installed haproxy; then
34         return
35     fi
36     install_package software-properties-common
37     add-apt-repository -y ppa:vbernat/haproxy-1.7
38     update_repos
39     install_package haproxy
40     cp /var/onap/files/haproxy.cfg /etc/haproxy/
41     cp /var/onap/files/aai.pem /etc/ssl/private/
42     chmod 640 /etc/ssl/private/aai.pem
43     chown root:ssl-cert /etc/ssl/private/aai.pem
44     mkdir -p /usr/local/etc/haproxy
45     #echo "127.0.0.1 localhost aai-traversal.api.simpledemo.openecomp.org aai-resources.api.simpledemo.openecomp.org" >> /etc/hosts
46
47     service haproxy restart
48 }
49
50 # compile_aai_repos() - Function that compiles AAI source repo.
51 function compile_aai_repos {
52     local repos="aai/aai-common aai/resources aai/logging-service aai/traversal"
53     if [[ "$compile_repo" == "True" ]]; then
54         repos="${repos[aai]}"
55     fi
56
57     for repo in ${repos[@]}; do
58         compile_src ${src_folders[aai]}${repo#*aai}
59     done
60 }
61
62 # setup_titan() - Function that configures AAI services to connect to Hadoop Titan
63 function setup_titan {
64     local subdirectory="bundleconfig-local/etc/appprops"
65     install_python_package crudini
66
67     for dirc in resources/aai-resources traversal/aai-traversal; do
68         for file in titan-cached.properties titan-realtime.properties; do
69             crudini --set "${src_folders[aai]}/$dirc/$subdirectory/$file" "" "storage.backend" "cassandra"
70             crudini --set "${src_folders[aai]}/$dirc/$subdirectory/$file" "" "storage.hostname" "localhost"
71         done
72     done
73
74     # Add the schema to the local instance
75     compile_src ${src_folders[aai]}/resources/aai-resources/
76     uninstall_packages default-jre openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless
77     pushd ${src_folders[aai]}
78     java -DAJSC_HOME=${src_folders[aai]}/resources/aai-resources -DBUNDLECONFIG_DIR="bundleconfig-local" -cp aai-common/aai-core/target/aai-core-*.jar:resources/aai-resources/target/aai-resources.jar:resources/aai-resources/target/userjars/* org.onap.aai.dbgen.GenTester
79     popd
80 }
81
82 # _start_data_managment() - Funtion that start a data management service
83 function _start_data_managment {
84     local service=$1
85     local debug_port=$2
86
87     install_maven
88     pushd ${src_folders[aai]}/$service
89     export MAVEN_OPTS="-Xms1024m -Xmx5120m -XX:PermSize=2024m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=$debug_port,server=y,suspend=n"
90     mvn -P runAjsc &
91     popd
92 }
93
94 # start_aai_microservices() - Function that starts AAI microservices
95 function start_aai_microservices {
96     _start_data_managment resources 9446
97     sleep 360
98     _start_data_managment traversal 9447
99 }
100
101 # install_aai() - Install AAI Services
102 function install_aai {
103     install_docker_compose
104     pushd ${src_folders[aai]}/test-config
105     ./deploy_vm2.sh
106     ./deploy_vm1.sh
107     popd
108 }
109
110 # get_aai_images() - Function that pulls or creates AAI docker images
111 function get_aai_images {
112     pull_docker_image elasticsearch:2.4.1
113     docker_openecomp_login
114     pull_docker_image ${nexus_docker_repo:-nexus3.onap.org:10001}/aaionap/hbase:${hbase_version}
115
116     if [[ "$build_image" == "True" ]]; then
117         unset MAVEN_OPTS
118         build_docker_image ${src_folders[aai]}/resources/aai-resources
119         build_docker_image ${src_folders[aai]}/traversal/aai-traversal
120         build_docker_image ${src_folders[aai]}/search-data-service
121         build_docker_image ${src_folders[aai]}/data-router
122         build_docker_image ${src_folders[aai]}/model-loader
123         build_docker_image ${src_folders[aai]}/sparky-be
124     else
125         pull_onap_image aai-resources
126         pull_onap_image aai-traversal
127         pull_onap_image search-data-service
128         pull_onap_image data-router
129         pull_onap_image model-loader
130         pull_onap_image sparky-be
131     fi
132 }
133
134 # init_aai() - Function that initialize AAI services
135 function init_aai {
136     install_hadoop
137     install_haproxy
138
139     if [[ "$clone_repo" == "True" ]]; then
140         clone_repos "aai"
141     fi
142     compile_aai_repos
143
144     setup_titan
145     #start_aai_microservices
146
147     if [[ "$skip_get_images" == "False" ]]; then
148         get_aai_images
149     fi
150     if [[ "$skip_install" == "False" ]]; then
151         install_aai
152     fi
153 }