From de47fd4a4a19e950ff8f074b95ceb1c981ba3b94 Mon Sep 17 00:00:00 2001 From: Leonardo Bellini Date: Wed, 7 Mar 2018 12:07:30 -0600 Subject: freeze 1st test group for music integration Issue-ID: MUSIC-50 Change-Id: I1eb7e879e18cf4f96fbbaaf9e67cb3e8aed6e2fe Signed-off-by: Leonardo Bellini --- test/csit/plans/music/music-test-plan/setup.sh | 68 ++++++--- test/csit/plans/music/music-test-plan/teardown.sh | 12 +- .../music/music-properties/log4j.properties | 3 + .../music/music-properties/music.properties | 17 +++ .../scripts/music/music-scripts/wait_for_port.sh | 18 +++ test/csit/tests/music/music-suite/music-test.robot | 159 +++++---------------- 6 files changed, 133 insertions(+), 144 deletions(-) create mode 100644 test/csit/scripts/music/music-properties/log4j.properties create mode 100644 test/csit/scripts/music/music-properties/music.properties create mode 100755 test/csit/scripts/music/music-scripts/wait_for_port.sh diff --git a/test/csit/plans/music/music-test-plan/setup.sh b/test/csit/plans/music/music-test-plan/setup.sh index 517837c9a..228aa1f2f 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 +# add here all the configuration steps eventually needed to be carried out for music CSIT testing # -echo "##########################################################"; -echo "#"; -echo "# music scripts docker containers spinoff"; -echo "#"; -echo "##########################################################"; +echo "# music configuration step"; +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 all the configuration steps eventually needed to be carried out for music CSIT testing +# add here below the start of all docker containers needed for music CSIT testing # -echo "##########################################################"; -echo "#"; -echo "# music configuration step"; -echo "#"; -echo "##########################################################"; +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 884a64f71..0806eb273 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 "#"; echo "# music scripts docker containers killing"; echo "#"; echo "##########################################################"; -# kill-instance.sh +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 000000000..1312e9bb9 --- /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 000000000..a26fc0317 --- /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 000000000..10f08ded1 --- /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 | 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 bb94d2955..4af4ebc0d 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 @@ ${MESSAGE} {"ping": "ok"} ${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 @@ Get Music Version 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 *** -- cgit 1.2.3-korg