From 26029b1d11455c455d16abd3e0e7c59ff85fdb6e Mon Sep 17 00:00:00 2001 From: Bartosz Gardziejewski Date: Thu, 25 Mar 2021 11:36:30 +0100 Subject: [PATCH] Add healthcheck test for Netconf Server Signed-off-by: Bartosz Gardziejewski Change-Id: I656dfb4b88f65ff37c1f8253c686163a499b9674 Issue-ID: INT-1869 --- .../nfsimulator/netconf-server/setup.sh | 37 ++++++++++++++++++++++ .../nfsimulator/netconf-server/teardown.sh | 18 +++++++++++ .../nfsimulator/netconf-server/testplan.txt | 4 +++ .../nfsimulator/netconf-server/docker-compose.yml | 13 ++++++++ .../netconf-server/start-netconf-server.sh | 19 +++++++++++ .../netconf-server/stop-netconf-server.sh | 18 +++++++++++ .../nfsimulator/netconf-server/__init__.robot | 2 ++ .../netconf-server/netconf-server-rest-test.robot | 12 +++++++ .../resources/netconf-server-keywords.robot | 12 +++++++ .../resources/netconf-server-properties.robot | 3 ++ 10 files changed, 138 insertions(+) create mode 100755 plans/integration/nfsimulator/netconf-server/setup.sh create mode 100755 plans/integration/nfsimulator/netconf-server/teardown.sh create mode 100644 plans/integration/nfsimulator/netconf-server/testplan.txt create mode 100644 scripts/integration/nfsimulator/netconf-server/docker-compose.yml create mode 100755 scripts/integration/nfsimulator/netconf-server/start-netconf-server.sh create mode 100755 scripts/integration/nfsimulator/netconf-server/stop-netconf-server.sh create mode 100644 tests/integration/nfsimulator/netconf-server/__init__.robot create mode 100644 tests/integration/nfsimulator/netconf-server/netconf-server-rest-test.robot create mode 100644 tests/integration/nfsimulator/netconf-server/resources/netconf-server-keywords.robot create mode 100644 tests/integration/nfsimulator/netconf-server/resources/netconf-server-properties.robot diff --git a/plans/integration/nfsimulator/netconf-server/setup.sh b/plans/integration/nfsimulator/netconf-server/setup.sh new file mode 100755 index 00000000..3f070434 --- /dev/null +++ b/plans/integration/nfsimulator/netconf-server/setup.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# +# Copyright (C) 2021 Nokia. All rights reserved. +# +# 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. + +# Start netconf-server image with dependencies +${WORKSPACE}/scripts/integration/nfsimulator/netconf-server/start-netconf-server.sh + +# Setup IP for netconf-server +NETCONF_SERVER_NAME=netconf-server +NETCONF_SERVER_REST_PORT=6555 +NETCONF_SERVER_IP=`get-instance-ip.sh $NETCONF_SERVER_NAME` + +# Wait until container ready +for i in {1..9} +do + RESP_CODE=$(curl -I -s -o /dev/null -w "%{http_code}" http://${NETCONF_SERVER_IP}:${NETCONF_SERVER_REST_PORT}/healthcheck) + if [[ "$RESP_CODE" == '200' ]]; then + echo 'Netconf Server is ready' + export NETCONF_SERVER_IP=${NETCONF_SERVER_IP} + export NETCONF_SERVER_REST_PORT=${NETCONF_SERVER_REST_PORT} + break + fi + echo 'Waiting for Netconf Server to start up...' + sleep 5s +done diff --git a/plans/integration/nfsimulator/netconf-server/teardown.sh b/plans/integration/nfsimulator/netconf-server/teardown.sh new file mode 100755 index 00000000..9638754a --- /dev/null +++ b/plans/integration/nfsimulator/netconf-server/teardown.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# +# Copyright (C) 2021 Nokia. All rights reserved. +# +# 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. + +# Stop netconf-server image and dependencies +${WORKSPACE}/scripts/integration/nfsimulator/netconf-server/stop-netconf-server.sh diff --git a/plans/integration/nfsimulator/netconf-server/testplan.txt b/plans/integration/nfsimulator/netconf-server/testplan.txt new file mode 100644 index 00000000..aa7f7db2 --- /dev/null +++ b/plans/integration/nfsimulator/netconf-server/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration/csit.git]/tests/. +# Place the suites in run order. +# Temporary change to trigger verify job. +integration/nfsimulator/netconf-server diff --git a/scripts/integration/nfsimulator/netconf-server/docker-compose.yml b/scripts/integration/nfsimulator/netconf-server/docker-compose.yml new file mode 100644 index 00000000..bf43ff55 --- /dev/null +++ b/scripts/integration/nfsimulator/netconf-server/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3' + +services: + + netconf-server: + container_name: netconf-server + image: onap/org.onap.integration.nfsimulator.netconfserver:latest + environment: + - ENABLE_TLS=true + ports: + - "830:830" + - "6513:6513" + - "6555:6555" diff --git a/scripts/integration/nfsimulator/netconf-server/start-netconf-server.sh b/scripts/integration/nfsimulator/netconf-server/start-netconf-server.sh new file mode 100755 index 00000000..8fadcd1a --- /dev/null +++ b/scripts/integration/nfsimulator/netconf-server/start-netconf-server.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# Copyright (C) 2021 Nokia. All rights reserved. +# +# 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 "Starting netconf server" +docker-compose -f ${WORKSPACE}/scripts/integration/nfsimulator/netconf-server/docker-compose.yml up -d diff --git a/scripts/integration/nfsimulator/netconf-server/stop-netconf-server.sh b/scripts/integration/nfsimulator/netconf-server/stop-netconf-server.sh new file mode 100755 index 00000000..01d38509 --- /dev/null +++ b/scripts/integration/nfsimulator/netconf-server/stop-netconf-server.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# +# Copyright (C) 2021 Nokia. All rights reserved. +# +# 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 "Stopping netconf server" +docker-compose -f ${WORKSPACE}/scripts/integration/nfsimulator/netconf-server/docker-compose.yml down diff --git a/tests/integration/nfsimulator/netconf-server/__init__.robot b/tests/integration/nfsimulator/netconf-server/__init__.robot new file mode 100644 index 00000000..aa8babbc --- /dev/null +++ b/tests/integration/nfsimulator/netconf-server/__init__.robot @@ -0,0 +1,2 @@ +*** Settings *** +Documentation Integration - Netconf Server diff --git a/tests/integration/nfsimulator/netconf-server/netconf-server-rest-test.robot b/tests/integration/nfsimulator/netconf-server/netconf-server-rest-test.robot new file mode 100644 index 00000000..4805d680 --- /dev/null +++ b/tests/integration/nfsimulator/netconf-server/netconf-server-rest-test.robot @@ -0,0 +1,12 @@ +*** Settings *** +Documentation Run healthcheck +Library RequestsLibrary +Resource ./resources/netconf-server-keywords.robot + + +*** Test Cases *** + +Netconf Server Rest API Health Check + [Tags] Netconf-Server + [Documentation] Run healthcheck + Run Healthcheck diff --git a/tests/integration/nfsimulator/netconf-server/resources/netconf-server-keywords.robot b/tests/integration/nfsimulator/netconf-server/resources/netconf-server-keywords.robot new file mode 100644 index 00000000..94be035b --- /dev/null +++ b/tests/integration/nfsimulator/netconf-server/resources/netconf-server-keywords.robot @@ -0,0 +1,12 @@ +*** Settings *** +Library RequestsLibrary +Resource ./netconf-server-properties.robot + +*** Keywords *** + +Run Healthcheck + [Documentation] Run Healthcheck + Create Session netconf_server_session ${NETCONF_SERVER_URL} + ${resp}= GET On Session netconf_server_session /healthcheck + Should Be Equal As Strings ${resp.status_code} 200 + Should Be Equal As Strings ${resp.text} UP diff --git a/tests/integration/nfsimulator/netconf-server/resources/netconf-server-properties.robot b/tests/integration/nfsimulator/netconf-server/resources/netconf-server-properties.robot new file mode 100644 index 00000000..3903da7d --- /dev/null +++ b/tests/integration/nfsimulator/netconf-server/resources/netconf-server-properties.robot @@ -0,0 +1,3 @@ +*** Variables *** + +${NETCONF_SERVER_URL} http://%{NETCONF_SERVER_IP}:%{NETCONF_SERVER_REST_PORT} -- 2.16.6