blob: bb7a39e0da41df1ec920d026a8a786c56cf3e431 [file] [log] [blame]
*** Settings ***
Documentation Test suite for end-end service chain validation for Legacy RCORD Profile (with hardware vSG instances)
Suite Setup Read InputFile
Test Template Verify Service Chain Validation for Subscribers
Library Collections
Library String
Library OperatingSystem
Library XML
Library RequestsLibrary
Library CORDRobot
Library ImportResource resources=CORDRobot
*** Variables ***
${PATHFILE} ${CURDIR}/data/Ch_Subscriber.json
*** Test Cases *** TYPE LISTINDEX
Test Create Subscriber-1
SUBSCRIBER_CREATE 0
Test Create Subscriber-2
SUBSCRIBER_CREATE 1
Test Create Subscriber-3
SUBSCRIBER_CREATE 2
*** Keywords ***
Read InputFile
${subscriberList} = CORDRobot.jsonToList ${PATHFILE} SubscriberInfo
Set Suite Variable ${slist} ${subscriberList}
@{instanceList}= Create List
Set Suite Variable @{instanceList}
Verify Service Chain Validation for Subscribers
[Arguments] ${type} ${listIndex}
Run Keyword If "${type}" == "SUBSCRIBER_CREATE" Test Post Subscriber Create ${listIndex}
Test Post Subscriber Create
[Arguments] ${listIndex}
${subscriberList} = Get Variable Value ${slist}
${subscriberDict}= CORDRobot.listToDict ${subscriberList} ${listIndex}
${api_result}= CORDRobot.ApiPost VOLT_SUBSCRIBER ${subscriberDict}
Sleep 90
${service_specific_id}= CORDRobot.getFieldValueFromDict ${subscriberDict} service_specific_id
${json_result}= CORDRobot.ApiGet VOLT_SUBSCRIBER
Log ${json_result}
${json_result_list}= Get From Dictionary ${json_result} items
${getJsonDict}= CORDRobot.getDictFromListOfDict ${json_result_list} service_specific_id ${service_specific_id}
${result}= CORDRobot.compare_dict ${subscriberDict} ${getJsonDict}
Should Be True ${result}
${instanceList} Create List
# Retrieve Subscribed_links_id from Posted Subscriber
${subscribed_links_ids_list}= CORDRobot.getFieldValueFromDict ${getJsonDict} subscribed_links_ids
${subscribed_links_ids}= Get From List ${subscribed_links_ids_list} 0
# Retrieve Provided_Service_Instance_Id from "ServiceInstanceLinks"
${getServiceLink}= CORDRobot.ApiChameleonGet CH_CORE_SERVICELINK ${subscribed_links_ids}
${provider_service_instance_id}= Get From Dictionary ${getServiceLink} provider_service_instance_id
# RETRIEVE VOLT OBJECT USING PROVIDER INSTANCE ID
${getVoltDict}= CORDRobot.ApiChameleonGet VOLT_TENANT ${provider_service_instance_id}
# RETRIEVE SUBSCRIBED_LINKS_IDS FROM THE VOLT DICTIONARY
${subscribed_links_ids_list}= CORDRobot.getFieldValueFromDict ${getVoltDict} subscribed_links_ids
${subscribed_links_ids}= Get From List ${subscribed_links_ids_list} 0
# RETRIEVE PROVIDED_SERVICE_INSTANCE_ID
${serviceLinkDict}= CORDRobot.ApiChameleonGet CH_CORE_SERVICELINK ${subscribed_links_ids}
Log ${serviceLinkDict}
${VSGTenant}= Get From Dictionary ${serviceLinkDict} provider_service_instance_id
# Retrieve VSGTenant to retrieve instance_id
${getVSG_result}= CORDRobot.ApiChameleonGet VSG_TENANT ${VSGTenant}
${instance_id}= Get From Dictionary ${getVSG_result} instance_id
Append To List ${instanceList} ${instance_id}
Log ${instanceList}
Set Global Variable ${instanceList}
# VALIDATE INSTANCE IS PRESENT IN /CORE/INSTANCES
${get_CoreInstanceresult}= CORDRobot.ApiChameleonGet CH_CORE_INSTANCES ${instance_id}
Should Be True ${get_CoreInstanceresult}