Commit f686723c authored by Eisha Ayaz's avatar Eisha Ayaz
Browse files

[test-upd][SOL002][VNF-FM][v5.3.1][6.3.4.6.1,2,3...

[test-upd][SOL002][VNF-FM][v5.3.1][6.3.4.6.1,2,3 Test-IDs][NFVSOL(26)000019r3​] Add support of received notification validation
parent aac8daee
Loading
Loading
Loading
Loading
+76 −7
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ Library MockServerLibrary
Library    Process
Library    OperatingSystem
Library    Collections
Library    REST    ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}    ssl_verify=false

Suite Setup    Create Sessions
Suite Teardown    Terminate All Processes    kill=true
@@ -20,8 +21,9 @@ VNF Fault Alarm Notification
    ...    Applicability: none
    ...    Post-Conditions: none 
    Trigger the fault of a virtualised resource in the VNF instance (external action) 
    Check Alarm Notification Http POST Request Body Json Schema Is    alarmNotification
    Check Alarm Notification Http POST Request Body notificationType attribute Is    alarmNotification
    Check Alarm Notification Http POST Request Body Json Schema Is    AlarmNotification
    Check Alarm Notification Http POST Request Body notificationType attribute Is    AlarmNotification
    Check Alarm Notification validation

VNF Fault Alarm Cleared Notification
    [Documentation]    Test ID: 6.3.4.6.2
@@ -33,8 +35,9 @@ VNF Fault Alarm Cleared Notification
    ...    Applicability: none
    ...    Post-Conditions: none 
    Trigger the clear of a faulty virtualised resource in the VNF instance (external action)
    Check Alarm cleared Notification Http POST Request Body Json Schema Is    alarmClearedNotification
    Check Alarm cleared Notification Http POST Request Body notificationType attribute Is    alarmClearedNotification
    Check Alarm cleared Notification Http POST Request Body Json Schema Is    AlarmClearedNotification
    Check Alarm cleared Notification Http POST Request Body notificationType attribute Is    AlarmClearedNotification
    Check Alarm Cleared Notification validation

VNF Fault Alarm List Rebuilt Notification 
    [Documentation]    Test ID: 6.3.4.6.3
@@ -46,8 +49,9 @@ VNF Fault Alarm List Rebuilt Notification
    ...    Applicability: none
    ...    Post-Conditions: none 
    Trigger the VNF fault alarm list rebuild in the NFVO (external action) 
    Check Alarm list rebuilt Notification Http POST Request Body Json Schema Is    alarmListRebuiltNotification
    Check Alarm list rebuilt Notification Http POST Request Body notificationType attribute Is    alarmListRebuiltNotification
    Check Alarm list rebuilt Notification Http POST Request Body Json Schema Is    AlarmListRebuiltNotification
    Check Alarm list rebuilt Notification Http POST Request Body notificationType attribute Is    AlarmListRebuiltNotification
    Check Alarm List Rebuilt Notification validation


*** Keywords ***
@@ -107,6 +111,71 @@ Check Alarm Clerance Notification Http POST Request Body changeType attribute Is
    Log    do nothing 
    

Check Alarm Notification validation
    ${requests}=    Retrieve Requests    ${callback_endpoint_fwd}
    Should Not Be Empty    ${requests}
    ${last_request}=    Get From List    ${requests}    -1
    ${body}=    Get From Dictionary    ${last_request}    body
    ${body_text}=    Get From Dictionary    ${body}    string
    ${notification}=    Evaluate    json.loads(r'''${body_text}''')    json
    ${alarm}=    Get From Dictionary    ${notification}    alarm
    Dictionary Should Contain Key    ${alarm}    id
    Dictionary Should Contain Key    ${alarm}    managedObjectId
    ${subscriptionId}=    Get From Dictionary    ${notification}    subscriptionId
    ${alarmId}=    Get From Dictionary    ${alarm}    id
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
    ${subscription_response}=    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId}
    ${subscription_response_object}=    Get From Dictionary    ${subscription_response}    response
    ${subscription_status}=    Get From Dictionary    ${subscription_response_object}    status
    Should Be Equal As Integers    ${subscription_status}    200
    ${alarm_response}=    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/alarms/${alarmId}
    ${alarm_response_object}=    Get From Dictionary    ${alarm_response}    response
    ${alarm_status}=    Get From Dictionary    ${alarm_response_object}    status
    Should Be Equal As Integers    ${alarm_status}    200
    Clear Requests    ${callback_endpoint}
    Clear Requests    ${callback_endpoint_fwd}
    
Check Alarm Cleared Notification validation
    ${requests}=    Retrieve Requests    ${callback_endpoint_fwd}
    Should Not Be Empty    ${requests}
    ${last_request}=    Get From List    ${requests}    -1
    ${body}=    Get From Dictionary    ${last_request}    body
    ${body_text}=    Get From Dictionary    ${body}    string
    ${notification}=    Evaluate    json.loads(r'''${body_text}''')    json
    ${subscriptionId}=    Get From Dictionary    ${notification}    subscriptionId
    ${alarmId}=    Get From Dictionary    ${notification}    alarmId
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
    ${subscription_response}=    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId}
    ${subscription_response_object}=    Get From Dictionary    ${subscription_response}    response
    ${subscription_status}=    Get From Dictionary    ${subscription_response_object}    status
    Should Be Equal As Integers    ${subscription_status}    200
    ${alarm_response}=    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/alarms/${alarmId}
    ${alarm_response_object}=    Get From Dictionary    ${alarm_response}    response
    ${alarm_status}=    Get From Dictionary    ${alarm_response_object}    status
    Should Be Equal As Integers    ${alarm_status}    200
    Clear Requests    ${callback_endpoint}
    Clear Requests    ${callback_endpoint_fwd}
    
Check Alarm List Rebuilt Notification validation
    ${requests}=    Retrieve Requests    ${callback_endpoint_fwd}
    Should Not Be Empty    ${requests}
    ${last_request}=    Get From List    ${requests}    -1
    ${body}=    Get From Dictionary    ${last_request}    body
    ${body_text}=    Get From Dictionary    ${body}    string
    ${notification}=    Evaluate    json.loads(r'''${body_text}''')    json
    ${subscriptionId}=    Get From Dictionary    ${notification}    subscriptionId
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
    ${subscription_response}=    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId}
    ${subscription_response_object}=    Get From Dictionary    ${subscription_response}    response
    ${subscription_status}=    Get From Dictionary    ${subscription_response_object}    status
    Should Be Equal As Integers    ${subscription_status}    200
    Clear Requests    ${callback_endpoint}
    Clear Requests    ${callback_endpoint_fwd}
    
    
Configure Notification Alarm List Rebuilt Handler
    [Arguments]    ${endpoint}    ${type}
    ${json}=    evaluate    {}