Add smoke/health tests to OSM stage_3

Change-Id: I11b5aab4d4fcd496e47ff8d483ebd4ad771cd780
Signed-off-by: Mike Marchetti <mmarchetti@sandvine.com>
diff --git a/docker/NBI/Dockerfile b/docker/NBI/Dockerfile
index 08f4ee5..0531f3a 100644
--- a/docker/NBI/Dockerfile
+++ b/docker/NBI/Dockerfile
@@ -66,5 +66,8 @@
 ENV OSMNBI_LOG_FILE        /app/log/nbi.log
 ENV OSMNBI_LOG_LEVEL       DEBUG
 
+HEALTHCHECK --interval=5s --timeout=2s --retries=12 \
+  CMD curl -k https://localhost:9999/osm/ | grep Welcome || exit 1
+
 # Run app.py when the container launches
 CMD ["python3", "/usr/lib/python3/dist-packages/osm_nbi/nbi.py"]
diff --git a/docker/RO/Dockerfile b/docker/RO/Dockerfile
index cfccb68..0607d91 100644
--- a/docker/RO/Dockerfile
+++ b/docker/RO/Dockerfile
@@ -47,4 +47,6 @@
 ENV RO_DB_NAME=mano_db
 ENV RO_DB_OVIM_NAME=mano_vim_db
 
+HEALTHCHECK --interval=5s --timeout=2s --retries=12 \
+  CMD curl --silent --fail localhost:9090/openmano/tenants || exit 1
 CMD /bin/RO/start.sh
diff --git a/installers/docker/docker-compose.yaml b/installers/docker/docker-compose.yaml
index fefd66e..c09de86 100644
--- a/installers/docker/docker-compose.yaml
+++ b/installers/docker/docker-compose.yaml
@@ -18,6 +18,11 @@
 #      - "2181:2181"
     networks:
       - netOSM
+    healthcheck:
+      test: echo stat | nc localhost 2181
+      interval: 10s
+      timeout: 10s
+      retries: 3
   kafka:
     image: wurstmeister/kafka:${KAFKA_TAG:-latest}
     ports:
diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy
index 65b9dcc..64a71a5 100644
--- a/jenkins/ci-pipelines/ci_stage_3.groovy
+++ b/jenkins/ci-pipelines/ci_stage_3.groovy
@@ -35,8 +35,8 @@
         booleanParam(defaultValue: false, description: '', name: 'SAVE_CONTAINER_ON_PASS'),
         booleanParam(defaultValue: false, description: '', name: 'DO_STAGE_4'),
         booleanParam(defaultValue: true, description: '',  name: 'DO_BUILD'),
-        booleanParam(defaultValue: false, description: '', name: 'DO_INSTALL'),
-        booleanParam(defaultValue: false, description: '', name: 'DO_SMOKE'),
+        booleanParam(defaultValue: true, description: '', name: 'DO_INSTALL'),
+        booleanParam(defaultValue: true, description: '', name: 'DO_SMOKE'),
         booleanParam(defaultValue: false, description: '', name: 'SAVE_ARTIFACTS_OVERRIDE'),
     ])
 ])
@@ -49,6 +49,15 @@
        """
 }
 
+def run_systest(stackName,tagName,testName) {
+    sh """
+        tempdir=$(mktemp -d)
+        docker run -ti --network net${stackName} -v $tempdir:/usr/share/osm-devops/systest/reports osm/osmclient:${tagName} make -C /usr/share/osm-devops/systest ${testName}
+        cp $tempdir/*.xml .
+       """
+    junit  '*.xml'
+}
+
 node("${params.NODE}") {
 
     sh 'env'
@@ -209,9 +218,11 @@
         }
 
         if ( params.DO_SMOKE ) {
+            stage("OSM Health") {
+                sh "installers/osm_health.sh -s ${container_name}"
+            }
             stage("Smoke") {
-                ci_helper.systest_run(container_name, 'smoke')
-                junit '*.xml'
+                run_systest(container_name,container_name,"smoke")
             }
         }