Fixed Setup Titan AAI process

The way to configure properties files was wrong causing problems
during the DB creation.  This change files that function as well
as others related with that function.

Change-Id: I5cc637e170b64e15fff5de4cb04bdcbd2506ea87
Signed-off-by: Victor Morales <victor.morales@intel.com>
Issue-Id: INT-18
diff --git a/bootstrap/vagrant-onap/lib/aai b/bootstrap/vagrant-onap/lib/aai
index cbf5c5f..faf916d 100755
--- a/bootstrap/vagrant-onap/lib/aai
+++ b/bootstrap/vagrant-onap/lib/aai
@@ -33,14 +33,18 @@
 
 # install_haproxy() - Function that install HAProxy
 function install_haproxy {
+    if is_package_installed haproxy; then
+        return
+    fi
+    install_package software-properties-common
+    add-apt-repository -y ppa:vbernat/haproxy-1.7
     install_package haproxy
-    sed -i "s|ENABLED=0|ENABLED=1|g" /etc/default/haproxy
-#    cp /var/onap/files/haproxy.cfg /etc/haproxy/
+    cp /var/onap/files/haproxy.cfg /etc/haproxy/
     cp /var/onap/files/aai.pem /etc/ssl/private/
     chmod 640 /etc/ssl/private/aai.pem
     chown root:ssl-cert /etc/ssl/private/aai.pem
     mkdir /usr/local/etc/haproxy
-    echo "127.0.0.1 localhost aai-traversal.api.simpledemo.openecomp.org aai-resources.api.simpledemo.openecomp.org" >> /etc/hosts
+    #echo "127.0.0.1 localhost aai-traversal.api.simpledemo.openecomp.org aai-resources.api.simpledemo.openecomp.org" >> /etc/hosts
 
     service haproxy restart
 }
@@ -66,26 +70,28 @@
 
 # setup_titan() - Function that configures AAI services to connect to Hadoop Titan
 function setup_titan {
-    local $subdirectory=bundleconfig-local/etc/appprops
+    local subdirectory="bundleconfig-local/etc/appprops"
     install_python_package crudini
 
-    for dirc in resources/aai-resources traversal/aai-travers; do
+    for dirc in resources/aai-resources traversal/aai-traversal; do
         for file in titan-cached.properties titan-realtime.properties; do
-            crudini --set --existing $aai_src_folder/$dirc/$subdirectory/$file "" storage.backend cassandra
-            crudini --set --existing $aai_src_folder/$dirc/$subdirectory/$file "" storage.hostname localhost
+            crudini --set "$aai_src_folder/$dirc/$subdirectory/$file" "" "storage.backend" "cassandra"
+            crudini --set "$aai_src_folder/$dirc/$subdirectory/$file" "" "storage.hostname" "localhost"
         done
     done
 
-    # Addthe schema to the local isntance
+    # Add the schema to the local isntance
+    compile_src $aai_src_folder/resources/aai-resources/
+    uninstall_packages default-jre openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless
     pushd $aai_src_folder
-    install_java
     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
     popd
 }
 
 # start_aai_microservices() - Function that starts AAI microservices
 function start_aai_microservices {
-    MAVEN_OPTS="-Xms1024m -Xmx5120m -XX:PermSize=2024m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9446,server=y,suspend=n"
+    install_maven
+    export MAVEN_OPTS="-Xms1024m -Xmx5120m -XX:PermSize=2024m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9446,server=y,suspend=n"
     for svc in resources traversal; do
         pushd $aai_src_folder/resources
         mvn -P runAjsc
diff --git a/bootstrap/vagrant-onap/lib/commons b/bootstrap/vagrant-onap/lib/commons
index 019eeb5..26e2cc2 100755
--- a/bootstrap/vagrant-onap/lib/commons
+++ b/bootstrap/vagrant-onap/lib/commons
@@ -31,6 +31,13 @@
     dpkg -s "$@" > /dev/null 2> /dev/null
 }
 
+# install_packages() - Install a list of packages
+function install_packages {
+    local package=$@
+    update_repos
+    apt-get install -y -qq $package
+}
+
 # install_package() - Install specific package if doesn't exist
 function install_package {
     local package=$1
@@ -39,3 +46,17 @@
         apt-get install -y -qq $package
     fi
 }
+
+# uninstall_packages() - Uninstall a list of packages
+function uninstall_packages {
+    local packages=$@
+    apt-get purge -y -qq $packages
+}
+
+# uninstall_package() - Uninstall specific package if exists
+function uninstall_package {
+    local package=$1
+    if is_package_installed $package; then
+        apt-get purge -y -qq $package
+    fi
+}
diff --git a/bootstrap/vagrant-onap/lib/functions b/bootstrap/vagrant-onap/lib/functions
index 709d7eb..16e7741 100755
--- a/bootstrap/vagrant-onap/lib/functions
+++ b/bootstrap/vagrant-onap/lib/functions
@@ -58,15 +58,12 @@
 
 # install_dev_tools() - Install basic dependencies
 function install_dev_tools {
-    install_package apt-transport-https
-    install_package ca-certificates
-    install_package curl
+    install_packages apt-transport-https ca-certificates curl
 }
 
 # _install_bind() - Install bind utils
 function _install_bind {
-    install_package bind9
-    install_package bind9utils
+    install_packages bind9 bind9utils
 }
 
 # install_java() - Install java binaries
@@ -76,6 +73,10 @@
     fi
     install_package software-properties-common
     add-apt-repository -y ppa:openjdk-r/ppa
+
+    # Remove Java 7
+    uninstall_packages default-jre openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless
+
     install_package openjdk-8-jdk
     # ca-certificates-java is not a dependency in the Oracle JDK/JRE so this must be explicitly installed.
     /var/lib/dpkg/info/ca-certificates-java.postinst configure
@@ -91,8 +92,8 @@
     add-apt-repository -y ppa:andrei-pozolotin/maven3
     install_package maven3
 
-    # Force Maven3 to use jdk8
-    apt-get purge openjdk-7-jdk -y
+    # Remove Java 7
+    uninstall_package openjdk-7-jdk
 
     _configure_maven
 }
@@ -124,8 +125,7 @@
 
 # install_python() - Install Python 2.7 and other tools necessary for development.
 function install_python {
-    install_package python2.7
-    install_package python-dev
+    install_packages python2.7 python-dev
 }
 
 # _install_pip() - Install Python Package Manager
diff --git a/bootstrap/vagrant-onap/tests/test_aai b/bootstrap/vagrant-onap/tests/test_aai
index 713238d..0fa82d5 100644
--- a/bootstrap/vagrant-onap/tests/test_aai
+++ b/bootstrap/vagrant-onap/tests/test_aai
@@ -54,7 +54,6 @@
 # test_compile_aai_repos() - Verify that all the AAI Repositories complile properly
 function test_compile_aai_repos {
     clone_all_aai_repos
-    export compile_repo="True"
     compile_aai_repos
 
     asserts_file_exist $aai_src_folder/aai-common/aai-annotations/target/aai-annotations-1.1.0-SNAPSHOT.jar
@@ -84,13 +83,19 @@
 
 # test_setup_titan() - Verify that Titan Cassandra DB is up and running
 function test_setup_titan {
+    clone_all_aai_repos
+    install_hadoop
     setup_titan
+
+    # TODO(electrocucaracha): Validate the DB creation
 }
 
 # test_start_aai_microservices() - Verify that AAI Resources and Traversal images works
 function test_start_aai_microservices {
     clone_all_aai_repos
     start_aai_microservices
+
+    # TODO(electrocucaracha): Investigate how to run AAI microservices in background
 }
 
 # test_install_hbase() - Verify that AAI HBase service is up and running properly