Setup CI gating verify job for emssimulator's swm-netconf module 73/104973/3
authorBartek Grzybowski <b.grzybowski@partner.samsung.com>
Thu, 2 Apr 2020 10:57:07 +0000 (03:57 -0700)
committerBartek Grzybowski <b.grzybowski@partner.samsung.com>
Thu, 2 Apr 2020 11:03:05 +0000 (04:03 -0700)
Change-Id: Idd05e135640e47dd9cb316ca2cde304e949c52fc
Issue-ID: INT-1508
Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
jjb/integration/emssimulator-swm-netconf_post.sh [new file with mode: 0644]
jjb/integration/integration-docker-compose.yaml
jjb/integration/integration-templates-docker.yaml

diff --git a/jjb/integration/emssimulator-swm-netconf_post.sh b/jjb/integration/emssimulator-swm-netconf_post.sh
new file mode 100644 (file)
index 0000000..b69d3c0
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+# Copyright 2020 Samsung Electronics Co., Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+echo "---> emssimulator-swm-netconf_post.sh"
+
+set -e # Exit with zero only if all commands succeed
+
+SERVICE_NAME="ems-netconf-swm"
+DOCKER_COMPOSE_LOG="/tmp/docker-compose.log"
+DOCKER_COMPOSE_LOG_MSG=( "INFO success:" "entered RUNNING state" )
+DOCKER_COMPOSE_SLEEP_INTERVAL=4
+
+pushd $DOCKER_ROOT
+
+# Dump container logs
+sleep ${DOCKER_COMPOSE_SLEEP_INTERVAL} # Hang for a while so the services settle
+docker-compose logs --no-color > ${DOCKER_COMPOSE_LOG}
+
+# Get the supervisord services running within container
+supervisord_services=($(docker-compose exec -T ${SERVICE_NAME} /bin/sh -c \
+    'cat /etc/supervisord.conf /etc/supervisord.d/*' | grep -ho "program:[-a-zA-Z0-9]*" | cut -d: -f 2))
+
+# Check all services are running and fail if not
+for service in ${supervisord_services[@]};
+do
+    if ! grep -q "${DOCKER_COMPOSE_LOG_MSG[0]} $service ${DOCKER_COMPOSE_LOG_MSG[1]}" ${DOCKER_COMPOSE_LOG};
+    then
+        echo "ERROR: Service $service is not running, failing the build."
+        exit 1
+    fi
+done
index 540ee4f..ae840f6 100644 (file)
@@ -16,3 +16,7 @@
       - 'netconf-pnp-simulator':
           pattern: 'test/mocks/netconf-pnp-simulator/modules/**'
           docker_root: 'test/mocks/netconf-pnp-simulator/modules'
+      - 'emssimulator-swm-netconf':
+          pattern: 'test/mocks/emssimulator/swm-netconf/**'
+          docker_root: 'test/mocks/emssimulator/swm-netconf'
+          post_script: !include-raw-escape: emssimulator-swm-netconf_post.sh
index caa0ad7..0ef7a52 100644 (file)
     description: 'This job validates Docker Compose based projects'
     node: 'ubuntu1804-docker-8c-8g'
     docker_root: '$WORKSPACE'
+    post_script: ''
 
     parameters:
       - lf-infra-parameters:
           properties-content: |
             DOCKER_ROOT={docker_root}
       - shell: '{script}'
+      - shell: '{post_script}'
 
     publishers:
       - integration-docker-compose-logs