Commit a2c59eaf authored by Giacomo Bernini's avatar Giacomo Bernini
Browse files

added documentation to SOL002 VNFConf and VNFInd

parent d8da033d
Loading
Loading
Loading
Loading
+106 −72
Original line number Original line Diff line number Diff line
@@ -6,77 +6,106 @@ Library JSONSchemaLibrary schemas/
Library    OperatingSystem
Library    OperatingSystem
Library    DependencyLibrary
Library    DependencyLibrary


*** Variables ***
${response}=    httpresponse

*** Test Cases ***
*** Test Cases ***
POST Configuration - Method not implemented
    log    Trying to perform a POST. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Post    ${apiRoot}/${apiName}/${apiVersion}/configuration
    Log    Validate Status code
    Integer    response status    405

Get information about a configuration
    [Documentation]    Test ID: 9.4.2.2
    ...    Test title: Get information about a configuration
    ...    Test objective: The objective is to test the retrieval of an existing VNF instance configuration
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID: 9.4.2.1)
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VNFM
    ...    Applicability: The VNF supports the generation of HTTP Etag opaque identifiers
    ...    Post-Conditions: The VNF configuration is not modified by the operation
    Get VNF configuration
    Check HTTP Response Status Code Is    200
    Check HTTP Response Header Contains    Etag
    Check HTTP Response Body Json Schema Is   vnfConfiguration
    Check Postcondition VNF Configuration Untouched

PUT Config - Method not implemented
    log    Trying to perform a PUT. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Put    ${apiRoot}/${apiName}/${apiVersion}/configuration
    Log    Validate Status code
    Integer    response status    405

Set new VNF Configuration
Set new VNF Configuration
    [Documentation]    Test ID: 9.4.2.1
    [Documentation]    Test ID: 6.3.1
    ...    Test title: Set a new VNF Configuration
    ...    Test title: Set a new VNF Configuration
    ...    Test objective: The objective is to test the creation of a new VNF configuration
    ...    Test objective: The objective is to test the creation of a new VNF configuration
    ...    Pre-conditions: A VNF instance is up and running
    ...    Pre-conditions: A VNF instance is up and running
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VNFM
    ...    Config ID: Config_prod_VE
    ...    Applicability: The VNF supports the generation of HTTP Etag opaque identifiers
    ...    Applicability: The VNF supports the generation of HTTP Etag opaque identifiers
    ...    Post-Conditions: The VNF configuration is set
    ...    Post-Conditions: The VNF configuration is set
    Send VNF configuration
    Send VNF configuration
    Check HTTP Response Status Code Is    200
    Check HTTP Response Status Code Is    200
    Check HTTP Response Header Contains    Etag
    Check HTTP Response Header Contains    Etag
    Check HTTP Response Body Json Schema Is   vnfConfiModifications
    Check HTTP Response Body Json Schema Is   vnfConfigModifications
    Check Postcondition VNF Is Configured
    Check Postcondition VNF Is Configured


Get information about a VNF configuration
    [Tags]    no-etag
    [Documentation]    Test ID: 6.3.2
    ...    Test title: Get information about a VNF configuration
    ...    Test objective: The objective is to test the retrieval of an existing VNF instance configuration
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID 6.3.1)
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VE
    ...    Applicability: none
    ...    Post-Conditions: The VNF configuration is not modified by the operation
    Get VNF configuration
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is   vnfConfiguration
    Check Postcondition VNF Configuration Untouched (Implicit)

Get information about a VNF configuration - with HTTP Etag
    [Tags]    etag
    [Documentation]    Test ID: 6.3.3
    ...    Test title: Get information about a VNF configuration with HTTP Etag
    ...    Test objective: The objective is to test the retrieval of an existing VNF instance configuration with usage of HTTP Etag
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID 6.3.1)
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VE
    ...    Applicability: The VNF supports the generation of HTTP Etag opaque identifiers
    ...    Post-Conditions: The VNF configuration is not modified by the operation
    Get VNF configuration
    Check HTTP Response Status Code Is    200
    Check HTTP Response Header Contains    Etag
    Check HTTP Response Body Json Schema Is   vnfConfiguration
    Check Postcondition VNF Configuration Untouched (Implicit)

Set new VNF Configuration - HTTP Etag precondition failed
Set new VNF Configuration - HTTP Etag precondition failed
    [Documentation]    Test ID: 9.4.2.3
    [Tags]    etag
    [Documentation]    Test ID: 6.3.4
    ...    Test title: Set a new VNF Configuration - HTTP Etag precondition failed
    ...    Test title: Set a new VNF Configuration - HTTP Etag precondition failed
    ...    Test objective: The objective is to test the failure in setting a duplication of VNF configuration identified by an already used HTTP Etag identifier.
    ...    Test objective: The objective is to test the failure in setting a duplication of VNF configuration identified by an already used HTTP Etag identifier.
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID: 9.4.2.1) with a given HTTP Etag identifier.
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID 6.3.1) with a given HTTP Etag identifier.
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VNFM
    ...    Config ID: Config_prod_VE
    ...    Applicability: The VNF supports the generation of HTTP Etag opaque identifiers
    ...    Applicability: The VNF supports the generation of HTTP Etag opaque identifiers
    ...    Post-Conditions:  The VNF configuration is not modified by the operation
    ...    Post-Conditions:  The VNF configuration is not modified by the operation
    Send Duplicated VNF configuration
    Send Duplicated VNF configuration
    Check HTTP Response Status Code Is    412
    Check HTTP Response Status Code Is    412
    Check HTTP Response Body Json Schema Is   ProblemDetails
    Check HTTP Response Body Json Schema Is   ProblemDetails
    Check Postcondition VNF Configuration Untouched
    Check Postcondition VNF Configuration Untouched (Implicit)


DELETE Config - Method not implemented
POST VNF Configuration - Method not implemented
    log    Trying to perform a DELETE. This method should not be implemented
    [Documentation]    Test ID: 6.3.5
    Set Headers  {"Accept":"${ACCEPT}"}  
    ...    Test title: POST VNF Configuration - Method not implemented
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ...    Test objective: The objective is to test that POST method is not allowed to create a new VNF configuration
    Delete    ${apiRoot}/${apiName}/${apiVersion}/configuration
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID 6.3.1)
    Log    Validate Status code
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    Integer    response status    405
    ...    Config ID: Config_prod_VE
    ...    Applicability: none
    ...    Post-Conditions: The VNF configuration is not modified by the operation
    Send POST Request for VNF Configuration
    Check HTTP Response Status Code Is    405
    Check Postcondition VNF Configuration Untouched (Implicit)    

PUT VNF Configuration - Method not implemented
    [Documentation]    Test ID: 6.3.6
    ...    Test title: PUT VNF Configuration - Method not implemented
    ...    Test objective: The objective is to test that PUT method is not allowed to modify an existing VNF configuration
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID 6.3.1)
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VE
    ...    Applicability: none
    ...    Post-Conditions: The VNF configuration is not modified by the operation
    Send PUT Request for VNF Configuration
    Check HTTP Response Status Code Is    405
    Check Postcondition VNF Configuration Untouched (Implicit)   

DELETE VNF Configuration - Method not implemented
    [Documentation]    Test ID: 6.3.7
    ...    Test title: Delete VNF Configuration - Method not implemented
    ...    Test objective: The objective is to test that DELETE method is not allowed to delete an existing VNF configuration
    ...    Pre-conditions: A VNF instance is up and running. The VNF instance is already configured (Test ID 6.3.1)
    ...    Reference: section 9.4.2 - SOL002 v2.4.1
    ...    Config ID: Config_prod_VE
    ...    Applicability: none
    ...    Post-Conditions: The VNF configuration is not modified by the operation
    Send DELETE Request for VNF Configuration
    Check HTTP Response Status Code Is    405
    Check Postcondition VNF Configuration Untouched (Implicit)
    
    
*** Keywords ***    
*** Keywords ***    
Get VNF configuration
Get VNF configuration
@@ -92,21 +121,7 @@ Send VNF configuration
    Set Headers  {"Accept":"${ACCEPT}"} 
    Set Headers  {"Accept":"${ACCEPT}"} 
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"} 
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"} 
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ${body}=    Get File    json/vnfConfigModifications.json
    ${body}=    Get File    jsons/vnfConfigModifications.json
    ${response}=    Patch    ${apiRoot}/${apiName}/${apiVersion}/configuration    ${body}

PATCH Config - Precondition failed
    [Documentation]    Precondition Failed
    ...    Precondition Failed A precondition given in an HTTP request header is not fulfilled. 
    ...    Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity. 
    ...    The response body should contain a ProblemDetails structure, in which the �detail� attribute should convey more information about the error.
    Depends On Test    PATCH Alarm    # If the previous test scceeded, it means that Etag has been modified
    log    Trying to perform a PATCH. This method modifies an individual alarm resource  
    Set Headers  {"Accept":"${ACCEPT}"} 
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"} 
    Set Headers    {"If-Match": "${Etag}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ${body}=    Get File    json/vnfConfigModifications.json
    ${response}=    Patch    ${apiRoot}/${apiName}/${apiVersion}/configuration    ${body}
    ${response}=    Patch    ${apiRoot}/${apiName}/${apiVersion}/configuration    ${body}


Check HTTP Response Status Code Is
Check HTTP Response Status Code Is
@@ -123,18 +138,19 @@ Check HTTP Response Body Json Schema Is
    [Arguments]    ${schema}
    [Arguments]    ${schema}
    ${contentType}=    Get Value From Json    ${response.headers}    $..Content-Type
    ${contentType}=    Get Value From Json    ${response.headers}    $..Content-Type
    Should Be Equal    ${contentType}    ${CONTENT_TYPE}
    Should Be Equal    ${contentType}    ${CONTENT_TYPE}
    Validate Json    ${schema}    ${response.body}
    ${json}=    evaluate    json.loads('''${response.body}''')    json
    Validate Json    ${schema}    ${json}
    Log    Json Schema Validation OK
    Log    Json Schema Validation OK
      
      
Check Postcondition VNF Configuration Untouched
Check Postcondition VNF Configuration Untouched (Implicit)
    Log    Check Postcondition for GET
    Log    Check Implicit Postcondition
    #todo
    Check Postcondition VNF Is Configured
    
    
Check Postcondition VNF Is Configured
Check Postcondition VNF Is Configured
    Log    Check Postcondition for PATCH
    Log    Check Postcondition for VNF Configuration
    Get VNF configuration
    Get VNF configuration
    ${output}=    evaluate    json.loads('''${response.body}''')    json
    ${output}=    evaluate    json.loads('''${response.body}''')    json
    ${input}=    Get File    json/vnfConfigModifications.json
    ${input}=    Get File    jsons/vnfConfigModifications.json
    Should Be Equal  ${output}    ${input} 
    Should Be Equal  ${output}    ${input} 


Send Duplicated VNF configuration
Send Duplicated VNF configuration
@@ -144,5 +160,23 @@ Send Duplicated VNF configuration
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
    Set Headers    {"If-Match": "${Etag}"}
    Set Headers    {"If-Match": "${Etag}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ${body}=    Get File    json/vnfConfigModifications.json
    ${body}=    Get File    jsons/vnfConfigModifications.json
    ${response}=    Patch    ${apiRoot}/${apiName}/${apiVersion}/configuration    ${body}
    ${response}=    Patch    ${apiRoot}/${apiName}/${apiVersion}/configuration    ${body}

Send POST Request for VNF Configuration
    log    Trying to perform a POST. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ${response}=    Post    ${apiRoot}/${apiName}/${apiVersion}/configuration
    
Send PUT Request for VNF Configuration
    log    Trying to perform a POST. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ${response}=    Put    ${apiRoot}/${apiName}/${apiVersion}/configuration
    
Send DELETE Request for VNF Configuration
    log    Trying to perform a POST. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
    ${response}=    Delete    ${apiRoot}/${apiName}/${apiVersion}/configuration
 No newline at end of file
+216 −103

File changed.

Preview size limit exceeded, changes collapsed.

+1 −0
Original line number Original line Diff line number Diff line
@@ -3,6 +3,7 @@ ${PRODUCER_HOST} localhost
${PRODUCER_PORT}    8081    
${PRODUCER_PORT}    8081    
${PRODUCER_SCHEMA}    https
${PRODUCER_SCHEMA}    https
${AUTHORIZATION}    Bearer 0b79bab50daca910b000d4f1a2b675d604257e42
${AUTHORIZATION}    Bearer 0b79bab50daca910b000d4f1a2b675d604257e42
${NEG_AUTHORIZATION}    Bearer negativetoken
${CONTENT_TYPE_JSON}    application/json
${CONTENT_TYPE_JSON}    application/json
${EM-VNF_HOST}    localhost
${EM-VNF_HOST}    localhost
${EM-VNF_PORT}    8002
${EM-VNF_PORT}    8002
+2 −0
Original line number Original line Diff line number Diff line
*** Variables ***
*** Variables ***
${POS_FIELDS}     name=vnfIndicator&vnfInstanceId=80b0deba-c398-445b-bef0-ac0fe733e3d0
${POS_FIELDS}     name=vnfIndicator&vnfInstanceId=80b0deba-c398-445b-bef0-ac0fe733e3d0
${NEG_FIELDS}     wrongName=wrongValue
${NEG_FIELDS}     wrongName=wrongValue
${response}       some_response_object
${vnfIndicators}  original_vnf_indicators
+2 −2
Original line number Original line Diff line number Diff line
@@ -12,6 +12,6 @@ ${CONTENT_TYPE_JSON} application/json
${ACCEPT_JSON}    application/json
${ACCEPT_JSON}    application/json
${NEG_AUTHORIZATION}    Bearer negativetoken
${NEG_AUTHORIZATION}    Bearer negativetoken
${FIELD_USAGE}    1
${FIELD_USAGE}    1
${VNFM_AUTHENTICATION}    Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
${AUTHORIZATION}    Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
${VNFM_AUTH_USAGE}    1
${AUTH_USAGE}    1
${VNFM_DUPLICATION}    1
${VNFM_DUPLICATION}    1
 No newline at end of file