*** Settings ***
Documentation Test for measuring execution time of MD-SAL DataStore operations.
...
-... Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+... Copyright (c) 2015-2017 Cisco Systems, Inc. and others. All rights reserved.
...
... This program and the accompanying materials are made available under the
... terms of the Eclipse Public License v1.0 which accompanies this distribution,
... operations on people, car and car-people DataStore test models.
... (see the https://wiki.opendaylight.org/view/MD-SAL_Clustering_Test_Plan)
...
-... Reported bugs:
-... https://bugs.opendaylight.org/show_bug.cgi?id=4220
+... TODO: Decide whether keyword names should contain spaces or underscores.
Suite Setup Start Suite
Suite Teardown Stop Suite
Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown SetupUtils.Teardown_Test_Show_Bugs_If_Test_Failed
Library RequestsLibrary
Library SSHLibrary
Library XML
*** Variables ***
${ITEM_COUNT} ${10000}
${ITEM_BATCH} ${10000}
-${PROCEDURE_TIMEOUT} 5m
+${PROCEDURE_TIMEOUT} 11m
${addcarcmd} python cluster_rest_script.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} add --itemtype car --itemcount ${ITEM_COUNT} --ipr ${ITEM_BATCH}
-${addpeoplecmd} python cluster_rest_script.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} add --itemtype people --itemcount ${ITEM_COUNT} --ipr ${ITEM_BATCH}
+${addpeoplecmd} python cluster_rest_script.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} add-rpc --itemtype people --itemcount ${ITEM_COUNT} --threads 5
${purchasecmd} python cluster_rest_script.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} add-rpc --itemtype car-people --itemcount ${ITEM_COUNT} --threads 5
${carurl} /restconf/config/car:cars
${peopleurl} /restconf/config/people:people
Add Cars
[Documentation] Request to add ${ITEM_COUNT} cars (timeout in ${PROCEDURE_TIMEOUT}).
Start Tool ${addcarcmd} ${TOOL_OPTIONS}
- Wait Until Tool Finish ${PROCEDURE_TIMEOUT}
+ ${output}= Wait Until Tool Finish ${PROCEDURE_TIMEOUT}
+ BuiltIn.Log ${output}
+ BuiltIn.Should Not Contain ${output} ERROR
Verify Cars
[Documentation] Store logs and verify result
[Documentation] Store logs and verify result
Stop Tool
Store File To Workspace cluster_rest_script.log cluster_rest_script_purchase_cars.log
- ${rsp}= RequestsLibrary.Get Request session ${carpeopleurl} headers=${ACCEPT_XML}
- ${count}= XML.Get Element Count ${rsp.content} xpath=car-person
- Should Be Equal As Numbers ${count} ${ITEM_COUNT}
- [Teardown] Report_Failure_Due_To_Bug 4220
+ Wait Until Keyword Succeeds ${PROCEDURE_TIMEOUT} 1 Purchase Is Completed ${ITEM_COUNT}
Delete Cars
[Documentation] Remove cars from the datastore
*** Keywords ***
Start Suite
- [Documentation] Suite setup keyword
+ [Documentation] Suite setup keyword.
SetupUtils.Setup_Utils_For_Setup_And_Teardown
KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${CONTROLLER_LOG_LEVEL}
- ${mininet_conn_id}= SSHLibrary.Open Connection ${TOOLS_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout=6s
+ ${mininet_conn_id}= SSHLibrary.Open Connection ${TOOLS_SYSTEM_IP} prompt=${TOOLS_SYSTEM_PROMPT} timeout=6s
Builtin.Set Suite Variable ${mininet_conn_id}
Utils.Flexible Mininet Login ${TOOLS_SYSTEM_USER}
SSHLibrary.Put File ${CURDIR}/../../../../tools/odl-mdsal-clustering-tests/scripts/cluster_rest_script.py .
Wait_Until_Tool_Finish
[Arguments] ${timeout}
- [Documentation] Wait ${timeout} for the tool exit.
- BuiltIn.Wait Until Keyword Succeeds ${timeout} 1s SSHLibrary.Read Until Prompt
+ [Documentation] Wait ${timeout} for the tool exit, return the printed output.
+ BuiltIn.Run Keyword And Return BuiltIn.Wait Until Keyword Succeeds ${timeout} 1s SSHLibrary.Read Until Prompt
+
+Purchase Is Completed
+ [Arguments] ${item_count}
+ [Documentation] Check purchase of ${item_count} is completed.
+ ${rsp}= RequestsLibrary.Get Request session ${carpeopleurl} headers=${ACCEPT_XML}
+ ${count}= XML.Get Element Count ${rsp.content} xpath=car-person
+ Should Be Equal As Numbers ${count} ${item_count}
Stop_Tool
[Documentation] Stop the tool if still running.