VOL-617 - ability to build without VM

Change-Id: Iec79d66b7ab98a5421eabe7819fa6325ff6690ce
diff --git a/tests/itests/docutests/build_md_test.py b/tests/itests/docutests/build_md_test.py
index 57c273a..a6f5450 100644
--- a/tests/itests/docutests/build_md_test.py
+++ b/tests/itests/docutests/build_md_test.py
@@ -40,12 +40,14 @@
 LOCAL_CONSUL = "localhost:8500"
 LOCAL_CONSUL_URL = "http://%s" % LOCAL_CONSUL
 LOCAL_CONSUL_DNS = "@localhost -p 8600"
+DOCKER_COMPOSE_PROJECT = "compose"
 DOCKER_COMPOSE_FILE = "compose/docker-compose-docutests.yml"
 DOCKER_COMPOSE_FILE_SERVICES_COUNT = 7
 
 command_defs = dict(
     makefile_fetch_images="grep \"docker pull\" Makefile",
     make="make",
+    make_clean_build="make -e DOCKER_CACHE_ARG=--no-cache build",
     make_fetch="make fetch",
     remove_env_directory="rm -rf venv-linux",
     make_clean="make clean",
@@ -53,9 +55,10 @@
     docker_stop="docker stop",
     docker_rm="docker rm",
     fluentd_logs="less /tmp/fluentd/data.log",
-    docker_voltha_logs="docker logs -f compose_voltha_1",
-    docker_compose_logs="docker-compose -f {} logs".format(
-        DOCKER_COMPOSE_FILE),
+    docker_voltha_logs="docker-compose -p {} -f {} logs voltha"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
+    docker_compose_logs="docker-compose -p {} -f {} logs"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
     docker_stop_and_remove_all_containers="docker stop `docker ps -q` ; "
                                           "docker rm `docker ps -a -q`",
     docker_start_voltha="docker run -ti --rm voltha/voltha",
@@ -66,29 +69,31 @@
                          "compose_consul_1 | jq -r "
                          "'.[0].NetworkSettings.Networks."
                          "compose_default.IPAddress'",
-    docker_compose_start_consul="docker-compose -f {} up -d "
-                                "consul".format(DOCKER_COMPOSE_FILE),
-    docker_compose_start_all="docker-compose -f {} up -d "
-        .format(DOCKER_COMPOSE_FILE),
-    docker_compose_stop="docker-compose -f {} stop"
-        .format(DOCKER_COMPOSE_FILE),
-    docker_compose_rm_f="docker-compose -f {} rm -f"
-        .format(DOCKER_COMPOSE_FILE),
-    docker_compose_ps="docker-compose -f {} ps".format(DOCKER_COMPOSE_FILE),
+    docker_compose_start_consul="docker-compose -p {} -f {} up -d "
+                                "consul".format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
+    docker_compose_start_all="docker-compose -p {} -f {} up -d "
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
+    docker_compose_stop="docker-compose -p {} -f {} stop"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
+    docker_compose_rm_f="docker-compose -p {} -f {} rm -f"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
+    docker_compose_down="docker-compose -p {} -f {} down"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
+    docker_compose_ps="docker-compose -p {} -f {} ps"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
     docker_ps="docker ps",
     docker_ps_count="docker ps -q | wc -l",
-    docker_compose_is_consul_up="docker-compose -f {} ps | grep consul"
-        .format(DOCKER_COMPOSE_FILE),
+    docker_compose_is_consul_up="docker-compose -p {} -f {} ps | grep consul"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
     consul_get_leader_ip_port="curl -s {}/v1/status/leader | jq -r ."
         .format(LOCAL_CONSUL_URL),
-    docker_compose_services_running="docker-compose -f {} ps -q"
-        .format(DOCKER_COMPOSE_FILE),
-    docker_compose_services_running_count="docker-compose -f {} ps -q | "
-                                          "grep Up "
-                                          "| wc -l".format(
-        DOCKER_COMPOSE_FILE),
-    docker_compose_services="docker-compose -f {} config --services"
-        .format(DOCKER_COMPOSE_FILE),
+    docker_compose_services_running="docker-compose -p {} -f {} ps -q"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
+    docker_compose_services_running_count="docker-compose -p {} -f {} ps -q | "
+                                          "grep Up | wc -l"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
+    docker_compose_services="docker-compose -p {} -f {} config --services"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
     consul_get_services="curl -s {}/v1/catalog/services | jq -r ."
         .format(LOCAL_CONSUL_URL),
     consul_get_srv_voltha_health="curl -s {}/v1/catalog/service/voltha-health "
@@ -103,11 +108,12 @@
                                    "voltha-health.service.consul SRV | "
                                    " awk \'{{print $3}}'"
         .format(LOCAL_CONSUL_DNS),
-    docker_compose_scale_voltha_to_10="docker-compose -f {} scale "
-                                      "voltha=10".format(DOCKER_COMPOSE_FILE),
-    docker_compose_scaled_voltha_ps="docker-compose -f {} ps voltha | "
+    docker_compose_scale_voltha_to_10="docker-compose -p {} -f {} scale "
+                                      "voltha=10"
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
+    docker_compose_scaled_voltha_ps="docker-compose -p {} -f {} ps voltha | "
                                     "grep Up | wc -l"
-        .format(DOCKER_COMPOSE_FILE),
+        .format(DOCKER_COMPOSE_PROJECT, DOCKER_COMPOSE_FILE),
     consul_verify_voltha_registration="curl -s {}"
                                       "/v1/kv/service/voltha/members?recurse |"
                                       " jq -r .".format(LOCAL_CONSUL_DNS)
@@ -195,14 +201,14 @@
                   "secs \n\n".format(time.time() - t0)
 
     def test_03_make(self):
-        print "Test_03_make_Start:------------------"
+        print "Test_03_make_build_Start:------------------"
         t0 = time.time()
         try:
-            cmd = command_defs['make']
+            cmd = command_defs['make_clean_build']
             out, err, rc = run_command_to_completion_with_raw_stdout(cmd)
             self.assertEqual(rc, 0)
         finally:
-            print "Test_03_make_Start:------------------ took {} secs \n\n" \
+            print "Test_03_make_build_Start:------------------ took {} secs \n\n" \
                 .format(time.time() - t0)
 
     def test_04_run_voltha_standalone_without_consul(self):
@@ -368,7 +374,12 @@
         try:
             # Pre-test - clean up all running docker containers
             print "Pre-test: Removing all running containers ..."
-            self._stop_and_remove_all_containers()
+            cmd = command_defs['docker_compose_stop']
+            _, err, rc = run_command_to_completion_with_raw_stdout(cmd)
+            self.assertEqual(rc, 0)
+            cmd = command_defs['docker_compose_rm_f']
+            _, err, rc = run_command_to_completion_with_raw_stdout(cmd)
+            self.assertEqual(rc, 0)
 
             # get a list of services in the docker-compose file
             print "Getting list of services in docker compose file ..."
@@ -486,8 +497,7 @@
                                'registrator_1', 'kafka_1', 'zookeeper_1',
                                'ofagent_1', 'netconf_1']
             cmd = command_defs['docker_compose_logs']
-            docker_compose_logs = run_long_running_command_with_timeout(cmd, 5,
-                                                                        0)
+            docker_compose_logs = run_long_running_command_with_timeout(cmd, 5, 0)
             intersected_logs = [l for l in expected_output if
                                 l in docker_compose_logs]
             self.assertEqual(len(intersected_logs), len(expected_output))
@@ -499,7 +509,7 @@
             expected_output = ['coordinator._renew_session', 'main.heartbeat']
             cmd = command_defs['docker_voltha_logs']
             docker_voltha_logs = run_long_running_command_with_timeout(cmd,
-                                                                       0.5, 3)
+                                                                       0.5, 5)
             intersected_logs = [l for l in expected_output if
                                 l in docker_voltha_logs]
             self.assertEqual(len(intersected_logs), len(expected_output))
@@ -507,7 +517,9 @@
         finally:
             print "Stopping all containers ..."
             # clean up all created containers for this test
-            self._stop_and_remove_all_containers()
+            #self._stop_and_remove_all_containers()
+            cmd = command_defs['docker_compose_down']
+            _, err, rc = run_command_to_completion_with_raw_stdout(cmd)
 
             print "Test_07_start_all_containers_End:------------------ took {}" \
                   " secs \n\n".format(time.time() - t0)