diff --git a/test/csit/plans/appc/healthcheck/setup.sh b/test/csit/plans/appc/healthcheck/setup.sh
index d47bbc5..4067433 100755
--- a/test/csit/plans/appc/healthcheck/setup.sh
+++ b/test/csit/plans/appc/healthcheck/setup.sh
@@ -19,13 +19,24 @@
 # Place the scripts in run order:
 SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 source ${WORKSPACE}/test/csit/scripts/appc/script1.sh
+amsterdam="$(echo ${WORKSPACE} | grep amsterdam | wc -l)"
+
+if [ "$amsterdam" != "1" ]; then
+  export APPC_DOCKER_IMAGE_VERSION=1.3.0-SNAPSHOT-latest
+  export CCSDK_DOCKER_IMAGE_VERSION=0.1-STAGING-latest
+  export BRANCH=master
+  export SOLUTION_NAME=onap
+else
+  export APPC_DOCKER_IMAGE_VERSION=v1.2.0
+  export CCSDK_DOCKER_IMAGE_VERSION=v0.1.0
+  export BRANCH=amsterdam
+  export SOLUTION_NAME=openecomp
+fi
 
 export NEXUS_USERNAME=docker
 export NEXUS_PASSWD=docker
 export NEXUS_DOCKER_REPO=nexus3.onap.org:10001
 export DMAAP_TOPIC=AUTO
-export APPC_DOCKER_IMAGE_VERSION=1.3.0-SNAPSHOT-latest
-export CCSDK_DOCKER_IMAGE_VERSION=0.1-STAGING-latest
 
 export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1)
 
@@ -37,14 +48,14 @@
 # Clone APPC repo to get docker-compose for APPC
 mkdir -p $WORKSPACE/archives/appc
 cd $WORKSPACE/archives
-git clone -b master --single-branch http://gerrit.onap.org/r/appc/deployment.git appc
+git clone -b $BRANCH --single-branch http://gerrit.onap.org/r/appc/deployment.git appc
 cd $WORKSPACE/archives/appc
 git pull
 cd $WORKSPACE/archives/appc/docker-compose
 sed -i "s/DMAAP_TOPIC_ENV=.*/DMAAP_TOPIC_ENV="$DMAAP_TOPIC"/g" docker-compose.yml
 docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
-docker pull $NEXUS_DOCKER_REPO/onap/appc-image:$APPC_DOCKER_IMAGE_VERSION
-docker tag $NEXUS_DOCKER_REPO/onap/appc-image:$APPC_DOCKER_IMAGE_VERSION onap/appc-image:latest
+docker pull $NEXUS_DOCKER_REPO/${SOLUTION_NAME}/appc-image:$APPC_DOCKER_IMAGE_VERSION
+docker tag $NEXUS_DOCKER_REPO/${SOLUTION_NAME}/appc-image:$APPC_DOCKER_IMAGE_VERSION ${SOLUTION_NAME}/appc-image:latest
 docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION
 docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-dgbuilder-image:latest
 # start APPC containers with docker compose and configuration from docker-compose.yml
diff --git a/test/csit/plans/appc/healthcheck_amsterdam/bundle_query.sh b/test/csit/plans/appc/healthcheck_amsterdam/bundle_query.sh
deleted file mode 100755
index 45a92ea..0000000
--- a/test/csit/plans/appc/healthcheck_amsterdam/bundle_query.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env bash
-###############################################################################
-# Copyright 2017 Huawei Technologies 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.
-###############################################################################
-SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-echo $SCRIPTS
-
-
-num_bundles=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client -u karaf bundle:list | tail -1 | cut -d\| -f1)
-num_failed_bundles=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client -u karaf bundle:list | grep Failure | wc -l)
-failed_bundles=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client -u karaf bundle:list | grep Failure)
-
-echo "There are $num_failed_bundles failed bundles out of $num_bundles installed bundles."
-
-if [ "$num_failed_bundles" -ge 1 ] || [ "$num_bundles" == "" ]; then
-  echo "There are $num_bundles bundles with $num_failed_bundles in a failed state. "
-  echo "The following bundle(s) are in a failed state: "
-  echo "  $failed_bundles"
-  exit 1;
-fi
-
-exit 0
diff --git a/test/csit/plans/appc/healthcheck_amsterdam/db_query.sh b/test/csit/plans/appc/healthcheck_amsterdam/db_query.sh
deleted file mode 100755
index 70829a1..0000000
--- a/test/csit/plans/appc/healthcheck_amsterdam/db_query.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env bash
-###############################################################################
-# Copyright 2017 Huawei Technologies 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.
-###############################################################################
-SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-echo $SCRIPTS
-
-sdnctl_num_tables=$(docker exec -i sdnc_db_container mysql -s -D sdnctl -u sdnctl -pgamma <<<'show tables;' 2>/dev/null | grep -v ERROR | wc -l)
-
-appcctl_num_tables=$(docker exec -i sdnc_db_container mysql -s -D appcctl -u appcctl -pappcctl <<<'show tables;' 2>/dev/null | grep -v ERROR | wc -l)
-
-
-
-docker exec -i sdnc_db_container mysql -s -D sdnctl -u sdnctl -pgamma <<<"show tables" 2>/dev/null | ( while read table_name; do 
-export $table_name="$(docker exec -i sdnc_db_container mysql -s -D sdnctl -u sdnctl -pgamma <<<"select count(*) from $table_name" 2>/dev/null)"
-done 
-
-if [ "$sdnctl_num_tables" -ge "1" ]; then
-  echo "There are $sdnctl_num_tables tables in the sdnctl database. "
-else
-  echo "Database sdnctl is not available."
-  exit 1;
-fi
-
-if [ "$appcctl_num_tables" -ge "1" ]; then
-  echo "There is $appcctl_num_tables table in the appcctl database. "
-else
-  echo "Database appcctl is not available."
-  exit 1;
-fi
-
-#if [ "$NODE_TYPES" -eq "0" ]; then
-#  echo "There is no data in table NODE_TYPES. "
-#  exit 1;
-#fi
-
-#if [ "$SVC_LOGIC" -eq "0" ] ; then
-#  echo "There is no data in table SVC_LOGIC. "
-#  exit 1;
-#fi
-
-#if [ "$VNF_DG_MAPPING" -eq "0" ]; then
-#  echo "There is no data in table VNF_DG_MAPPING. "
-#  exit 1;
-#fi 
-
-echo "Expected table data is present."
-exit 0 )
-
-if [ "$?" -eq "1" ]; then
-  exit 1;
-fi
-
-exit 0
diff --git a/test/csit/plans/appc/healthcheck_amsterdam/health_check.sh b/test/csit/plans/appc/healthcheck_amsterdam/health_check.sh
deleted file mode 100755
index 63e0b17..0000000
--- a/test/csit/plans/appc/healthcheck_amsterdam/health_check.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env bash
-###############################################################################
-# Copyright 2017 Huawei Technologies 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.
-###############################################################################
-SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-echo $SCRIPTS
-
-response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==" -X POST -H "X-FromAppId: csit-appc" -H "X-TransactionId: csit-appc" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8282/restconf/operations/SLI-API:healthcheck )
-
-if [ "$response" == "200" ]; then
-    echo "APPC health check passed."
-    exit 0;
-fi
-
-echo "APPC health check failed with response code ${response}."
-exit 1
diff --git a/test/csit/plans/appc/healthcheck_amsterdam/setup.sh b/test/csit/plans/appc/healthcheck_amsterdam/setup.sh
deleted file mode 100755
index f5a579e..0000000
--- a/test/csit/plans/appc/healthcheck_amsterdam/setup.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016-2017 Huawei Technologies 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.
-#
-# Modifications copyright (c) 2017 AT&T Intellectual Property
-#
-# Place the scripts in run order:
-SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-source ${WORKSPACE}/test/csit/scripts/appc/script1.sh
-
-export NEXUS_USERNAME=docker
-export NEXUS_PASSWD=docker
-export NEXUS_DOCKER_REPO=nexus3.onap.org:10001
-export DMAAP_TOPIC=AUTO
-export APPC_DOCKER_IMAGE_VERSION=v1.2.0
-export CCSDK_DOCKER_IMAGE_VERSION=v0.1.0
-
-export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1)
-
-if [ "$MTU" == "" ]; then
-	  export MTU="1450"
-fi
-
-
-# Clone APPC repo to get docker-compose for APPC
-mkdir -p $WORKSPACE/archives/appc
-cd $WORKSPACE/archives
-git clone -b amsterdam --single-branch http://gerrit.onap.org/r/appc/deployment.git appc
-cd $WORKSPACE/archives/appc
-git pull
-cd $WORKSPACE/archives/appc/docker-compose
-sed -i "s/DMAAP_TOPIC_ENV=.*/DMAAP_TOPIC_ENV="$DMAAP_TOPIC"/g" docker-compose.yml
-docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
-docker pull $NEXUS_DOCKER_REPO/openecomp/appc-image:$APPC_DOCKER_IMAGE_VERSION
-docker tag $NEXUS_DOCKER_REPO/openecomp/appc-image:$APPC_DOCKER_IMAGE_VERSION openecomp/appc-image:latest
-docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION
-docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-dgbuilder-image:latest
-# start APPC containers with docker compose and configuration from docker-compose.yml
-docker-compose up -d
-# WAIT 5 minutes maximum and test every 5 seconds if APPC is up using HealthCheck API
-TIME_OUT=2000
-INTERVAL=30
-TIME=0
-while [ "$TIME" -lt "$TIME_OUT" ]; do
-
-startODL_status=$(docker exec appc_controller_container ps -e | grep startODL | wc -l)
-waiting_bundles=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client -u karaf bundle:list | grep Waiting | wc -l)
-run_level=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client -u karaf system:start-level)
-
-  if [ "$run_level" == "Level 100" ] && [ "$startODL_status" -lt "1" ] && [ "$waiting_bundles" -lt "1" ] ; then
-    echo APPC started in $TIME seconds
-    break;
-  fi
-
-  echo Sleep: $INTERVAL seconds before testing if APPC is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds
-  sleep $INTERVAL
-  TIME=$(($TIME+$INTERVAL))
-done
-
-if [ "$TIME" -ge "$TIME_OUT" ]; then
-  echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for testing activities...
-fi
-
-sleep 300
-
-# Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS}"
diff --git a/test/csit/plans/appc/healthcheck_amsterdam/teardown.sh b/test/csit/plans/appc/healthcheck_amsterdam/teardown.sh
deleted file mode 100755
index 357ead8..0000000
--- a/test/csit/plans/appc/healthcheck_amsterdam/teardown.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016-2017 Huawei Technologies 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.
-#
-# Modifications copyright (c) 2017 AT&T Intellectual Property
-#
-
-kill-instance.sh appc_controller_container
-kill-instance.sh sdnc_dgbuilder_container
-kill-instance.sh sdnc_db_container
-
-# $WORKSPACE/archives/appc deleted with archives folder when tests starts so we keep it at the end for debugging
diff --git a/test/csit/plans/appc/healthcheck_amsterdam/testplan.txt b/test/csit/plans/appc/healthcheck_amsterdam/testplan.txt
deleted file mode 100644
index 0f78b17..0000000
--- a/test/csit/plans/appc/healthcheck_amsterdam/testplan.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# Test suites are relative paths under [integration.git]/test/csit/tests/.
-# Place the suites in run order.
-appc/healthcheck_amsterdam
-
