summaryrefslogtreecommitdiffstats
path: root/robot/resources/vid
diff options
context:
space:
mode:
authorjf9860 <jf9860@att.com>2017-02-22 16:52:54 -0500
committerjf9860 <jf9860@att.com>2017-02-22 17:02:20 -0500
commit75010a4fe2ec3e182b45196e7e5b2c7889673092 (patch)
treebb235c1a4732e7c49f53b2f309ebced3f6d9cf80 /robot/resources/vid
parent0f7f2653d2190514d923046b40975967f82b0b3e (diff)
Complete teardown implementation.
Add demo.sh to support hands on demo Change-Id: Idf235957bd992e6d7482c8241f6ba8b8944c2826 Signed-off-by: jf9860 <jf9860@att.com>
Diffstat (limited to 'robot/resources/vid')
-rw-r--r--robot/resources/vid/teardown_vid.robot74
1 files changed, 51 insertions, 23 deletions
diff --git a/robot/resources/vid/teardown_vid.robot b/robot/resources/vid/teardown_vid.robot
index 50b50518..88408546 100644
--- a/robot/resources/vid/teardown_vid.robot
+++ b/robot/resources/vid/teardown_vid.robot
@@ -11,20 +11,36 @@ Resource create_service_instance.robot
*** Variables ***
${VID_ENV} /vid
-${VID_SERVICE_MODELS_SEARCH_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/serviceModels.htm#/instances/subdetails?selectedSubscriber=\${customer_id}
-
+${VID_SERVICE_MODELS_SEARCH_CUST} ${GLOBAL_VID_SERVER}${VID_ENV}/serviceModels.htm#/instances/subdetails?selectedSubscriber=\${customer_id}
+${VID_SERVICE_MODELS_SEARCH_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/serviceModels.htm#/instances/services
*** Keywords ***
Teardown VID
[Documentation] Teardown the VID This assumes that the any runnign stacks have been torn down
- [Arguments] ${service_instance_id} ${lcp_region} ${tenant}
- # Keep going to the VID service instance until all of the remove icons are goe
+ [Arguments] ${service_instance_id} ${lcp_region} ${tenant}
+ Return From Keyword If len('${service_instance_id}') == 0
+ # Keep going to the VID service instance until we get the pop-up alert that there is no service instance
Wait Until Keyword Succeeds 300s 1s Delete VID ${service_instance_id} ${lcp_region} ${tenant}
Delete VID
[Documentation] Teardown the next VID entity that has a Remove icon.
- [Arguments] ${service_instance_id} ${lcp_region} ${tenant}
+ [Arguments] ${service_instance_id} ${lcp_region} ${tenant}
+ # For vLB closed loop, we may have 2 vf modules and the vDNS one needs to be removed first.
+ ${remove_order}= Create List vDNS_Ete Vfmodule_Ete
+
+ # FAIL status is returned in ${vfmodule} because FAIL are ignored during teardown
+ ${status} ${vfmodule}= Run Keyword and Ignore Error Delete Next VID Entity ${service_instance_id} ${lcp_region} ${tenant} ${remove_order}
+ Return From Keyword If '${status}' == 'FAIL'
+ Return From Keyword If '${vfmodule}' == 'FAIL'
+ # After tearing down a VF module, execute the reverse HB for it to remove the references from A&AI
+ Run Keyword If 'Vfmodule_Ete' in '${vfmodule}' Execute Reverse Heatbridge
+ Fail Continue with Next Remove
+
+Delete Next VID Entity
+ [Documentation] Teardown the next VID entity that has a Remove icon.
+ [Arguments] ${service_instance_id} ${lcp_region} ${tenant} ${remove_order}
+ ${vfmodule}= Catenate
Go To ${VID_SERVICE_MODELS_SEARCH_URL}
Wait Until Page Contains Please search by timeout=60s
Wait Until Page Contains Element xpath=//div[@class='statusLine aaiHidden'] timeout=60s
@@ -32,32 +48,44 @@ Delete VID
# If we don't wait for this control to be enabled, the submit results in a 'not found' pop-up (UnexpectedAlertPresentException)
Input Text When Enabled //input[@name='selectedServiceInstance'] ${service_instance_id}
- Click Button button=Submit
- Wait Until Page Contains Element link=View/Edit timeout=60s
+
+ # When Handle alert detects a pop-up. it will return FAIL and we are done
+ # Return from Keyword is required because FAIL is inored during teardown
+ ${status} ${value} Run Keyword And Ignore Error Handle Alert
+ Return From Keyword If '${status}' == 'FAIL' ${status}
+ ${status} ${value} Run Keyword And Ignore Error Wait Until Page Contains Element link=View/Edit timeout=60s
+ Return From Keyword If '${status}' == 'FAIL' ${status}
+
+
Click Element link=View/Edit
Wait Until Page Contains View/Edit Service Instance timeout=60s
- ${status} ${data}= Run Keyword And Ignore Error Wait Until Element Is Visible xpath=//li/div/a/span[@class='glyphicon glyphicon-remove'] timeout=120s
- Return From Keyword If '${status}' == 'FAIL'
-
- # At least one more Remove!
+ Wait Until Element Is Visible xpath=//a/span[@class='glyphicon glyphicon-remove'] timeout=120s
- # This list is a bit ogf a hack to determine the order of removal if there is more than one remove icon.
- # Cannot tell how this will hold up once all of the VID removes are working for all conditions.
- ${remove_order}= Create List Vfmodule_Ete
:for ${remove_first} in @{remove_order}
- \ ${status} ${data}= Run Keyword And Ignore Error Page Should Contain Element xpath=//li/div[contains(.,'${remove_first}')]/a/span[@class='glyphicon glyphicon-remove']
- \ Run Keyword If '${status}' == 'PASS' Click On Element When Visible xpath=//li/div[contains(.,'${remove_first}')]/a/span[@class='glyphicon glyphicon-remove'] timeout=120s
- \ Run Keyword If '${status}' == 'FAIL' Click On Element When Visible xpath=//li/div/a/span[@class='glyphicon glyphicon-remove'] timeout=120s
+ \ ${remove_xpath}= Set Variable //li/div[contains(.,'${remove_first}')]/a/span[@class='glyphicon glyphicon-remove']
+ \ ${status} ${data}= Run Keyword And Ignore Error Page Should Contain Element xpath=${remove_xpath}
+ \ Exit For Loop If '${status}' == 'PASS'
+ \ ${remove_xpath}= Set Variable //li/div/a/span[@class='glyphicon glyphicon-remove']
+ Click On Element When Visible xpath=${remove_xpath}
- Wait Until Page Contains Element xpath=//select[@parameter-id='lcpRegion']
- Select From List By Label xpath=//select[@parameter-id='lcpRegion'] ${lcp_region}
- Select From List By Label xpath=//select[@parameter-id='tenant'] ${tenant}
+ ${status} ${value}= Run Keyword and Ignore Error Wait Until Page Contains Element xpath=//select[@parameter-id='lcpRegion']
+ Run Keyword If '${status}'=='PASS' Select From List By Label xpath=//select[@parameter-id='lcpRegion'] ${lcp_region}
+ Run Keyword If '${status}'=='PASS' Select From List By Label xpath=//select[@parameter-id='tenant'] ${tenant}
+ ${status} ${vfmodule}= Run Keyword And Ignore Error Get Text xpath=//td[contains(text(), 'Vf Module Name')]/../td[2]
Click Element xpath=//div[@class='buttonRow']/button[@ngx-enabled='true']
#//*[@id="mContent"]/div/div/div/div/table/tbody/tr/td/div/div[2]/div/div[1]/div[5]/button[1]
- Wait Until Page Contains Status:COMPLETE - 300s
+ Wait Until Page Contains 100 % 300s
${response text}= Get Text xpath=//div[@ng-controller='deletionDialogController']//div[@ng-controller= 'msoCommitController']/pre[@class = 'log ng-binding']
${request_id}= Parse Request Id ${response text}
- Click Element button=Close
+ Click Element xpath=//div[@class='ng-scope']/div[@class = 'buttonRow']/button[text() = 'Close']
Poll MSO Get Request ${GLOBAL_MSO_STATUS_PATH}${request_id} COMPLETE
- Fail Successful VID Delete - continue with next delete
+ [Return] ${vfmodule}
+Handle Alert
+ [Documentation] When service instance has been deleted, an alert will be triggered on the search to end the loop
+ ... The various Alert keywords did not prevent the alert exception on the Click ELement, hence this roundabout way of handling the alert
+ Run Keyword And Ignore Error Click Element button=Submit
+ ${status} ${t}= Run Keyword And Ignore Error Get Alert Message
+ Return From Keyword If '${status}' == 'FAIL'
+ Fail ${t}
+ \ No newline at end of file