Added 2 more resources test cases 77/15177/13
authorSinghsumalee, Pete (ps2418) <petes@att.com>
Mon, 25 Sep 2017 19:13:15 +0000 (14:13 -0500)
committerVenkata Harish K Kajur <vk250x@att.com>
Fri, 29 Sep 2017 00:22:18 +0000 (00:22 +0000)
Also modified the resources setup to take
 into account recent changes

Issue ID: AAI-155
Change-Id: I71997fcf0ee6b4c2eb17abb1a7f6a4bd1255aba0
Signed-off-by: Singhsumalee, Pete (ps2418) <petes@att.com>
Signed-off-by: Venkata Harish K Kajur <vk250x@att.com>
test/csit/plans/aai/resources/docker-compose.yml
test/csit/plans/aai/resources/setup.sh
test/csit/plans/aai/traversal/setup.sh
test/csit/tests/aai/resources/db_edge_rule/prevent_delete.robot [new file with mode: 0644]
test/csit/tests/aai/resources/relationship_suite/relationship_using_related_link.robot [new file with mode: 0644]

index 923f24d..09d2a81 100644 (file)
@@ -9,6 +9,7 @@ services:
       - CHEF_BRANCH=master
       - CHEF_GIT_URL=http://gerrit.onap.org/r/aai
       - AAI_CORE_VERSION=1.1.0-SNAPSHOT
+      - LOCAL_USER_ID=${USER_ID}
     ports:
       - 8447:8447
     logging:
@@ -25,6 +26,8 @@ services:
       - CHEF_BRANCH=master
       - CHEF_GIT_URL=http://gerrit.onap.org/r/aai
       - AAI_CORE_VERSION=1.1.0-SNAPSHOT
+      - LOCAL_USER_ID=${USER_ID}
+      - DISABLE_UPDATE_QUERY=true
     ports:
       - 8446:8446
     logging:
index 915536b..19beb63 100644 (file)
@@ -31,7 +31,7 @@ function wait_for_container() {
     CONTAINER_NAME="$1";
     START_TEXT="$2";
 
-    TIMEOUT=240
+    TIMEOUT=360
 
     # wait for the real startup
     AMOUNT_STARTUP=$(docker logs ${CONTAINER_NAME} 2>&1 | grep "$START_TEXT" | wc -l)
@@ -59,6 +59,7 @@ export HBASE_VERSION="${HBASE_VERSION:-1.2.0}";
 
 docker pull ${HBASE_IMAGE}:${HBASE_VERSION};
 
+docker pull ${HBASE_IMAGE}:${HBASE_VERSION};
 docker pull ${DOCKER_REGISTRY}/openecomp/aai-resources:${DOCKER_IMAGE_VERSION};
 docker tag ${DOCKER_REGISTRY}/openecomp/aai-resources:${DOCKER_IMAGE_VERSION} ${DOCKER_REGISTRY}/openecomp/aai-resources:latest;
 
@@ -74,25 +75,36 @@ wait_for_container ${HBASE_CONTAINER_NAME} ' Started SelectChannelConnector@0.0.
 wait_for_container ${HBASE_CONTAINER_NAME} ' Started SelectChannelConnector@0.0.0.0:8080';
 wait_for_container ${HBASE_CONTAINER_NAME} ' Started SelectChannelConnector@0.0.0.0:9095';
 
-# Start the resources microservice
-RESOURCES_CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} up -d aai-resources.api.simpledemo.openecomp.org 2>&1 | grep 'Creating' | grep -v 'volume' | grep -v 'network' | awk '{ print $2; }' | head -1);
-wait_for_container ${RESOURCES_CONTAINER_NAME} '0.0.0.0:8447';
-docker logs ${CONTAINER_NAME};
-
-# Start the traversal microservice
-GRAPH_CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} up -d aai-traversal.api.simpledemo.openecomp.org 2>&1 | grep 'Creating' | awk '{ print $2; }' | head -1);
-wait_for_container ${GRAPH_CONTAINER_NAME} '0.0.0.0:8446';
+USER_EXISTS=$(check_if_user_exists aaiadmin);
 
-# Start the haproxy to route requests between resources and traversal
-HAPROXY_CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} up -d aai.api.simpledemo.openecomp.org 2>&1 |grep 'Creating' | grep -v 'volume' | grep -v 'network' | awk '{ print $2; }' | head -1);
+function check_if_user_exists(){
+    local user_id=$1;
 
-echo "A&AI Microservices, resources and traversal, are up and running along with HAProxy";
+    if [ -z "$user_id" ]; then
+        echo "Needs to provide at least one argument for check_if_user_exists func";
+        exit 1;
+    fi;
 
-docker exec $GRAPH_CONTAINER_NAME "/opt/app/aai-traversal/scripts/install/updateQueryData.sh" && {
-       echo "Successfully loaded the widget related data into db";
-} || {
-       echo "Unable to load widget related data into db";
+    id -u ${user_id} > /dev/null 2>&1 && {
+        echo "1";
+    } || {
+        echo "0";
+    }
 }
 
+
+if [ "${USER_EXISTS}" -eq 0 ]; then
+        export USER_ID=9000;
+else
+        export USER_ID=$(id -u aaiadmin);
+fi;
+
+RESOURCES_CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} up -d aai-resources.api.simpledemo.openecomp.org 2>&1 | grep 'Creating' | grep -v 'volume' | grep -v 'network' | awk '{ print $2; }' | head -1);
+wait_for_container ${RESOURCES_CONTAINER_NAME} '0.0.0.0:8447';
+
+docker logs ${RESOURCES_CONTAINER_NAME};
+
+${DOCKER_COMPOSE_CMD} up -d aai-traversal.api.simpledemo.openecomp.org aai.api.simpledemo.openecomp.org
+echo "A&AI Microservices, resources and traversal, are up and running along with HAProxy";
 # Set the host ip for robot from the haproxy
 ROBOT_VARIABLES="-v HOST_IP:`ip addr show docker0 | head -3 | tail -1 | cut -d' ' -f6 | cut -d'/' -f1`"
index 80eace0..010b035 100644 (file)
@@ -58,6 +58,7 @@ export HBASE_IMAGE="${HBASE_IMAGE:-aaionap/hbase}";
 export HBASE_VERSION="${HBASE_VERSION:-1.2.0}";
 
 docker pull ${HBASE_IMAGE}:${HBASE_VERSION};
+
 docker pull ${DOCKER_REGISTRY}/openecomp/aai-resources:${DOCKER_IMAGE_VERSION};
 docker tag ${DOCKER_REGISTRY}/openecomp/aai-resources:${DOCKER_IMAGE_VERSION} ${DOCKER_REGISTRY}/openecomp/aai-resources:latest;
 
diff --git a/test/csit/tests/aai/resources/db_edge_rule/prevent_delete.robot b/test/csit/tests/aai/resources/db_edge_rule/prevent_delete.robot
new file mode 100644 (file)
index 0000000..beae2da
--- /dev/null
@@ -0,0 +1,131 @@
+*** Settings ***
+Library       OperatingSystem
+Library       RequestsLibrary
+Library       requests
+Library       Collections
+
+*** Variables ***
+${CRKEYVALUE7}       cr-integration-test7
+${CRKEYVALUE8}       cr-integration-test8
+${TENANTKEYVALUE}    tenant-integration-test7
+${VSERVERKEYVALUE}   vserver-integration-test7
+
+${CRURL}             https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE7}/${CRKEYVALUE8}
+${TENANTURL}         https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE7}/${CRKEYVALUE8}/tenants/tenant/${TENANTKEYVALUE}
+${VSERVERURL}        https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE7}/${CRKEYVALUE8}/tenants/tenant/${TENANTKEYVALUE}/vservers/vserver/${VSERVERKEYVALUE}
+${CRDATA}  {"cloud-owner":"${CRKEYVALUE7}","cloud-region-id":"${CRKEYVALUE8}","owner-defined-type":"example-owner-defined-type-98787654321-09","cloud-region-version":"example-cloud-region-version-98765784321-09","identity-url":"example-identity-url-98765437821-09","cloud-zone":"example-cloud-zone-98765784321-09","complex-name":"example-complex-name-98765874321-09"}
+${TENANTDATA}  {"tenant-id":"${TENANTKEYVALUE}","tenant-name":"example-tenant-name-val-143742","vservers":{"vserver":[{"vserver-id":"${VSERVERKEYVALUE}","vserver-name":"example-vserver-name-val-357201","vserver-name2":"example-vserver-name2-val-672821","prov-status":"example-prov-status-val-137711","vserver-selflink":"example-vserver-selflink-val-58731","in-maint":true,"is-closed-loop-disabled":true}]}}
+
+
+*** Test Cases ***
+Run AAI Put cloud-region
+    [Documentation]             Create an cloud-region object
+    ${resp}=                    PutWithCert              ${CRURL}              ${CRDATA}
+    log                         ${CRURL}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      201
+       
+Run AAI Put tenant
+    [Documentation]             Create an tenant object
+    ${resp}=                    PutWithCert              ${TENANTURL}              ${TENANTDATA}
+    log                         ${TENANTURL}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      201
+
+Run AAI Get tenant to delete
+    [Documentation]             Get tenant object to delete
+    ${resp}                     GetWithCert              ${TENANTURL}
+    log                         ${resp}
+    log                         ${resp.json()}
+    Should Be Equal As Strings  ${resp.status_code}      200
+    ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
+    Set Global Variable                        ${resource_version}
+
+Run AAI Delete tenant
+    [Documentation]             Delete the tenant
+    ${resp}=                    DeleteWithCert           ${TENANTURL}?resource-version=${resource_version}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      400
+       
+Run AAI Get vserver to delete
+    [Documentation]             Get vserver object to delete
+    ${resp}                     GetWithCert              ${VSERVERURL}
+    log                         ${resp}
+    log                         ${resp.json()}
+    Should Be Equal As Strings  ${resp.status_code}      200
+    ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
+    Set Global Variable                        ${resource_version}
+
+Run AAI Delete vserver
+    [Documentation]             Delete the vserver
+    ${resp}=                    DeleteWithCert           ${VSERVERURL}?resource-version=${resource_version}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      204
+               
+Run AAI Get tenant to delete
+    [Documentation]             Get tenant object to delete
+    ${resp}                     GetWithCert              ${TENANTURL}
+    log                         ${resp}
+    log                         ${resp.json()}
+    Should Be Equal As Strings  ${resp.status_code}      200
+    ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
+    Set Global Variable                        ${resource_version}
+
+Run AAI Delete tenant
+    [Documentation]             Delete the tenant
+    ${resp}=                    DeleteWithCert           ${TENANTURL}?resource-version=${resource_version}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      204   
+       
+Run AAI Get cr to delete
+    [Documentation]             Get cr object to delete
+    ${resp}                     GetWithCert              ${CRURL}
+    log                         ${resp}
+    log                         ${resp.json()}
+    Should Be Equal As Strings  ${resp.status_code}      200
+    ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
+    Set Global Variable                        ${resource_version}
+
+Run AAI Delete cr
+    [Documentation]             Delete the cr
+    ${resp}=                    DeleteWithCert           ${CRURL}?resource-version=${resource_version}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      204   
+       
+*** Keywords ***
+PutWithCert
+    [Arguments]      ${url}      ${data}
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.put('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}
+       
+PatchWithCert
+    [Arguments]      ${url}      ${data}
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/merge-patch+json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.patch('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}   
+
+PostWithCert
+    [Arguments]      ${url}      ${data}
+    ${auth}=         Create List  AAI AAI
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.post('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}
+
+GetWithCert
+    [Arguments]      ${url}
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.get('${url}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}
+
+DeleteWithCert
+    [Arguments]      ${url}
+    ${auth}=         Create List  AAI AAI
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.delete('${url}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}
\ No newline at end of file
diff --git a/test/csit/tests/aai/resources/relationship_suite/relationship_using_related_link.robot b/test/csit/tests/aai/resources/relationship_suite/relationship_using_related_link.robot
new file mode 100644 (file)
index 0000000..5820d4a
--- /dev/null
@@ -0,0 +1,110 @@
+*** Settings ***
+Library       OperatingSystem
+Library       RequestsLibrary
+Library       requests
+Library       Collections
+
+*** Variables ***
+${COMPLEXKEYVALUE}     complex-integration-test8
+${L3NETWORKKEYVALUE}   l3-network-integration-test8
+${COMPLEXURL}    https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/complexes/complex/${COMPLEXKEYVALUE}
+${L3NETWORKURL}  https://${HOST_IP}:8443/aai/v11/network/l3-networks/l3-network/${L3NETWORKKEYVALUE}
+${COMPLEXDATA}  {"physical-location-id":"${COMPLEXKEYVALUE}","data-center-code":"example-data-center-code-val-77883","complex-name":"example-complex-name-val-12992","identity-url":"example-identity-url-val-74366","physical-location-type":"example-physical-location-type-val-32854","street1":"example-street1-val-26496","street2":"example-street2-val-6629","city":"example-city-val-30262","state":"example-state-val-9058","postal-code":"example-postal-code-val-44893","country":"example-country-val-98673","region":"example-region-val-10014","latitude":"example-latitude-val-47555","longitude":"example-longitude-val-76903","elevation":"example-elevation-val-63385","lata":"example-lata-val-90935"}
+${L3NETWORKDATA}  {"network-id":"${L3NETWORKKEYVALUE}","network-name":"example-network-name-val-54688","network-type":"example-network-type-val-57468","network-role":"example-network-role-val-54868","network-technology":"example-network-technology-val-5468","neutron-network-id":"example-neutron-network-id-val-54678","is-bound-to-vpn":"true","service-id":"example-service-id-val-5468","orchestration-status":"example-orchestration-status-val-5468","heat-stack-id":"example-heat-stack-id-val-5468","mso-catalog-key":"example-mso-catalog-key-val-5468","relationship-list":{"relationship":[{"related-to":"complex","related-link":"/aai/v11/cloud-infrastructure/complexes/complex/${COMPLEXKEYVALUE}"}]}}
+
+*** Test Cases ***
+Run AAI Put complex
+    [Documentation]             Create an complex object
+    ${resp}=                    PutWithCert              ${COMPLEXURL}              ${COMPLEXDATA}
+    log                         ${COMPLEXURL}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      201
+
+Run AAI Get complex
+    [Documentation]             Get the complex object just created
+    ${resp}                     GetWithCert              ${COMPLEXURL}
+    log                         ${resp}
+    log                         ${resp.json()}
+    Should Be Equal As Strings  ${resp.status_code}      200
+       
+Run AAI Put l3-network relationship with complex
+    [Documentation]             Create l3-network relationship with complex
+    ${resp}=                    PutWithCert              ${L3NETWORKURL}              ${L3NETWORKDATA}
+    log                         ${L3NETWORKURL}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      201
+
+Run AAI Get l3-network
+    [Documentation]             Get the l3-network object just created with relationship with complex
+    ${resp}                     GetWithCert              ${L3NETWORKURL}
+    log                         ${resp}
+    log                         ${resp.json()}
+    Should Be Equal As Strings  ${resp.status_code}      200   
+       
+Run AAI Get l3-network to delete
+    [Documentation]             Get l3-network object to delete
+    ${resp}                     GetWithCert              ${L3NETWORKURL}
+    log                         ${resp}
+    log                         ${resp.json()}
+    Should Be Equal As Strings  ${resp.status_code}      200
+    ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
+    Set Global Variable                        ${resource_version}
+
+Run AAI Delete l3-network
+    [Documentation]             Delete the l3-network just created
+    ${resp}=                    DeleteWithCert           ${L3NETWORKURL}?resource-version=${resource_version}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      204
+       
+Run AAI Get complex to delete
+    [Documentation]             Get complex object to delete
+    ${resp}                     GetWithCert              ${COMPLEXURL}
+    log                         ${resp}
+    log                         ${resp.json()}
+    Should Be Equal As Strings  ${resp.status_code}      200
+    ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
+    Set Global Variable                        ${resource_version}
+
+Run AAI Delete complex
+    [Documentation]             Delete the complex just created
+    ${resp}=                    DeleteWithCert           ${COMPLEXURL}?resource-version=${resource_version}
+    log                         ${resp.text}
+    Should Be Equal As Strings  ${resp.status_code}      204   
+       
+*** Keywords ***
+PutWithCert
+    [Arguments]      ${url}      ${data}
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.put('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}
+       
+PatchWithCert
+    [Arguments]      ${url}      ${data}
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/merge-patch+json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.patch('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}   
+
+PostWithCert
+    [Arguments]      ${url}      ${data}
+    ${auth}=         Create List  AAI AAI
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.post('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}
+
+GetWithCert
+    [Arguments]      ${url}
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.get('${url}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}
+
+DeleteWithCert
+    [Arguments]      ${url}
+    ${auth}=         Create List  AAI AAI
+    ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
+    ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
+    ${resp}=         Evaluate    requests.delete('${url}', headers=${headers}, cert=${certinfo}, verify=False)    requests
+    [return]         ${resp}
\ No newline at end of file