diff --git a/ansible/test/bin/ci-molecule.sh b/ansible/test/bin/ci-molecule.sh
index be598a4..7859c8d 100755
--- a/ansible/test/bin/ci-molecule.sh
+++ b/ansible/test/bin/ci-molecule.sh
@@ -30,7 +30,7 @@
 LOCAL_PATH=$(readlink -f "$SCRIPT_DIR")
 
 ROLE_PATH=$1
-MOLECULE_CONTAINER=${MOLECULE_CONTAINER:-true}
+MOLECULE_CONTAINER=${MOLECULE_CONTAINER:-false}
 
 echo "Build all pre-build images"
 ${LOCAL_PATH}/../images/docker/build-all.sh
diff --git a/ansible/test/bin/install-molecule.sh b/ansible/test/bin/install-molecule.sh
index f5350df..72b0793 100755
--- a/ansible/test/bin/install-molecule.sh
+++ b/ansible/test/bin/install-molecule.sh
@@ -33,7 +33,7 @@
 VENV_PATH=${VENV_PATH:-~/molecule_venv}
 
 # Create virtual env
-python3 -m venv ${VENV_PATH}
+python3.6 -m venv ${VENV_PATH}
 
 # Activate virtual env
 source ${VENV_PATH}/bin/activate
diff --git a/ansible/test/molecule-docker/Dockerfile b/ansible/test/molecule-docker/Dockerfile
index 6181731..5c2343c 100644
--- a/ansible/test/molecule-docker/Dockerfile
+++ b/ansible/test/molecule-docker/Dockerfile
@@ -14,7 +14,7 @@
     addgroup -g ${GROUP_ID} ${DOCKER_USER} && \
     adduser -D -u ${USER_ID} -G ${DOCKER_USER} ${DOCKER_USER} && \
     # Add user to same docker group as in docker_host to be able to use docker driver as sudo
-    groupadd docker-host -g ${DOCKER_GROUP_ID} && \
+    groupadd docker-host -f -g ${DOCKER_GROUP_ID} && \
     usermod -aG ${DOCKER_GROUP_ID} ${DOCKER_USER} \
 ;fi
 
diff --git a/offline-installer-review.sh b/offline-installer-review.sh
index ab327ad..3530d8f 100755
--- a/offline-installer-review.sh
+++ b/offline-installer-review.sh
@@ -1,5 +1,4 @@
 #! /usr/bin/env bash
-
 #   COPYRIGHT NOTICE STARTS HERE
 #
 #   Copyright 2018 © Samsung Electronics Co., Ltd.
@@ -17,45 +16,80 @@
 #   limitations under the License.
 #
 #   COPYRIGHT NOTICE ENDS HERE
+###############################################################################
+# This script performs Jenkins Change Verification for ONAP Offline Installer #
+# No parameters are expected                                                  #
+###############################################################################
 
-### This script performs Jenkins Change Verification for ONAP Offline Installer
-# No parameters are expected
-###
-#######################################################################
-#                           MAIN                                      #
-#######################################################################
+function prep_ubuntu_16_04_for_molecule() {
+  sudo killall apt apt-get
+  sudo apt-get --assume-yes install software-properties-common
+  sudo add-apt-repository  --yes  ppa:deadsnakes/ppa
+  sudo apt update
+  sudo apt install --assume-yes python3.6
+  sudo apt install --assume-yes python3.6-venv
+}
+
+function run_molecule() {
+  prep_ubuntu_16_04_for_molecule
+  local roles=("$@")
+  local MOLECULE_RC
+  for role in ${roles[@]}
+    do
+      if `find ${role} -name molecule.yml | grep -q '.*'`; then
+        ./ansible/test/bin/ci-molecule.sh ${role}
+        MOLECULE_RC=$?
+        if [ ${MOLECULE_RC} -ne "0" ]; then FAILED_ROLES+=(${role}); fi
+      else
+        echo "[WARNING] ---------- THERE ARE NO TESTS DEFINED FOR  ${role} ----------"
+      fi
+  done
+}
+
+#######################################################################$
+#                           MAIN                                      #$
+#######################################################################$
+FAILED_ROLES=()
+
+#if ansible role was changed$$
+ROLE_CHANGES=(`git diff  HEAD^ HEAD --name-only | grep "ansible/role" | cut -f 1-3 -d "/" | sort -u`)
+if [ -z "${ROLE_CHANGES}" ];  then
+  echo "NO ANSIBLE ROLE TESTS REQUIRED"
+else
+  run_molecule "${ROLE_CHANGES[@]}"
+fi
+
 #if ansible was changed
 
-    if `git diff  HEAD^ HEAD --name-only | grep -q "ansible/test"`;
-        then echo "TO DO: FULL ANSIBLE TEST" ;
-    else
-      ROLE_CHANGES=(`git diff  HEAD^ HEAD --name-only | grep "ansible/role" | cut -f 1-3 -d "/" | sort | uniq`)
-      if [ -z "${ROLE_CHANGES}" ];  then
-        echo "NO ANSIBLE TESTS REQUIRED"
-      else
-        for i in ${ROLE_CHANGES[@]}
-        do
-          sudo ./ansible/test/bin/ci-molecule.sh ${i}
-          MOLECULE_RC=$?
-          if [ ${MOLECULE_RC} -ne "0" ]; then echo "MOLECULE TEST FAILED FOR ${i};";exit 1; fi
-        done
-      fi
-    fi
-
+if `git diff  HEAD^ HEAD --name-only | grep -q "ansible/test"`; then
+  PLAYBOOKS=(`find ansible/test -name "play-*"`)
+  run_molecule "${PLAYBOOKS[@]}"
+else
+  echo "NO FULL ANSIBLE TEST REQUIRED";
+fi
 
 #if build was changed
 
-    if `git diff  HEAD^ HEAD --name-only | grep -q "build"`;
-        then echo "TO DO: BUILD TEST" ;
-    else
-        echo "NO BUILD TEST REQUIRED"
-    fi
+if `git diff  HEAD^ HEAD --name-only | grep -q "build"`; then
+  echo "TO DO: BUILD TEST" ;
+else
+  echo "NO BUILD TEST REQUIRED"
+fi
 
 #if documentation was changed
 
-    if `git diff  HEAD^ HEAD --name-only | grep -q "docs"`;
-        then echo "TO DO: DOC TEST";
-    else
-        echo "NO DOC TEST REQUIRED"
-    fi
+if `git diff  HEAD^ HEAD --name-only | grep -q "docs"`; then
+  echo "TO DO: DOC TEST";
+else
+  echo "NO DOC TEST REQUIRED"
+fi
+
+#SUMMARY RESULTS
+
+if [ -z ${FAILED_ROLES}  ]; then
+  echo "All verification steps passed"
+else
+  echo "Verification failed for ${FAILED_ROLES[*]}"
+  exit 1
+fi
 
