diff --git a/test/csit/plans/music/music-test-plan/setup.sh b/test/csit/plans/music/music-test-plan/setup.sh
index 517837c..228aa1f 100755
--- a/test/csit/plans/music/music-test-plan/setup.sh
+++ b/test/csit/plans/music/music-test-plan/setup.sh
@@ -18,40 +18,68 @@
 #
 # add here eventual scripts needed for music
 #
-echo "##########################################################";
-echo "#";
 echo "# music scripts calling";
-echo "#";
-echo "##########################################################";
 source ${WORKSPACE}/test/csit/scripts/music/music-scripts/music_script.sh
 
 #
-# add here below the start of all docker containers needed for music CSIT testing
-#
-echo "##########################################################";
-echo "#";
-echo "# music scripts docker containers spinoff";
-echo "#";
-echo "##########################################################";
-
-#
 # add here all the configuration steps eventually needed to be carried out for music CSIT testing
 #
-echo "##########################################################";
-echo "#";
 echo "# music configuration step";
-echo "#";
-echo "##########################################################";
+MUSIC_SOURCE_PROPERTIES=${WORKSPACE}/test/csit/scripts/music/music-properties
+MUSIC_PROPERTIES=/tmp/music/properties
+MUSIC_LOGS=/tmp/music/logs
+
+mkdir -p ${MUSIC_PROPERTIES}
+mkdir -p ${MUSIC_LOGS}
+
+cp ${MUSIC_SOURCE_PROPERTIES}/* ${MUSIC_PROPERTIES}
+
+#docker cp /home/lb7254/integration/test/csit/scripts/music/music-scripts/music_init.cql cassandra:/tmp/music_init.cql
+#docker cp ${WORKSPACE}/test/csit/scripts/music/music-scripts/music_init.cql cassandra:/tmp/music_init.cql
+#docker exec -it cassandra /usr/bin/cqlsh -umusic -pmusic  -f /tmp/music_init.cql
+
+
+
+#
+# add here below the start of all docker containers needed for music CSIT testing
+#
+echo "# music docker containers spinoff";
+
+
+docker volume create music-vol
+docker run -d --name music-war -v music-vol:/app nexus3.onap.org:10001/onap/music/music:latest
+docker run -d --name music-db -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9042:9042 -p 9160:9160 nexus3.onap.org:10001/onap/music/cassandra_music:latest
+docker run -d --name music-zk -p 2181:2181 -p 2888:2888 -p 3888:3888 nexus3.onap.org:10001/library/zookeeper:3.4
+sleep 30
+
+CASSA_IP=`docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress}}' music-db`
+echo "CASSANDRA_IP=${CASSA_IP}"
+
+ZOO_IP=`docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress}}' music-zk`
+echo "ZOOKEEPER_IP=${ZOO_IP}"
+
+${WORKSPACE}/test/csit/scripts/music/music-scripts/wait_for_port.sh ${CASSA_IP} 9042
+
+docker run -d --name music-tomcat -p 8080:8080 -v music-vol:/usr/local/tomcat/webapps -v ${MUSIC_PROPERTIES}:/opt/app/music/etc:ro -v ${MUSIC_LOGS}:/opt/app/music/logs nexus3.onap.org:10001/library/tomcat:8.0
+
+TOMCAT_IP=`docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress}}' music-tomcat`
+echo "TOMCAT_IP=${TOMCAT_IP}"
+
+
+
+--- old part: it will be removed
+#docker run --name cassandra -d -p 9042:9042 -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9160:9160 nexus3.onap.org:10001/library/cassandra 
+#docker run --name zookeeper -d -p 2181:2181 -p 2888:2888 -p 3888:3888 nexus3.onap.org:10001/library/zookeeper
+#docker run --name music -d -v /app nexus3.onap.org:10001/music
+#docker run --name tomcat -d -p 8080:8080 --volumes-from music nexus3.onap.org:10001/library/tomcat
+
+
 
 
 #
 # add here all ROBOT_VARIABLES settings
 #
-echo "##########################################################";
-echo "#";
 echo "# music robot variables settings";
-echo "#";
-echo "##########################################################";
 ROBOT_VARIABLES="-v MUSIC_HOSTNAME:http://localhost -v MUSIC_PORT:8080 -v COND_HOSTNAME:http://localhost -v COND_PORT:8091"
 
 echo ${ROBOT_VARIABLES}
diff --git a/test/csit/plans/music/music-test-plan/teardown.sh b/test/csit/plans/music/music-test-plan/teardown.sh
index 884a64f..0806eb2 100755
--- a/test/csit/plans/music/music-test-plan/teardown.sh
+++ b/test/csit/plans/music/music-test-plan/teardown.sh
@@ -24,5 +24,15 @@
 echo "# music scripts docker containers killing";
 echo "#";
 echo "##########################################################";
-# kill-instance.sh <dockercontainername>
+kill-instance.sh music-tomcat
+kill-instance.sh music-war
+kill-instance.sh music-zk
+kill-instance.sh music-db
+docker volume rm music-vol
+
+rm -Rf /tmp/music
+
+
+
+
 
diff --git a/test/csit/scripts/music/music-properties/log4j.properties b/test/csit/scripts/music/music-properties/log4j.properties
new file mode 100644
index 0000000..1312e9b
--- /dev/null
+++ b/test/csit/scripts/music/music-properties/log4j.properties
@@ -0,0 +1,3 @@
+# No longer needed, please see the logback properties
+
+
diff --git a/test/csit/scripts/music/music-properties/music.properties b/test/csit/scripts/music/music-properties/music.properties
new file mode 100644
index 0000000..a26fc03
--- /dev/null
+++ b/test/csit/scripts/music/music-properties/music.properties
@@ -0,0 +1,17 @@
+my.public.ip=localhost
+all.public.ips=localhost
+my.id=0
+all.ids=0
+#######################################
+# Optional current values are defaults
+#######################################
+#zookeeper.host=localhost
+#cassandra.host=localhost
+#music.ip=localhost
+#debug=true
+#music.rest.ip=localhost
+#lock.lease.period=6000
+cassandra.user=nelson24
+cassandra.password=winman123
+
+
diff --git a/test/csit/scripts/music/music-scripts/wait_for_port.sh b/test/csit/scripts/music/music-scripts/wait_for_port.sh
new file mode 100755
index 0000000..10f08de
--- /dev/null
+++ b/test/csit/scripts/music/music-scripts/wait_for_port.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+if [[ $# -ne 2 ]]; then
+	echo "Usage: wait-for-port hostname port" >&2
+	exit 1
+fi
+
+host=$1
+port=$2
+
+echo "Waiting for $host port $port open"
+until telnet $host $port </dev/null 2>/dev/null | grep -q '^Connected'; do
+	sleep 1
+done
+
+echo "$host port $port is open"
+
+exit 0
diff --git a/test/csit/tests/music/music-suite/music-test.robot b/test/csit/tests/music/music-suite/music-test.robot
index bb94d29..4af4ebc 100644
--- a/test/csit/tests/music/music-suite/music-test.robot
+++ b/test/csit/tests/music/music-suite/music-test.robot
@@ -10,6 +10,42 @@
 ${generatedAID}
 
 *** Test Cases ***
+Check Cassandra Docker Container
+    [Documentation]    It checks cassandra docker container is running
+    ${rc}    ${output}=    Run and Return RC and Output    docker ps
+    Log To Console              *********************
+    Log To Console              retrurn_code = ${rc}
+    Log To Console              output = ${output}
+    Should Be Equal As Integers    ${rc}    0
+    Should Contain    ${output}    music-db
+
+Check Zookeeper Docker Container
+    [Documentation]    It checks zookeeper docker container is running
+    ${rc}    ${output}=    Run and Return RC and Output    docker ps
+    Log To Console              *********************
+    Log To Console              retrurn_code = ${rc}
+    Log To Console              output = ${output}
+    Should Be Equal As Integers    ${rc}    0
+    Should Contain    ${output}    music-zk
+
+Check Tomcat Docker Container
+    [Documentation]    It checks tomcat docker container is running
+    ${rc}    ${output}=    Run and Return RC and Output    docker ps
+    Log To Console              *********************
+    Log To Console              retrurn_code = ${rc}
+    Log To Console              output = ${output}
+    Should Be Equal As Integers    ${rc}    0
+    Should Contain    ${output}    music-tomcat
+
+Check Music War Docker Container
+    [Documentation]    It checks music.war docker container is running
+    ${rc}    ${output}=    Run and Return RC and Output    docker ps
+    Log To Console              *********************
+    Log To Console              retrurn_code = ${rc}
+    Log To Console              output = ${output}
+    Should Be Equal As Integers    ${rc}    0
+    Should Contain    ${output}    music-war
+
 Get Music Version
     [Documentation]    It sends a REST GET request to retrieve the Music.war version
     Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
@@ -20,129 +56,6 @@
     Log To Console              body = ${resp.text}
     Should Be Equal As Integers    ${resp.status_code}    200
 
-Music AddOnBoarding
-    [Documentation]    It sends a REST POST request to Music to Onboard a new application
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    ${data}=         Get Binary File     ${CURDIR}${/}data${/}onboard.json
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   Content-Type=application/json  Accept=application/json 
-    ${resp}=         Post Request        musicaas   /MUSIC/rest/v2/admin/onboardAppWithMusic    data=${data}    headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    ${response_json}    json.loads    ${resp.content}
-    ${generatedAID}=    Convert To String      ${response_json['Generated AID']}
-    Set Global Variable     ${generatedAID}
-    Log To Console              generatedAID = ${generatedAID}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-Music CreateKeyspace
-    [Documentation]    It sends a REST POST request to Music to create a new keyspace in Cassandra
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    ${data}=         Get Binary File     ${CURDIR}${/}data${/}createkeyspace.json
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json  Accept=application/json
-    ${resp}=         Post Request        musicaas   /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace    data=${data}    headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-Music CreateTable
-    [Documentation]    It sends a REST POST request to Music to create a new Table in Cassandra
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    ${data}=         Get Binary File     ${CURDIR}${/}data${/}createtable.json
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json  Accept=application/json
-    ${resp}=         Post Request        musicaas   /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable    data=${data}    headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-Music InsertRow
-    [Documentation]    It sends a REST POST request to Music to create a new row in Cassandra
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    ${data}=         Get Binary File     ${CURDIR}${/}data${/}insertrow_eventual.json
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json  Accept=application/json
-    ${resp}=         Post Request        musicaas   /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows/?row=emp1   data=${data}    headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-Music ReadRowJustInserted
-    [Documentation]    It sends a REST GET request to Music to Read the row just inserted in Cassandra
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json  Accept=application/json
-    ${resp}=         Get Request        musicaas   /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows?name=emp1   headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-Music UpdateRowInAtomicWay
-    [Documentation]    It sends a REST PUT request to Music to create a new row in Cassandra
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    ${data}=         Get Binary File     ${CURDIR}${/}data${/}updaterow_atomic.json
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json  Accept=application/json
-    ${resp}=         Put Request        musicaas   /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows?name=emp1   data=${data}    headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-Music ReadRowAfterUpdate
-    [Documentation]    It sends a REST GET request to Music to Read the row just inserted in Cassandra
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json  Accept=application/json
-    ${resp}=         Get Request        musicaas   /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows?name=emp1   headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-Music DeleteRow
-    [Documentation]    It sends a REST DELETE request to Music to delete a row in Cassandra
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    ${data}=         Get Binary File     ${CURDIR}${/}data${/}deleterow_eventual.json
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json  Accept=application/json
-    ${resp}=         Delete Request        musicaas   /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows?name=emp1   data=${data}    headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-Music DropTable
-    [Documentation]    It sends a REST Delete request to Music to drop one existing Table in Cassandra
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    ${data}=         Get Binary File     ${CURDIR}${/}data${/}droptable.json
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json   Accept=application/json
-    ${resp}=         Delete Request        musicaas   /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable    data=${data}    headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-Music DropKeyspace
-    [Documentation]    It sends a REST DELETE request to Music to drop one existing keyspace in Cassandra
-    Create Session   musicaas            ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    ${data}=         Get Binary File     ${CURDIR}${/}data${/}dropkeyspace.json
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json   Accept=application/json
-    ${resp}=         Delete Request        musicaas   /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace    data=${data}    headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
-
-
-Music DeleteOnBoarding
-    [Documentation]    It sends a REST DELETE request to Music to remove a previosly onboarded application
-    Create Session   musicaas             ${MUSIC_HOSTNAME}:${MUSIC_PORT}
-    ${data}=         Get Binary File     ${CURDIR}${/}data${/}onboard.json
-    &{headers}=      Create Dictionary    ns=lb7254    userId=music    password=music   aid=${generatedAID}   Content-Type=application/json   Accept=application/json
-    ${resp}=         Delete Request        musicaas   /MUSIC/rest/v2/admin/onboardAppWithMusic    data=${data}    headers=${headers}
-    Log To Console              *********************
-    Log To Console              response = ${resp}
-    Log To Console              body = ${resp.text}
-    Should Be Equal As Integers    ${resp.status_code}    200
 
 *** Keywords ***
 
