Library RequestsLibrary
Resource ../../../libraries/MininetKeywords.robot
Resource ../../../libraries/FlowLib.robot
-Variables ../../../variables/Variables.py
+Resource ../../../variables/Variables.robot
+Resource ../../../variables/openflowplugin/Variables.robot
*** Variables ***
${XmlsDir} ${CURDIR}/../../../variables/xmls
-${flowfile} f21.xml
${switch_idx} 1
${switch_name} s${switch_idx}
-${iteration} 5
+${iteration} 4
*** Test Cases ***
-Bug 6917
+Add Delete Same Flow
[Documentation] Iterate on add and delete flow until alien ID is found in Operational Datastore.
- : FOR ${i} IN RANGE ${iteration}
- \ Add And Delete Flow
+ FOR ${i} IN RANGE ${iteration}
+ Run Keyword And Continue On Failure Add And Delete Flow f21.xml
+ END
+ [Teardown] Report_Failure_Due_To_Bug 6917
+
+Add Multiple Flows
+ [Documentation] Iterate on add and delete flow until alien ID is found in Operational Datastore.
+ Run Keyword And Continue On Failure Add Flow f20.xml
+ Run Keyword And Continue On Failure Add Flow f21.xml
+ Run Keyword And Continue On Failure Add Flow f22.xml
+ Run Keyword And Continue On Failure Add Flow f23.xml
[Teardown] Report_Failure_Due_To_Bug 6917
*** Keywords ***
${mininet_conn_id}= MininetKeywords.Start Mininet Single Controller
BuiltIn.Set Suite Variable ${mininet_conn_id}
RequestsLibrary.Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
- BuiltIn.Wait Until Keyword Succeeds 10s 1s Are Switches Connected Topo
+ BuiltIn.Wait Until Keyword Succeeds 10s 1s FlowLib.Check Switches In Topology 1
Final Phase
[Documentation] Stops mininet.
MininetKeywords.Stop Mininet And Exit ${mininet_conn_id}
RequestsLibrary.Delete All Sessions
-Are Switches Connected Topo
- [Documentation] Checks wheather switches are connected to controller
- ${resp}= RequestsLibrary.Get Request session ${OPERATIONAL_TOPO_API}/topology/flow:1 headers=${ACCEPT_XML}
- Log ${resp.content}
- ${count}= XML.Get Element Count ${resp.content} xpath=node
- BuiltIn.Should Be Equal As Numbers ${count} 1
-
Add And Delete Flow
+ [Arguments] ${flowfile}
[Documentation] Add a Delete a Flow and verify presence in Datastore. The 5 sec sleep is required to reproduce the bug.
- Sleep 5
FlowLib.Create Flow Variables For Suite From XML File ${XmlsDir}/${flowfile}
FlowLib.Add Flow Via Restconf ${switch_idx} ${table_id} ${data}
BuiltIn.Wait Until Keyword Succeeds 10s 1s FlowLib.Check Operational Flow ${True} ${data}
- FlowLib.Check Datastore Presence ${flowfile} ${True} ${True} ${False} ${True}
+ BuiltIn.Wait Until Keyword Succeeds 10s 1s FlowLib.Check Datastore Presence ${flowfile} ${True} ${True}
+ ... ${False} ${True}
FlowLib.Delete Flow Via Restconf ${switch_idx} ${table_id} ${flow_id}
BuiltIn.Wait Until Keyword Succeeds 10s 1s FlowLib.Check Operational Flow ${False} ${data}
FlowLib.Check Datastore Presence ${flowfile} ${False} ${False} ${True}
+ Sleep 5
[Teardown] BuiltIn.Run Keyword And Ignore Error FlowLib.Delete Flow Via Restconf ${switch_idx} ${table_id} ${flow_id}
+
+Add Flow
+ [Arguments] ${flowfile}
+ [Documentation] Add a Delete a Flow and verify presence in Datastore. The 5 sec sleep is required to reproduce the bug.
+ FlowLib.Create Flow Variables For Suite From XML File ${XmlsDir}/${flowfile}
+ FlowLib.Add Flow Via Restconf ${switch_idx} ${table_id} ${data}
+ BuiltIn.Wait Until Keyword Succeeds 10s 1s FlowLib.Check Operational Flow ${True} ${data}
+ BuiltIn.Wait Until Keyword Succeeds 10s 1s FlowLib.Check Datastore Presence ${flowfile} ${True} ${True}
+ ... ${False} ${True}
+ Sleep 8
+ [Teardown] BuiltIn.Run Keyword And Ignore Error RequestsLibrary.Delete Request session ${RFC8040_NODES_API}