[Arguments] ${switches}
[Documentation] Check no switch is in inventory
${resp} RequestsLibrary.Get Request session ${OPERATIONAL_NODES_API}
- Should Be Equal As Strings ${resp.status_code} 200
+ Log ${resp.content}
: FOR ${switch} IN RANGE 1 ${switches+1}
\ Should Not Contain ${resp.content} "openflow:${switch}"
[Arguments] ${switches}
[Documentation] Check no switch is in topology
${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 Not Contain ${resp.content} openflow:${switch}
Check Switches In Inventory
[Arguments] ${switches}
[Documentation] Check all switches and stats in operational inventory
- ${mac}= String.Replace String Using Regexp ${base_mac} : ${EMPTY}
- ${mac}= Evaluate int(${mac}, 16)
: FOR ${switch} IN RANGE 1 ${switches+1}
- \ ${dpid_decimal}= Evaluate ${mac} + ${switch}
- \ ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_NODES_API}/node/openflow:${dpid_decimal}
+ \ ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_NODES_API}/node/openflow:${switch}
+ \ Log ${resp.content}
\ Should Be Equal As Strings ${resp.status_code} 200
\ Should Contain ${resp.content} flow-capable-node-connector-statistics
\ Should Contain ${resp.content} flow-table-statistics
[Arguments] ${switches}
[Documentation] Check switches are in the topology.
${resp}= RequestsLibrary.Get Request session ${OPERATIONAL_TOPO_API}
+ Log ${resp.content}
Should Be Equal As Strings ${resp.status_code} 200
${count}= Get Count ${resp.content} "node-id":"openflow:
BuiltIn.Should Be Equal As Numbers ${count} ${switches}
[Arguments] ${links}
[Documentation] Check number of links in the topolgy.
${resp}= RequestsLibrary.Get Request session ${OPERATIONAL_TOPO_API}
+ Log ${resp.content}
Should Be Equal As Strings ${resp.status_code} 200
${count}= Get Count ${resp.content} "link-id":"openflow:
Should Be Equal As Integers ${count} ${links}
[Arguments] ${switches}
[Documentation] Check Linear topology.
${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}"
[Arguments] ${flows}
[Documentation] Check number of flows in the inventory.
${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}
[Arguments] ${groups}
[Documentation] Check number of groups in the inventory.
${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}
+ Should Be Equal As Integers ${group_count} ${groups}
Check Flow Stats Are Available
[Arguments] ${node_id} ${flows}
Should Be Equal As Strings ${resp.status_code} 200
Should Contain X Times ${resp.content} priority ${flows}
+Check Number Of Hosts
+ [Arguments] ${hosts}
+ [Documentation] Check number of hosts in topology
+ ${resp}= RequestsLibrary.Get Request session ${OPERATIONAL_TOPO_API}
+ Log ${resp.content}
+ Should Be Equal As Strings ${resp.status_code} 200
+ ${count}= Get Count ${resp.content} "node-id":"host:
+ Should Be Equal As Integers ${count} ${hosts}
+
+Check No Hosts
+ [Documentation] Check if all hosts are deleted from inventory
+ ${resp}= RequestsLibrary.Get Request session ${OPERATIONAL_TOPO_API}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Not Contain ${resp.content} "node-id":"host:
+
+Add Table Miss Flows
+ [Arguments] ${switches}
+ [Documentation] Add table miss flows to switches.
+ ${switches}= Convert To Integer ${switches}
+ ${data}= OperatingSystem.Get File ${CURDIR}/../variables/openflowplugin/table_miss_flow.json
+ : FOR ${switch} IN RANGE 1 ${switches+1}
+ \ TemplatedRequests.Put As Json To Uri ${CONFIG_NODES_API}/node/openflow:${switch}/table/0/flow/default ${data} session
+
+Check Table Miss Flows
+ [Arguments] ${switches}
+ [Documentation] Check table miss flows in switches.
+ ${switches}= Convert To Integer ${switches}
+ : FOR ${switch} IN RANGE 1 ${switches+1}
+ \ TemplatedRequests.Get As Json From Uri ${OPERATIONAL_NODES_API}/node/openflow:${switch}/table/0/flow/default session
+
Create Inventory Flow
[Documentation] Calls FlowLib.Make_Inventory_Flow function and initializes and sanitizes
... the basic flow elements that can be given to flow:inventory
Log ${resp.content}
${msg}= Set Variable Delete flow for ${CONFIG_NODES_API}/node/openflow:${node_id}/table/${table_id}/flow/${flow_id} failed, http response ${resp.status_code} received.
Should Be Equal As Strings ${resp.status_code} 200 msg=${msg}
+
+Get Flow Id
+ [Arguments] ${dpnid} ${table_id} ${flow_element}
+ [Documentation] This verifies specific flow-id for particular table-id matching from the flow element
+ ${resp} = RequestsLibrary.Get Request session ${CONFIG_NODES_API}/node/openflow:${dpnid}/table/${table_id}
+ BuiltIn.Log ${resp.content}
+ @{flow_id} = String.Get Regexp Matches ${resp.content} id\":\"(\\d+${flow_element}) 1
+ [Return] @{flow_id}[0]