Fix proxy usage for docker external 63/19563/1
authorVictor Morales <victor.morales@intel.com>
Wed, 18 Oct 2017 16:29:55 +0000 (09:29 -0700)
committerVictor Morales <victor.morales@intel.com>
Wed, 18 Oct 2017 16:36:23 +0000 (09:36 -0700)
The process that retrieves Docker images hosted externally was
missing a step in its configuration. This change fix the
configuration and unblock the pending Unit Tests.

Change-Id: I5a6b39086eb806bab5bb2667092a154e230d33ef
Signed-off-by: Victor Morales <victor.morales@intel.com>
Issue-ID: INT-227

bootstrap/vagrant-onap/README.md
bootstrap/vagrant-onap/Vagrantfile
bootstrap/vagrant-onap/lib/_onap_functions
bootstrap/vagrant-onap/lib/dcae
bootstrap/vagrant-onap/lib/functions
bootstrap/vagrant-onap/tests/_test_base
bootstrap/vagrant-onap/tests/test_aai
bootstrap/vagrant-onap/tests/test_functions

index c48190a..e90e0a7 100644 (file)
@@ -1,7 +1,5 @@
 # ONAP on Vagrant
 
-[![Build Status](https://api.travis-ci.org/electrocucaracha/vagrant-onap.svg?branch=master)](https://api.travis-ci.org/electrocucaracha/vagrant-onap)
-
 This vagrant project pretends to collect information about a way to deploy
 and build [ONAP project](https://www.onap.org/) into a development environment.
 
index c10cb0b..dc8b347 100644 (file)
@@ -290,6 +290,7 @@ Vagrant.configure("2") do |config|
       config.proxy.http     = ENV['http_proxy']
       config.proxy.https    = ENV['https_proxy']
       config.proxy.no_proxy = ENV['no_proxy']
+      configuration['socks_proxy'] = ENV['socks_proxy']
     end
 
     if Vagrant.has_plugin?('vagrant-vbguest')
index 18a4659..cedd6f0 100755 (executable)
@@ -12,7 +12,6 @@ function create_configuration_files {
     echo $docker_version > /opt/config/docker_version.txt
 }
 
-# TODO(electrocucaracha): Determine how to use this behind a proxy
 # docker_openecomp_login() - Login to OpenECOMP Docker Hub
 function docker_openecomp_login {
     install_docker
@@ -24,7 +23,7 @@ function pull_openecomp_image {
     local image=$1
     local tag=$2
     docker_openecomp_login
-    pull_docker_image $nexus_docker_repo/openecomp/${image}:$docker_version $tag
+    pull_docker_image $nexus_docker_repo/openecomp/${image}:${docker_version-latest} $tag
     docker logout
 }
 
@@ -33,7 +32,7 @@ function pull_onap_image {
     local image=$1
     local tag=$2
     docker_openecomp_login
-    pull_docker_image $nexus_docker_repo/onap/${image}:$docker_version $tag
+    pull_docker_image $nexus_docker_repo/onap/${image}:${docker_version-latest} $tag
     docker logout
 }
 
index 3e702d9..4995c61 100755 (executable)
@@ -44,7 +44,7 @@ function _build_docker_image {
     install_docker
 
     pushd $src_folder
-    # TODO(electrocucaracha) Workaround for dmmapbc images
+    # NOTE: Workaround for dmmapbc images
     sed -i '/LocalKey/d' Dockerfile
     local docker_build="docker build -t $name -f ./Dockerfile ."
     if [ $http_proxy ]; then
index 8fff0c2..02111fa 100755 (executable)
@@ -100,23 +100,31 @@ function install_maven {
 
 # _configure_docker_settings() - Configures Docker settings
 function _configure_docker_settings {
+    local docker_conf_backup=/tmp/docker.backup
+    local docker_conf=/etc/default/docker
+    local chameleonsocks_filename=chameleonsocks.sh
+
+    cp $docker_conf $docker_conf_backup
     if [ $http_proxy ]; then
-        echo "export http_proxy=$http_proxy" >> /etc/default/docker
+        echo "export http_proxy=$http_proxy" >> $docker_conf
     fi
     if [ $https_proxy ]; then
-        echo "export https_proxy=$https_proxy" >> /etc/default/docker
+        echo "export https_proxy=$https_proxy" >> $docker_conf
         #If you have a socks proxy, then use that to connect to the nexus repo
         #via a redsocks container
         if [ $socks_proxy ]; then
-            wget https://raw.githubusercontent.com/crops/chameleonsocks/master/chameleonsocks.sh
-            chmod 755 chameleonsocks.sh
+            wget https://raw.githubusercontent.com/crops/chameleonsocks/master/$chameleonsocks_filename
+            chmod 755 $chameleonsocks_filename
             socks=$(echo $socks_proxy | sed -e "s/^.*\///" | sed -e "s/:.*$//")
             port=$(echo $socks_proxy | sed -e "s/^.*://")
-            PROXY=$socks PORT=$port ./chameleonsocks.sh --install
+            PROXY=$socks PORT=$port ./$chameleonsocks_filename --install
+            rm $chameleonsocks_filename
+            cp $docker_conf_backup $docker_conf
         fi
     fi
+    rm $docker_conf_backup
 
-    echo "DOCKER_OPTS=\"-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock\"" >> /etc/default/docker
+    echo "DOCKER_OPTS=\"-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock\"" >> $docker_conf
     usermod -a -G docker vagrant
 }
 
index 155de98..7d0415a 100644 (file)
@@ -15,6 +15,9 @@ function main {
         echo "ok $((i+1)) - test_${covered_functions[$i]}"
 
         # Teardown process
+        if ! is_package_installed docker-ce; then
+            docker images -q | xargs docker rmi -f
+        fi
         dpkg --get-selections > installed-software_new
         sort -o installed-software_new installed-software_new
         apt-get purge -y -qq $(comm -3 installed-software installed-software_new | awk '{print $1}')
index 79d26c8..10777d6 100644 (file)
@@ -8,11 +8,6 @@ covered_functions=(
 "install_hadoop" "install_haproxy" "clone_all_aai_repos" "compile_aai_repos" "setup_titan" "install_hbase" "install_ajsc_aai" "install_model_loader"
 )
 
-# TODO(electrocucaracha): Remove/Modify functions that doesn't support proxy settings
-if [ -z $http_proxy ] & [ -z $https_proxy ]; then
-    covered_functions=(${covered_functions[@]} "install_hbase")
-fi
-
 # test_install_hadoop() - Verify that Hadoop is downloaded and started properly
 function test_install_hadoop {
     install_hadoop
index 17a6631..ee7358a 100644 (file)
@@ -7,14 +7,10 @@ covered_functions=(
 "create_configuration_files" "clone_repo" "install_dev_tools"
 "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"
+"start_ODL" "compile_src" "build_docker_image" "docker_openecomp_login"
+"pull_openecomp_image" "pull_onap_image"
 )
 
-# TODO(electrocucaracha): Remove/Modify functions that doesn't support proxy settings
-if [ -z $http_proxy ] & [ -z $https_proxy ]; then
-    covered_functions=(${covered_functions[@]} "docker_openecomp_login" "pull_openecomp_image")
-fi
-
 # test_create_configuration_files() - Verify the creation of a configuration files
 function test_create_configuration_files {
     create_configuration_files
@@ -33,14 +29,22 @@ function test_docker_openecomp_login {
     docker_openecomp_login
 }
 
-# test_pull_openecomp_image() - Verify the addition of a OpenECOMP container image
+# test_pull_openecomp_image() - Verify the OpenECOMP container image pulling process
 function test_pull_openecomp_image {
-    pull_openecomp_image portalapps ep:1610-1
+    local image_name=portal-apps
+    unset docker_version
+    pull_openecomp_image $image_name
 
-    asserts_installed_package docker-ce
-    asserts_image ep:1610-1
+    asserts_image $nexus_docker_repo/openecomp/$image_name
+}
 
-    docker rmi -f ep:1610-1
+# test_pull_onap_image() - Verify the ONAP cointainer pulling process
+function test_pull_onap_image {
+    local image_name=portal-apps
+    unset docker_version
+    pull_onap_image $image_name
+
+    asserts_image $nexus_docker_repo/onap/$image_name
 }
 
 # test_clone_repo() - Verify cloning and pulling source code from repositories
@@ -117,8 +121,6 @@ function test_pull_docker_image {
     pull_docker_image $image
 
     asserts_image $image
-
-    docker rmi -f $image
 }
 
 # test_install_docker_compose() - Verify the correct installation of Docker Compose tool
@@ -161,8 +163,6 @@ function test_build_docker_image {
     build_docker_image $git_src_folder/ccsdk/distribution/ubuntu docker
 
     asserts_image onap/ccsdk-ubuntu-image
-
-    docker rmi -f onap/ccsdk-ubuntu-image
 }
 
 if [ "$1" != '*' ]; then