diff --git a/assets/cloudspec.csv b/assets/cloudspec.csv index e20c5a0d0..25e3eafcf 100644 --- a/assets/cloudspec.csv +++ b/assets/cloudspec.csv @@ -558,18 +558,18 @@ TENCENT,eu-moscow,S2.MEDIUM4,0.06,59.98,,,,,,,,,,default,default,,,,, TENCENT,na-ashburn,S2.MEDIUM4,0.09,59.98,,,,,,,,,,default,default,,,,, TENCENT,na-siliconvalley,SA2.MEDIUM4,0.04,59.98,,,,,,,,,,default,default,,,,, TENCENT,na-toronto,S2.MEDIUM4,0.09,59.98,,,,,,,,,,default,default,,,,, -NCP,KR,SPSVRHICPUSSD002,,,,,,,,,,,,default,default,,,,, -NCP,KR,SPSVRHICPUSSD003,,,,,,,,,,,,default,default,,,,, -NCP,KR,SPSVRHICPUSSD004,,,,,,,,,,,,default,default,,,,, +NCP,KR,SPSVRSSD00000005,,,,,,,,,,,,default,default,,,,, +NCP,KR,SPSVRSSD00000007,,,,,,,,,,,,default,default,,,,, +NCP,KR,SPSVRSSD00000016,,,,,,,,,,,,default,default,,,,, NCP,USWN,SPSVRSSD00000005,,,,,,,,,,,,default,default,,,,, NCP,USWN,SPSVRSSD00000007,,,,,,,,,,,,default,default,,,,, NCP,USWN,SPSVRSSD00000016,,,,,,,,,,,,default,default,,,,, NCP,HK,SPSVRSTAND000005,,,,,,,,,,,,default,default,,,,, NCP,HK,SPSVRSTAND000006,,,,,,,,,,,,default,default,,,,, NCP,HK,SPSVRSTAND000046,,,,,,,,,,,,default,default,,,,, -NCP,SGN,SPSVRCPUSSD00002,,,,,,,,,,,,default,default,,,,, -NCP,SGN,SPSVRCPUSSD00003,,,,,,,,,,,,default,default,,,,, -NCP,SGN,SPSVRCPUSSD00004,,,,,,,,,,,,default,default,,,,, +NCP,SGN,SPSVRSSD00000005,,,,,,,,,,,,default,default,,,,, +NCP,SGN,SPSVRSSD00000007,,,,,,,,,,,,default,default,,,,, +NCP,SGN,SPSVRSSD00000016,,,,,,,,,,,,default,default,,,,, NCP,JPN,SPSVRSSD00000005,,,,,,,,,,,,default,default,,,,, NCP,JPN,SPSVRSSD00000007,,,,,,,,,,,,default,default,,,,, NCP,JPN,SPSVRSSD00000016,,,,,,,,,,,,default,default,,,,, diff --git a/scripts/init/template.credentials.yaml b/scripts/init/template.credentials.yaml index 9306c49ce..7c92075ee 100644 --- a/scripts/init/template.credentials.yaml +++ b/scripts/init/template.credentials.yaml @@ -58,8 +58,6 @@ credentialholder: IdentityEndpoint: https://api.ucloudbiz.olleh.com/d1/identity/v3/ Username: Password: - ClientId: - ClientSecret: DomainName: ProjectID: ncp: @@ -69,7 +67,7 @@ credentialholder: ClientId: ClientSecret: nhncloud: - IdentityEndpoint: https://api-identity.infrastructure.cloud.toast.com + IdentityEndpoint: https://api-identity-infrastructure.nhncloudservice.com Username: Password: DomainName: diff --git a/src/testclient/scripts/3.vNet/create-vNet-ktvpc.sh b/src/testclient/scripts/3.vNet/create-vNet-ktvpc.sh new file mode 100755 index 000000000..87f67ec8c --- /dev/null +++ b/src/testclient/scripts/3.vNet/create-vNet-ktvpc.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +function CallTB() { + echo "- Create vNet in ${MCIRRegionName}" + + resp=$( + curl -H "${AUTH}" -sX POST http://$TumblebugServer/tumblebug/ns/$NSID/resources/vNet?option=register -H 'Content-Type: application/json' -d @- <>./executionStatus.history diff --git a/src/testclient/scripts/sequentialFullTest/clean-mcir-ns-cloud-domestic.sh b/src/testclient/scripts/sequentialFullTest/clean-mcir-ns-cloud-domestic.sh new file mode 100755 index 000000000..89544c517 --- /dev/null +++ b/src/testclient/scripts/sequentialFullTest/clean-mcir-ns-cloud-domestic.sh @@ -0,0 +1,173 @@ +#!/bin/bash + +function clean_sequence() { + local CSP=$1 + local REGION=$2 + local POSTFIX=$3 + local TestSetFile=$4 + + ../7.spec/unregister-spec.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + ../6.image/unregister-image.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + + echo '## 5. sshKey: Delete' + OUTPUT=$(../5.sshKey/delete-sshKey.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile) + echo "${OUTPUT}" + OUTPUT=$(echo "${OUTPUT}" | grep -c -e 'Error' -e 'error' -e 'dependency' -e 'dependent' -e 'DependencyViolation') + + if [ "${OUTPUT}" != 0 ]; then + + echo "Retry sshKey: Delete 20 times" + for ((c = 1; c <= 40; c++)); do + echo "Trial: ${c}. Sleep 5 before retry sshKey: Delete" + dozing 5 + # retry sshKey: Delete + OUTPUT2=$(../5.sshKey/delete-sshKey.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile) + echo "${OUTPUT2}" + OUTPUT2=$(echo "${OUTPUT2}" | grep -c -e 'Error' -e 'error' -e 'dependency' -e 'dependent' -e 'DependencyViolation') + echo "${OUTPUT2}" + + if [ "${OUTPUT2}" == 0 ]; then + echo "OK. sshKey: Delete complete" + break + fi + + if [ "${c}" == 20 ] && [ "${OUTPUT2}" == 1 ]; then + echo "Problem in sshKey: Delete. Exit without unregister-cloud." + exit + fi + done + + fi + + echo '## 4. SecurityGroup: Delete' + OUTPUT=$(../4.securityGroup/delete-securityGroup.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile) + echo "${OUTPUT}" + OUTPUT=$(echo "${OUTPUT}" | grep -c -e 'Error' -e 'error' -e 'dependency' -e 'dependent' -e 'DependencyViolation') + echo "${OUTPUT}" + if [ "${OUTPUT}" != 0 ]; then + + echo "Retry SecurityGroup: Delete 30 times" + for ((c = 1; c <= 50; c++)); do + echo "Trial: ${c}. Sleep 5 before retry SecurityGroup: Delete" + dozing 5 + # retry SecurityGroup: Delete + OUTPUT2=$(../4.securityGroup/delete-securityGroup.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile) + echo "${OUTPUT2}" + OUTPUT2=$(echo "${OUTPUT2}" | grep -c -e 'Error' -e 'error' -e 'dependency' -e 'dependent' -e 'DependencyViolation') + echo "${OUTPUT2}" + + if [ "${OUTPUT2}" == 0 ]; then + echo "OK. SecurityGroup: Delete complete" + break + fi + + if [ "${c}" == 30 ] && [ "${OUTPUT2}" == 1 ]; then + echo "Problem in SecurityGroup: Delete. Exit without unregister-cloud." + exit + fi + done + + fi + + if ! [ "${CSP}" == "nhncloud" ]; then + echo '## 3. vNet: Delete' + OUTPUT=$(../3.vNet/delete-vNet.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile) + echo "${OUTPUT}" + OUTPUT=$(echo "${OUTPUT}" | grep -c -e 'Error' -e 'error' -e 'dependency' -e 'dependent' -e 'DependencyViolation') + echo "${OUTPUT}" + if [ "${OUTPUT}" != 0 ]; then + + echo "Retry delete-vNet 40 times" + for ((c = 1; c <= 60; c++)); do + echo "Trial: ${c}. Sleep 5 before retry delete-vNet" + dozing 5 + # retry delete-vNet + OUTPUT2=$(../3.vNet/delete-vNet.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile) + echo "${OUTPUT2}" + OUTPUT2=$(echo "${OUTPUT2}" | grep -c -e 'Error' -e 'error' -e 'dependency' -e 'dependent' -e 'DependencyViolation') + echo "${OUTPUT2}" + + if [ "${OUTPUT2}" == 0 ]; then + echo "OK. delete-vNet complete" + break + fi + + if [ "${c}" == 20 ] && [ "${OUTPUT2}" == 1 ]; then + echo "Problem in delete-vNet. Exit without unregister-cloud." + exit + fi + done + + fi + fi + + #../2.configureTumblebug/delete-ns.sh $CSP $REGION $POSTFIX + + # CNT=$(grep -c "${CSP}" ./executionStatus) + # if [ "${CNT}" -ge 2 ]; then + # ../1.configureSpider/unregister-cloud.sh $CSP $REGION $POSTFIX leave $TestSetFile + # else + # echo "[No dependancy, this CSP can be removed.]" + # ../1.configureSpider/unregister-cloud.sh $CSP $REGION $POSTFIX doit $TestSetFile + # fi + + echo -e "${BOLD}" + echo "[Cleaning related commands in history file executionStatus]" + echo -e "" + echo -e "${NC}${BLUE}- Removing [MCIR-NS-CLOUD] ${CSP} ${REGION} ${POSTFIX} ${TestSetFile}" + echo -e "${NC}" + sed -i "/(MCIR) ${CSP} ${REGION} ${POSTFIX} ${TestSetFile//\//\\/}/d" ./executionStatus + echo "" + echo "[Executed Command List]" + cat ./executionStatus + cp ./executionStatus ./executionStatus.back + echo "" + +} + +SECONDS=0 + +echo "####################################################################" +echo "## Remove mcir-ns-cloud" +echo "####################################################################" + +source ../init.sh + + +if [ "${INDEX}" == "0" ]; then + echo "[Parallel execution for all CSP regions]" + + ../8.mcis/status-mcis.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + + INDEXX=${NumCSP} + for ((cspi = 1; cspi <= INDEXX; cspi++)); do + #echo $i + INDEXY=${NumRegion[$cspi]} + CSP=${CSPType[$cspi]} + for ((cspj = 1; cspj <= INDEXY; cspj++)); do + #echo $j + REGION=$cspj + + echo $CSP + echo $REGION + + clean_sequence $CSP $REGION $POSTFIX $TestSetFile ${0##*/} & + dozing 2 + done + done + wait + +else + + echo "[Single execution for a CSP region]" + + clean_sequence $CSP $REGION $POSTFIX $TestSetFile ${0##*/} + +fi + +duration=$SECONDS + +printElapsed $@ +#} + +#cleanAll diff --git a/src/testclient/scripts/sequentialFullTest/create-all-domestic.sh b/src/testclient/scripts/sequentialFullTest/create-all-domestic.sh new file mode 100755 index 000000000..0cc273fa1 --- /dev/null +++ b/src/testclient/scripts/sequentialFullTest/create-all-domestic.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +SECONDS=0 + +source ../conf.env +source ../common-functions.sh + +checkPrerequisite + +./check-test-config.sh "$@" +echo -e "${BOLD}" +while true; do + read -p 'Confirm the above configuration. Do you want to proceed ? (y/n) : ' CHECKPROCEED + echo -e "${NC}" + case $CHECKPROCEED in + [Yy]* ) + break + ;; + [Nn]* ) + echo + echo "Cancel [$0 $@]" + echo "See you soon. :)" + echo + exit 1 + ;; + * ) + echo "Please answer yes or no.";; + esac +done + +./create-mcir-ns-cloud-domestic.sh "$@" + +./create-mcis-only.sh "$@" + +duration=$SECONDS + + +printElapsed $@ +echo "" >>./executionStatus.history + diff --git a/src/testclient/scripts/sequentialFullTest/create-mcir-ns-cloud-domestic.sh b/src/testclient/scripts/sequentialFullTest/create-mcir-ns-cloud-domestic.sh new file mode 100755 index 000000000..002c6b928 --- /dev/null +++ b/src/testclient/scripts/sequentialFullTest/create-mcir-ns-cloud-domestic.sh @@ -0,0 +1,181 @@ +#!/bin/bash + +# Function for individual CSP test +function test_sequence() { + local CSP=$1 + local REGION=$2 + local POSTFIX=$3 + local TestSetFile=$4 + local NUMVM=$5 + + local CMDPATH=$6 + + # ../1.configureSpider/register-cloud.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + ../2.configureTumblebug/create-ns.sh -n $POSTFIX -f $TestSetFile + + # Create vNet + if [ "${CSP}" == "ncpvpc" ]; then + ../3.vNet/create-vNet-ncpvpc.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + elif [ "${CSP}" == "nhncloud" ]; then + ../3.vNet/create-vNet-nhn.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + # dozing 120 + elif [ "${CSP}" == "ktcloudvpc" ]; then + ../3.vNet/create-vNet-ktvpc.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + else + ../3.vNet/create-vNet.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + fi + dozing 10 + + if [ "${CSP}" == "gcp" ]; then + echo "[Test for GCP needs more preparation time]" + dozing 20 + fi + + # Create S/G + if [ "${CSP}" == "ncp" ]; then + ../4.securityGroup/create-securityGroup-ncp.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + elif [ "${CSP}" == "ktcloudvpc" ]; then + ../4.securityGroup/create-securityGroup-ktvpc.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + else + ../4.securityGroup/create-securityGroup.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + fi + dozing 10 + + # Create SSH Key + ../5.sshKey/create-sshKey.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + # Register Image + ../6.image/registerImageWithId.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + # Register VMSpec + ../7.spec/register-spec.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + + # ../8.mcis/create-mcis.sh $CSP $REGION $POSTFIX $NUMVM $TestSetFile + # dozing 1 + # ../8.mcis/status-mcis.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + + _self=$CMDPATH + + echo "" + echo "[Logging to notify latest command history]" + echo "[MCIR:${MCIRRegionName}(${SECONDS}s)] ${_self} (MCIR) ${CSP} ${REGION} ${POSTFIX} ${TestSetFile}" >>./executionStatus + echo "" + echo "[Executed Command List]" + #cat ./executionStatus + cp ./executionStatus ./executionStatus.back + echo "" +} + +# Functions for all CSP test +function test_sequence_allcsp_mcir() { + local CSP=$1 + local REGION=$2 + local POSTFIX=$3 + local TestSetFile=$4 + local CMDPATH=$5 + + # ../1.configureSpider/register-cloud.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + ../2.configureTumblebug/create-ns.sh -n $POSTFIX -f $TestSetFile + + # Create vNet + if [ "${CSP}" == "ncpvpc" ]; then + ../3.vNet/create-vNet-ncpvpc.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + elif [ "${CSP}" == "nhncloud" ]; then + ../3.vNet/create-vNet-nhn.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + # dozing 120 + elif [ "${CSP}" == "ktcloudvpc" ]; then + ../3.vNet/create-vNet-ktvpc.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + else + ../3.vNet/create-vNet.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + fi + dozing 10 + + if [ "${CSP}" == "gcp" ]; then + echo "[Test for GCP needs more preparation time]" + dozing 20 + fi + + # Create S/G + if [ "${CSP}" == "ncp" ]; then + ../4.securityGroup/create-securityGroup-ncp.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + elif [ "${CSP}" == "ktcloudvpc" ]; then + ../4.securityGroup/create-securityGroup-ktvpc.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + else + ../4.securityGroup/create-securityGroup.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + fi + dozing 10 + + # Create SSH Key + ../5.sshKey/create-sshKey.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + # Register Image + ../6.image/registerImageWithId.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + # Register VMSpec + ../7.spec/register-spec.sh -c $CSP -r $REGION -n $POSTFIX -f $TestSetFile + + _self=$CMDPATH + + echo "" + echo "[Logging to notify latest command history]" + echo "[MCIR:${MCIRRegionName}(${SECONDS}s)] ${_self} (MCIR) ${CSP} ${REGION} ${POSTFIX} ${TestSetFile}" >>./executionStatus + echo "" + echo "[Executed Command List]" + cat ./executionStatus + cp ./executionStatus ./executionStatus.back + echo "" + + duration=$SECONDS + printElapsed $CSP $REGION $POSTFIX $TestSetFile $MCIRRegionName + +} +SECONDS=0 + +echo "####################################################################" +echo "## Create mcir-ns-cloud from Zero Base" +echo "####################################################################" + +source ../init.sh + +NUMVM=${OPTION01:-1} + + +if [ "${INDEX}" == "0" ]; then + echo "[Parallel execution for all CSP regions]" + + INDEXX=${NumCSP} + for ((cspi = 1; cspi <= INDEXX; cspi++)); do + echo $i + INDEXY=${NumRegion[$cspi]} + CSP=${CSPType[$cspi]} + for ((cspj = 1; cspj <= INDEXY; cspj++)); do + echo $j + REGION=$cspj + echo $CSP + echo $REGION + echo ${RegionName[1,1]} + MCIRRegionName=${RegionName[$cspi,$cspj]} + echo "- Create MCIR in ${MCIRRegionName}" + + test_sequence_allcsp_mcir $CSP $REGION $POSTFIX $TestSetFile ${0##*/} & + # dozing 1 + + done + + done + wait + + + MCISID=${POSTFIX} + + +else + echo "" + TOTALVM=$((1 * 1 * NUMVM)) + echo "[Create MCIS] VMs($TOTALVM) = Cloud(1) * Region(1) * subGroup($NUMVM)" + MCIRRegionName=${CONN_CONFIG[$INDEX,$REGION]} + + test_sequence $CSP $REGION $POSTFIX $TestSetFile $NUMVM ${0##*/} + +fi + +duration=$SECONDS + +printElapsed $@ + diff --git a/src/testclient/scripts/testSet.env b/src/testclient/scripts/testSet.env index 3013f604c..6c8683164 100644 --- a/src/testclient/scripts/testSet.env +++ b/src/testclient/scripts/testSet.env @@ -217,34 +217,36 @@ OpenstackRegion01=$((++IY)) # Location: Korea Daejeon (Internal) -# NCP (Total: 5 Regions / Recommend: ? Regions / Not tested yet) -NumRegion[$IndexNCP]=5 +# NCP (Total: 7 Regions / Recommend: ? Regions) +NumRegion[$IndexNCP]=7 -TotalNumRegion[$IndexNCP]=5 +TotalNumRegion[$IndexNCP]=7 IY=0 -NcpKorea1=$((++IY)) # Location: NCP Korea +NcpKorea1=$((++IY)) # Location: NCP Korea (Gasan) +NcpKorea2=$((++IY)) # Location: NCP Korea (PyeongChon) NcpUsWestern=$((++IY)) # Location: NCP US West NcpGermany=$((++IY)) # Location: NCP Germany NcpSingapore=$((++IY)) # Location: NCP Singapore NcpJapan=$((++IY)) # Location: NCP Japan +NcpHongkong=$((++IY)) # Location: NCP Hongkong -# NCP VPC (Total: 6 Regions / Recommend: ? Regions / Not tested yet) -NumRegion[$IndexNCPVPC]=1 +# NCP VPC (Total: 6 Regions / Recommend: ? Regions) +NumRegion[$IndexNCPVPC]=6 -TotalNumRegion[$IndexNCPVPC]=3 +TotalNumRegion[$IndexNCPVPC]=6 IY=0 NcpVpcKorea1=$((++IY)) # Location: NCP VPC Korea 1 -# NcpVpcKorea2=$((++IY)) # Location: NCP VPC Korea 2 +NcpVpcKorea2=$((++IY)) # Location: NCP VPC Korea 2 NcpVpcSingapore4=$((++IY)) # Location: NCP VPC Singapore 4 -# NcpVpcSingapore5=$((++IY)) # Location: NCP VPC Singapore 5 +NcpVpcSingapore5=$((++IY)) # Location: NCP VPC Singapore 5 NcpVpcJapan4=$((++IY)) # Location: NCP VPC Japan 4 -# NcpVpcJapan5=$((++IY)) # Location: NCP VPC Japan 5 +NcpVpcJapan5=$((++IY)) # Location: NCP VPC Japan 5 @@ -286,18 +288,18 @@ TencentApHongKong=$((++IY)) # Location: Hong Kong # KT cloud (Total: 6 Regions / Recommend: n Regions) -NumRegion[$IndexKTcloud]=1 +NumRegion[$IndexKTcloud]=4 TotalNumRegion[$IndexKTcloud]=4 IY=0 -KTcloudKRcentralA=$((++IY)) # Location: Cheon-an, South Korea -KTcloudKRcentralB=$((++IY)) # Location: Cheon-an, South Korea +KTcloudKRCentralA=$((++IY)) # Location: Cheon-an, South Korea +KTcloudKRCentralB=$((++IY)) # Location: Cheon-an, South Korea KTcloudKRSeoulM=$((++IY)) # Location: Seoul, South Korea KTcloudKRSeoulM2=$((++IY)) # Location: Seoul, South Korea -# KT cloud VPC (Total: ? Regions / Recommend: ? Regions) +# KT cloud VPC (Total: 1 Regions / Recommend: ? Regions) NumRegion[$IndexKTcloudVPC]=1 TotalNumRegion[$IndexKTcloudVPC]=1 @@ -329,17 +331,17 @@ IbmVpcJpTokyo=$((++IY)) # Location: Tokyo (Japan) # NHN Cloud (Total: 6 Regions / Recommend: n Regions) -NumRegion[$IndexNHNcloud]=1 +NumRegion[$IndexNHNcloud]=6 -TotalNumRegion[$IndexNHNcloud]=3 +TotalNumRegion[$IndexNHNcloud]=6 IY=0 -NHNcloudKrPangyo1=$((++IY)) # Location: South Korea (Pangyo) -# NHNcloudKrPangyo2=$((++IY)) # Location: South Korea (Pangyo) -NHNcloudKrPyeongchon1=$((++IY)) # Location: South Korea (Pyeongchon) -# NHNcloudKrPyeongchon2=$((++IY)) # Location: South Korea (Pyeongchon) -NHNcloudJpTokyo1=$((++IY)) # Location: Japan (Tokyo) -# NHNcloudJpTokyo2=$((++IY)) # Location: Japan (Tokyo) +NHNcloudKrPangyo1=$((++IY)) # Location: South Korea (Pangyo1) +NHNcloudKrPangyo2=$((++IY)) # Location: South Korea (Pangyo2) +NHNcloudKrPyeongchon1=$((++IY)) # Location: South Korea (Pyeongchon1) +NHNcloudKrPyeongchon2=$((++IY)) # Location: South Korea (Pyeongchon2) +NHNcloudJpTokyo1=$((++IY)) # Location: Japan (Tokyo1) +NHNcloudJpTokyo2=$((++IY)) # Location: Japan (Tokyo2)