Add additional tests for ETSI NFVO NS LCM CSIT Tests
[integration/csit.git] / tests / so / etsi / etsi_nfvo_ns_lcm_tests.robot
1 *** Settings ***
2 Library     Collections
3 Library     RequestsLibrary
4 Library     OperatingSystem
5 Library     json
6 Library     ArchiveLibrary
7
8 *** Variables ***
9 ${NFVO_NS_LCM_BASE_URL}=    /so/so-etsi-nfvo-ns-lcm/v1/api/nslcm/v1
10 ${BASIC_AUTH}=    Basic c28tZXRzaS1uZnZvLW5zLWxjbTpwYXNzd29yZDEk
11
12 *** Test Cases ***
13
14 Invoke Create Network Service
15     Create Session   etsi_nfvo_ns_lcm_session  http://${REPO_IP}:9095
16     ${data}=    Get Binary File     ${CURDIR}${/}data${/}createNetworkServiceRequest.json
17     &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json    HTTP_GLOBALCUSTOMERID=DemoCustomer
18     ${create_network_service_request}=    POST On Session    etsi_nfvo_ns_lcm_session    ${NFVO_NS_LCM_BASE_URL}/ns_instances    data=${data}    headers=${headers}
19     log to console    ${create_network_service_request.content}
20     ${create_network_service_json_response}=    Evaluate    json.loads(r"""${create_network_service_request.content}""", strict=False)    json
21     ${request_Id}=    Set Variable   ${create_network_service_json_response}[id]
22     SET GLOBAL VARIABLE    ${request_Id}
23
24     Should Be Equal As Strings    '${create_network_service_request.status_code}'    '201'
25
26 Invoke Instantiate Network Service
27     Run Keyword If    "${request_Id}"!="${EMPTY}"   Log to Console    Network Service ID :${request_Id}
28     ...    ELSE    Fail    \nInvalid Network Service ID :${request_Id} received
29     Create Session   etsi_nfvo_ns_lcm_session  http://${REPO_IP}:9095
30     ${data}=    Get Binary File     ${CURDIR}${/}data${/}instantiateNetworkServiceRequest.json
31     &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
32     ${instantiate_network_service_request}=    POST On Session    etsi_nfvo_ns_lcm_session    ${NFVO_NS_LCM_BASE_URL}/ns_instances/${request_Id}/instantiate    data=${data}    headers=${headers}
33     Run Keyword If  '${instantiate_network_service_request.status_code}' == '202'  log to console   \nexecuted with expected result
34     ...    ELSE    Fail    \nInstantiate Network Service Request Received Response: ${instantiate_network_service_request.status_code}
35     log to console    \n${instantiate_network_service_request.content}
36
37     Wait Until Keyword Succeeds    3 min    5 secs    Get NS LCM OP OCCs
38
39 Invoke Terminate Network Service
40     Run Keyword If    "${actual_request_state}"=="COMPLETED"    Log to Console    NS LCM OP OCCs State: ${actual_request_state}
41     ...    ELSE    Fail    \nTerminate Network Service Failed to Start. Instantiate Network Service Request State: ${actual_request_state}
42     Create Session   etsi_nfvo_ns_lcm_session  http://${REPO_IP}:9095
43     &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
44     ${terminate_network_service_request}=    POST On Session    etsi_nfvo_ns_lcm_session    ${NFVO_NS_LCM_BASE_URL}/ns_instances/${request_Id}/terminate    headers=${headers}
45     Run Keyword If  '${terminate_network_service_request.status_code}' == '202'  log to console   \nexecuted with expected result
46     ...    ELSE    Fail    \nTerminate Network Service Request Received Response: ${terminate_network_service_request.status_code}
47     log to console    \n${terminate_network_service_request.content}
48
49     Wait Until Keyword Succeeds    3 min    5 secs    Get NS LCM OP OCCs
50
51 Invoke Delete Network Service
52     Run Keyword If    "${actual_request_state}"=="COMPLETED"    Log to Console    NS LCM OP OCCs State: ${actual_request_state}
53     ...    ELSE    Fail    \nDelete Network Service Failed to Start. Invalid Previous Request State Received: ${actual_request_state}
54     Create Session   etsi_nfvo_ns_lcm_session  http://${REPO_IP}:9095
55     &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
56     ${delete_network_service_request}=    DELETE On Session    etsi_nfvo_ns_lcm_session    ${NFVO_NS_LCM_BASE_URL}/ns_instances/${request_Id}    headers=${headers}
57     log to console    \n${delete_network_service_request.content}
58
59     Should Be Equal As Strings    '${delete_network_service_request.status_code}'    '204'
60
61 *** Keywords ***
62
63 Get NS LCM OP OCCs
64     ${ns_lcm_status_request}=   GET On Session  etsi_nfvo_ns_lcm_session   ${NFVO_NS_LCM_BASE_URL}/ns_lcm_op_occs/${request_Id}
65     log to console      \n${ns_lcm_status_request.content}
66     ${ns_lcm_request_json_response}=    Evaluate     json.loads(r"""${ns_lcm_status_request.content}""", strict=False)    json
67     ${actual_request_state}=     SET VARIABLE       ${ns_lcm_request_json_response}[operationState]
68     SET GLOBAL VARIABLE    ${actual_request_state}
69     Should Be Equal As Strings    ${ns_lcm_status_request.status_code}    200
70     Should Be Equal As Strings    ${actual_request_state}    COMPLETED