Add kolla internal vip to no_proxy

The internal vip value is calculated at deploy time when
bringing up the OpenStack VM, and isn't able to be included
in the proxy values in the Vagrantfile. Because of this, we
need to add it to no_proxy after it's calculated so that users
and other services can access it in a proxy environment.

Signed-off-by: Nathaniel Potter <nathaniel.potter@intel.com>
Issue-ID: INT-383
Change-Id: Ifed792a4f7e6f4f5a227848486e8165be4a30fc7
diff --git a/bootstrap/vagrant-onap/lib/functions b/bootstrap/vagrant-onap/lib/functions
index c2c6d76..47966f1 100755
--- a/bootstrap/vagrant-onap/lib/functions
+++ b/bootstrap/vagrant-onap/lib/functions
@@ -382,3 +382,17 @@
     mount ${dev_name}1 $mount_dir
     echo "${dev_name}1  $mount_dir           ext4    errors=remount-ro,noatime,barrier=0 0       1" >> /etc/fstab
 }
+
+# add no_proxy values to environment, used for internal IPs generated at deploy time
+function add_no_proxy_value {
+    if [[ `grep "no_proxy" /etc/environment` ]]; then
+        sed -i.bak "s/^no_proxy.*$/&,$1/" /etc/environment
+    else
+        echo "no_proxy=$1" >> /etc/environment
+    fi
+    if [[ `grep "NO_PROXY" /etc/environment` ]]; then
+        sed -i.bak "s/^NO_PROXY.*$/&,$1/" /etc/environment
+    else
+        echo "NO_PROXY=$1" >> /etc/environment
+    fi
+}
diff --git a/bootstrap/vagrant-onap/lib/openstack b/bootstrap/vagrant-onap/lib/openstack
index 205d7ae..5e51890 100755
--- a/bootstrap/vagrant-onap/lib/openstack
+++ b/bootstrap/vagrant-onap/lib/openstack
@@ -32,6 +32,10 @@
     ip_address=$(ip route get $network_id | awk '{ print $6; exit }')
     internal_vip_address=$(get_next_ip $ip_address)
 
+    if [[ `env | grep -i "proxy"` ]]; then
+        add_no_proxy_value $internal_vip_address
+    fi
+
     mkdir -p $kolla_config
     cp /var/onap/files/globals.yml $kolla_globals
     cp /var/onap/files/passwords.yml $kolla_passwords
diff --git a/bootstrap/vagrant-onap/tests/asserts b/bootstrap/vagrant-onap/tests/asserts
index 8eda3ce..441b9f0 100755
--- a/bootstrap/vagrant-onap/tests/asserts
+++ b/bootstrap/vagrant-onap/tests/asserts
@@ -77,6 +77,16 @@
     fi
 }
 
+# asserts_env_set() - Function that verities that an environment variable is set
+function asserts_env_set {
+    local variable=$1
+    local error_msg=${2:-"$variable wasn't set"}
+
+    if [ -z ${variable+x} ]; then
+        raise_error $error_msg
+    fi
+}
+
 # raise_error() - Function that prints and exits the execution
 function raise_error {
     echo $@
diff --git a/bootstrap/vagrant-onap/tests/test_functions b/bootstrap/vagrant-onap/tests/test_functions
index 9411b46..dd48215 100755
--- a/bootstrap/vagrant-onap/tests/test_functions
+++ b/bootstrap/vagrant-onap/tests/test_functions
@@ -8,7 +8,7 @@
 "configure_bind" "install_java" "install_maven" "install_nodejs" "install_python"
 "install_docker" "pull_docker_image" "install_docker_compose" "configure_service"
 "start_ODL" "compile_src" "build_docker_image" "docker_openecomp_login"
-"pull_openecomp_image" "pull_onap_image" "coverity_repos"
+"pull_openecomp_image" "pull_onap_image" "coverity_repos" "add_no_proxy_value"
 )
 
 # test_create_configuration_files() - Verify the creation of a configuration files
@@ -176,6 +176,14 @@
     popd
 }
 
+# test_add_no_proxy_value - Verify that the no_proxy value is correctly set
+function test_add_no_proxy_value {
+    local ip="172.16.0.3"
+    add_no_proxy_value $ip
+
+    asserts_env_set no_proxy
+}
+
 if [ "$1" != '*' ]; then
     unset covered_functions
     covered_functions=$1