Create VNF Instantiation Testing 38/94838/4
authoreHanan <eoin.hanan@est.tech>
Tue, 3 Sep 2019 13:45:18 +0000 (13:45 +0000)
committerEoin Hanan <eoin.hanan@est.tech>
Tue, 3 Sep 2019 13:48:31 +0000 (13:48 +0000)
Change-Id: I230e569c0b25d31aaf63d5476c7585673c9eb58b
Issue-ID: SO-2238
Signed-off-by: eHanan <eoin.hanan@est.tech>
plans/so/integration-etsi-testing/config/env
plans/so/integration-etsi-testing/config/override-files/bpmn-infra/onapheat/override.yaml
plans/so/integration-etsi-testing/config/override-files/vnfm-adapter/onapheat/override.yaml [new file with mode: 0644]
plans/so/integration-etsi-testing/docker-compose.yml
tests/so/etsi/data/vnfInstantiationRequest.json [new file with mode: 0644]
tests/so/etsi/etsi_tests.robot

index 54d6720..61603aa 100644 (file)
@@ -1,5 +1,5 @@
 NEXUS_DOCKER_REPO_MSO=nexus3.onap.org:10001
-TAG=1.4.0-STAGING-latest
+TAG=1.4.3-STAGING-latest
 TIME_OUT_DEFAULT_VALUE_SEC=1200
 PROJECT_NAME=etsiintegrationtesting
 DEFAULT_NETWORK_NAME=etsiintegrationtesting_default
index d38888d..66e3b20 100644 (file)
@@ -258,6 +258,12 @@ sdnc:
     svc:
       types: PORT-MIRROR,PPROBE
 
+so:
+  vnfm:
+    adapter:
+      url: http://vnfm-adapter:9092/so/vnfm-adapter/v1/
+      auth: Basic dm5mbTpwYXNzd29yZDEk
+
 appc:
   client:
     topic:
diff --git a/plans/so/integration-etsi-testing/config/override-files/vnfm-adapter/onapheat/override.yaml b/plans/so/integration-etsi-testing/config/override-files/vnfm-adapter/onapheat/override.yaml
new file mode 100644 (file)
index 0000000..e2f8cc1
--- /dev/null
@@ -0,0 +1,19 @@
+server:
+    port: 9092
+    tomcat:
+        max-threads: 4
+ssl-enable: false
+aai:
+    auth: 221187EFA3AD4E33600DE0488F287099934CE65C3D0697BCECC00BB58E784E07CD74A24581DC31DBC086FF63DF116378776E9BE3D1325885
+    version: v15
+    endpoint:  https://aai-simulator:9993
+mso:
+      key: 07a7159d3bf51a0e53be7a8f89699be7
+sdc:
+  username: mso
+  password: 76966BDD3C7414A03F7037264FF2E6C8EEC6C28F2B67F2840A1ED857C0260FEE731D73F47F828E5527125D29FD25D3E0DE39EE44C058906BF1657DE77BF897EECA93BDC07FA64F
+  key: 566B754875657232314F5548556D3665
+  endpoint: http://sdc-simulator:9991/
+  toscametapath: Artifacts/Deployment/OTHER/TOSCA.meta
+vnfmadapter:
+  endpoint: http://vnfm-adapter:9092
\ No newline at end of file
index 2c7261c..76dd7b6 100644 (file)
@@ -234,7 +234,7 @@ services:
     ports:
       - "30224:30224"
     volumes:
-      - ${TEST_LAB_DIR}/volumes/so/config/api-handler-infra/onapheat:/app/config
+      - ${CONFIG_DIR_PATH}/override-files/so-monitoring/onapheat:/app/config
     environment:
       - APP=so-monitoring
       - JVM_ARGS=-Xms64m -Xmx512m
@@ -251,7 +251,7 @@ services:
       - "9092:9092"
     volumes:
       - ${TEST_LAB_DIR}/volumes/so/ca-certificates/onapheat:/app/ca-certificates
-      - ${TEST_LAB_DIR}/volumes/so/config/vnfm-adapter/onapheat:/app/config
+      - ${CONFIG_DIR_PATH}/override-files/vnfm-adapter/onapheat:/app/config
     environment:
     - APP=vnfm-adapter
     - JVM_ARGS=-Xms64m -Xmx512m
diff --git a/tests/so/etsi/data/vnfInstantiationRequest.json b/tests/so/etsi/data/vnfInstantiationRequest.json
new file mode 100644 (file)
index 0000000..a4cc5c9
--- /dev/null
@@ -0,0 +1,49 @@
+{
+  "requestDetails": {
+    "requestInfo": {
+      "instanceName": "CsitEtsiVnfInstance",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "demo",
+      "productFamilyId": "f13844f4-dbf8-4d0e-a979-45204f3ddb4e"
+    },
+    "modelInfo": {
+      "modelType": "vnf",
+      "modelInvariantId": "0a0b9979-863d-4b7e-b7f4-d27725a182b3",
+      "modelVersionId": "8f43a8c9-c677-462a-ae36-8ddb5990a60d",
+      "modelName": "manualDistributionTestVNF",
+      "modelVersion": "1.0",
+      "modelCustomizationId": "82ad3aa0-edc6-410c-a217-655fb064323f",
+      "modelCustomizationName": "manualDistributionTestVNF 0"
+    },
+    "requestParameters": {
+      "userParams": [],
+      "testApi": "GR_API"
+    },
+    "cloudConfiguration": {
+      "lcpCloudRegionId": "EtsiCloudRegion",
+      "cloudOwner": "CloudOwner",
+      "tenantId": "693c7729b2364a26a3ca602e6f66187d"
+    },
+    "lineOfBusiness": {
+      "lineOfBusinessName": "EtsiCsitLineOfBusiness"
+    },
+    "platform": {
+      "platformName": "EtsiCsitPlatform"
+    },
+    "relatedInstanceList": [
+      {
+        "relatedInstance": {
+          "instanceId": "",
+          "modelInfo": {
+            "modelType": "service",
+            "modelName": "Sol004Zip4Service",
+            "modelInvariantId": "0ddc448d-5513-44bc-8b02-5759d84600d5",
+            "modelVersion": "1.0",
+            "modelVersionId": "99d59273-4450-4034-9141-027f0c1a807a"
+          }
+        }
+      }
+    ]
+  }
+}
\ No newline at end of file
index b2bf3ed..4459c07 100644 (file)
@@ -5,7 +5,8 @@ Library     OperatingSystem
 Library     json
 
 *** Variables ***
-
+${SLEEP_INTERVAL_SEC}=   5
+${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}=     48     # Represents the maximum number of attempts that will be made before a timeout. It sleeps for SLEEP_INTERVAL_SEC seconds before retry.
 
 *** Test Cases ***
 Distribute Service Template
@@ -23,20 +24,55 @@ Invoke Service Instantiation
     ${service_instantiation_request}=    Post Request    api_handler_session    /onap/so/infra/serviceInstantiation/v7/serviceInstances    data=${data}    headers=${headers}
     Run Keyword If  '${service_instantiation_request.status_code}' == '200'  log to console   \nexecuted with expected result
     log to console      ${service_instantiation_request.content}
-    ${service_instantiation_json_responce}=    Evaluate     json.loads("""${service_instantiation_request.content}""")    json
-
-    ${actual_request_state}=    SET VARIABLE    ""
+    ${service_instantiation_json_response}=    Evaluate     json.loads("""${service_instantiation_request.content}""")    json
+    ${request_ID}=          Set Variable         ${service_instantiation_json_response}[requestReferences][requestId]
+    ${service_instance_Id}=     Set Variable       ${service_instantiation_json_response}[requestReferences][instanceId]
+    SET GLOBAL VARIABLE       ${service_instance_Id}
+    ${actual_request_state}=    Set Variable    ""
 
-    : FOR    ${INDEX}    IN RANGE    48
-    \   ${orchestration_status_request}=   Get Request  api_handler_session   /onap/so/infra/orchestrationRequests/v7/${service_instantiation_json_responce}[requestReferences][requestId]
+    : FOR    ${INDEX}    IN RANGE    ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
+    \   ${orchestration_status_request}=   Get Request  api_handler_session   /onap/so/infra/orchestrationRequests/v7/${request_ID}
     \   Run Keyword If  '${orchestration_status_request.status_code}' == '200'  log to console   \nexecuted with expected result
     \   log to console      ${orchestration_status_request.content}
-    \   ${orchestration_json_responce}=    Evaluate     json.loads("""${orchestration_status_request.content}""")    json
-    \   ${actual_request_state}=     SET VARIABLE       ${orchestration_json_responce}[request][requestStatus][requestState]
+    \   ${orchestration_json_response}=    Evaluate     json.loads("""${orchestration_status_request.content}""")    json
+    \   ${actual_request_state}=     SET VARIABLE       ${orchestration_json_response}[request][requestStatus][requestState]
     \   Log To Console    Received actual repsonse status:${actual_request_state}
     \   RUN KEYWORD IF   '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED'      Exit For Loop
-    \   log to console  Will try again after 5 seconds
-    \   SLEEP   5s
+    \   log to console  Will try again after ${SLEEP_INTERVAL_SEC} seconds
+    \   SLEEP   ${SLEEP_INTERVAL_SEC}s
+
     Log To Console     final repsonse status received: ${actual_request_state}
     Run Keyword If  '${actual_request_state}' == 'COMPLETE'  log to console   \nexecuted with expected result
     Should Be Equal As Strings    '${actual_request_state}'    'COMPLETE'
+
+Invoke VNF Instantiation
+    Run Keyword If      "${service_instance_Id}"!="${EMPTY}"      Log to Console    Service Instance ID :${service_instance_Id} received
+    ...                ELSE      Fail           Log to Console  Invalid Service Instance ID :${service_instance_Id} recieved
+
+    Create Session   api_handler_session  http://${REPO_IP}:8080
+    ${data}=    Get Binary File     ${CURDIR}${/}data${/}vnfInstantiationRequest.json
+    ${vnf_instantiate_request_json}=    evaluate    json.loads('''${data}''')    json
+    set to dictionary    ${vnf_instantiate_request_json}[requestDetails][relatedInstanceList][0][relatedInstance]        instanceId=${service_instance_Id}
+    ${vnf_instantiate_request_string}=    evaluate    json.dumps(${vnf_instantiate_request_json})    json
+
+    &{headers}=  Create Dictionary    Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==    Content-Type=application/json    Accept=application/json
+    ${vnf_instantiate_request}=    Post Request    api_handler_session    /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/vnfs   data=${vnf_instantiate_request_string}    headers=${headers}
+    Run Keyword If  '${vnf_instantiate_request.status_code}' == '200'  log to console   \nexecuted with expected result
+    ${vnf_instantiate_json_response}=    Evaluate     json.loads("""${vnf_instantiate_request.content}""")    json
+    ${request_ID}=          Set Variable         ${vnf_instantiate_json_response}[requestReferences][requestId]
+    ${actual_request_state}=    SET VARIABLE    ""
+
+    : FOR    ${INDEX}    IN RANGE    ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
+    \   ${orchestration_status_request}=   Get Request  api_handler_session   /onap/so/infra/orchestrationRequests/v7/${request_ID}
+    \   Run Keyword If  '${orchestration_status_request.status_code}' == '200'  log to console   \nexecuted with expected result
+    \   Log To Console      ${orchestration_status_request.content}
+    \   ${orchestration_json_response}=    Evaluate     json.loads("""${orchestration_status_request.content}""")    json
+    \   ${actual_request_state}=     SET VARIABLE       ${orchestration_json_response}[request][requestStatus][requestState]
+    \   ${service_instance_Id}=     SET VARIABLE       ${orchestration_json_response}[request][instanceReferences][serviceInstanceId]
+    \   RUN KEYWORD IF   '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED'      Exit For Loop
+    \   Log To Console  Will try again after ${SLEEP_INTERVAL_SEC} seconds
+    \   SLEEP   ${SLEEP_INTERVAL_SEC}s
+
+    Log To Console     final repsonse status received: ${actual_request_state}
+    Run Keyword If  '${actual_request_state}' == 'COMPLETE'  log to console   \nexecuted with expected result
+    Should Be Equal As Strings    '${actual_request_state}'    'COMPLETE'
\ No newline at end of file