-Check Linear Topology
- [Arguments] ${switches} ${member_index}=1
- [Documentation] Check Linear topology.
- ${session} = Resolve_Http_Session_For_Member member_index=${member_index}
- ${resp} RequestsLibrary.Get Request ${session} ${OPERATIONAL_TOPO_API}
- Log ${resp.content}
- Should Be Equal As Strings ${resp.status_code} 200
- : FOR ${switch} IN RANGE 1 ${switches+1}
- \ Should Contain ${resp.content} "node-id":"openflow:${switch}"
- \ Should Contain ${resp.content} "tp-id":"openflow:${switch}:1"
- \ Should Contain ${resp.content} "tp-id":"openflow:${switch}:2"
- \ Should Contain ${resp.content} "source-tp":"openflow:${switch}:2"
- \ Should Contain ${resp.content} "dest-tp":"openflow:${switch}:2"
- \ ${edge} Evaluate ${switch}==1 or ${switch}==${switches}
- \ Run Keyword Unless ${edge} Should Contain ${resp.content} "tp-id":"openflow:${switch}:3"
- \ Run Keyword Unless ${edge} Should Contain ${resp.content} "source-tp":"openflow:${switch}:3"
- \ Run Keyword Unless ${edge} Should Contain ${resp.content} "dest-tp":"openflow:${switch}:3
-
-Check No Switches In Inventory
- [Arguments] ${switches} ${member_index}=1
- [Documentation] Check no switch is in inventory
- ${session} = Resolve_Http_Session_For_Member member_index=${member_index}
- ${resp} RequestsLibrary.Get Request ${session} ${OPERATIONAL_NODES_API}
- Log ${resp.content}
- Should Be Equal As Strings ${resp.status_code} 200
- : FOR ${switch} IN RANGE 1 ${switches+1}
- \ Should Not Contain ${resp.content} "openflow:${switch}"
-
-Check Number Of Flows
- [Arguments] ${flows} ${member_index}=1
- [Documentation] Check number of flows in the inventory.
- ${session} = Resolve_Http_Session_For_Member member_index=${member_index}
- ${resp}= RequestsLibrary.Get Request ${session} ${OPERATIONAL_NODES_API}
- Log ${resp.content}
- Should Be Equal As Strings ${resp.status_code} 200
- ${count}= Get Count ${resp.content} "priority"
- Should Be Equal As Integers ${count} ${flows}
-
-Check Number Of Groups
- [Arguments] ${groups} ${member_index}=1
- [Documentation] Check number of groups in the inventory.
- ${session} = Resolve_Http_Session_For_Member member_index=${member_index}
- ${resp}= RequestsLibrary.Get Request ${session} ${OPERATIONAL_NODES_API}
- Log ${resp.content}
- Should Be Equal As Strings ${resp.status_code} 200
- ${group_count}= Get Count ${resp.content} "group-type"
- ${count}= CompareStream.Set_Variable_If_At Least_Boron ${group_count} ${group_count/2}
- Should Be Equal As Integers ${count} ${groups}
-
-Check No Switches In Topology
- [Arguments] ${switches} ${member_index}=1
- [Documentation] Check no switch is in topology
- ${session} = Resolve_Http_Session_For_Member member_index=${member_index}
- ${resp} RequestsLibrary.Get Request ${session} ${OPERATIONAL_TOPO_API}
+Remove Single Group And Flow On Member
+ [Documentation] Remove 1 group 1&2 and 1 flow in every switch.
+ [Arguments] ${member_index}=1
+ ${session}= Resolve_Http_Session_For_Member member_index=${member_index}
+ FOR ${switch} IN RANGE 1 ${switches+1}
+ RequestsLibrary.Delete Request
+ ... ${session}
+ ... ${RFC8040_NODES_API}/node=openflow%3A${switch}/flow-node-inventory:table=0/flow=1
+ RequestsLibrary.Delete Request
+ ... ${session}
+ ... ${RFC8040_NODES_API}/node=openflow%3A${switch}/flow-node-inventory:group=1
+ RequestsLibrary.Delete Request
+ ... ${session}
+ ... ${RFC8040_NODES_API}/node=openflow%3A${switch}/flow-node-inventory:group=1000
+ END
+
+Check Flow Stats Are Not Frozen
+ [Documentation] Verify flow stats are not frozen for flow 1 and switch 1.
+ [Arguments] ${member_index}=1 ${period_in_seconds}=5
+ ${duration_1}= Extract Flow Duration ${member_index}
+ ${duration_1}= Builtin.Convert To Integer ${duration_1}
+ BuiltIn.Sleep ${period_in_seconds}
+ ${duration_2}= Extract Flow Duration ${member_index}
+ ${duration_2}= Builtin.Convert To Integer ${duration_2}
+ Should Not Be Equal As Integers ${duration_1} ${duration_2}
+
+Extract Flow Duration
+ [Documentation] Extract duration for flow 1 in switch 1.
+ [Arguments] ${member_index}
+ ${session}= Resolve_Http_Session_For_Member member_index=${member_index}
+ ${resp}= RequestsLibrary.Get Request
+ ... ${session}
+ ... ${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0/flow=1?content=nonconfig
+ ... headers=${headers}