X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FTopoprocessingKeywords.robot;h=ebede24c4a5e88fc5e2a0f454e44bf565301d988;hb=63342e0454b82783a6ef7a9b19e1698b9b5cd621;hp=710c76a4f3553bd6db6b28a53115baf1278848c3;hpb=992637f25d5454de57b7fa5f6f460e77cc2af2f3;p=integration%2Ftest.git diff --git a/csit/libraries/TopoprocessingKeywords.robot b/csit/libraries/TopoprocessingKeywords.robot index 710c76a4f3..ebede24c4a 100644 --- a/csit/libraries/TopoprocessingKeywords.robot +++ b/csit/libraries/TopoprocessingKeywords.robot @@ -1,6 +1,7 @@ *** Settings *** Variables ../variables/Variables.py Variables ../variables/topoprocessing/Topologies.py +Variables ../variables/topoprocessing/TopologyRequests.py Library RequestsLibrary Library SSHLibrary Library XML @@ -29,14 +30,14 @@ Send Basic Request Setup Environment [Documentation] Setup karaf enviroment for following tests Log ---- Setup Environment ---- - Open Connection ${CONTROLLER} + Open Connection ${ODL_SYSTEM_IP} Flexible Controller Login Put File ${CONFIGURATION_XML} ${REMOTE_FILE} Close Connection Issue Command On Karaf Console log:set DEBUG org.opendaylight.topoprocessing Install a Feature odl-restconf-noauth timeout=30 - Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${SEND_ACCEPT_XML_HEADERS} - ${features} Get Installed Features + Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${SEND_ACCEPT_XML_HEADERS} + ${features} Issue Command On Karaf Console feature:list -i ${lines} Get Lines Containing String ${features} odl-topoprocessing-framework ${length} Get Length ${lines} Install a Feature odl-openflowplugin-nsf-model-li odl-topoprocessing-framework odl-topoprocessing-network-topology odl-topoprocessing-inventory odl-mdsal-models odl-ovsdb-southbound-impl timeout=120 @@ -47,7 +48,7 @@ Setup Environment Clean Environment [Documentation] Revert startup changes Log ---- Clean Environment ---- - Open Connection ${CONTROLLER} + Open Connection ${ODL_SYSTEM_IP} Flexible Controller Login Put File ${OPERATIONAL_XML} ${REMOTE_FILE} Close Connection @@ -70,31 +71,25 @@ Prepare New Feature Installation Insert Underlay Topologies [Documentation] Insert underlay topologies used by following tests Log Inserting underlay topologies - # Network underlay topology 1 - ${resp} Put Request session ${CONFIG_API}/${TOPOLOGY_URL}/network-topo:1 data=${NETWORK_UNDERLAY_TOPOLOGY_1} - Log ${resp.content} - Should Be Equal As Strings ${resp.status_code} 200 - # Network underlay topology 2 - ${resp} Put Request session ${CONFIG_API}/${TOPOLOGY_URL}/network-topo:2 data=${NETWORK_UNDERLAY_TOPOLOGY_2} - Log ${resp.content} - Should Be Equal As Strings ${resp.status_code} 200 + # Network underlay topologies + : FOR ${index} IN RANGE 1 7 + \ ${resp} Put Request session ${CONFIG_API}/${TOPOLOGY_URL}/network-topo:${index} data=${NETWORK_UNDERLAY_TOPOLOGY_${index}} + \ Log ${resp.content} + \ Should Be Equal As Strings ${resp.status_code} 200 # Openflow underlay nodes ${resp} Put Request session ${CONFIG_API}/opendaylight-inventory:nodes data=${OPENFLOW_UNDERLAY_NODES} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 - # Openflow underlay topology 1 - ${resp} Put Request session ${CONFIG_API}/${TOPOLOGY_URL}/openflow-topo:1 data=${OPENFLOW_UNDERLAY_TOPOLOGY_1} - Log ${resp.content} - Should Be Equal As Strings ${resp.status_code} 200 - # Openflow underlay topology 2 - ${resp} Put Request session ${CONFIG_API}/${TOPOLOGY_URL}/openflow-topo:2 data=${OPENFLOW_UNDERLAY_TOPOLOGY_2} - Log ${resp.content} - Should Be Equal As Strings ${resp.status_code} 200 + # Openflow underlay topologies + : FOR ${index} IN RANGE 1 7 + \ ${resp} Put Request session ${CONFIG_API}/${TOPOLOGY_URL}/openflow-topo:${index} data=${OPENFLOW_UNDERLAY_TOPOLOGY_${index}} + \ Log ${resp.content} + \ Should Be Equal As Strings ${resp.status_code} 200 Issue Command On Karaf Console log:clear Log ${resp.content} Prepare Unification Inside Topology Request - [Arguments] ${request_template} ${model} ${correlation_item} ${target-field} ${underlay_topo1} + [Arguments] ${request_template} ${model} ${correlation_item} ${underlay_topo1} [Documentation] Prepare topology request for unification inside from template ${request_template} Set Element Text ${request_template} ${model} xpath=.//correlations/output-model ${request_template} Set Element Text ${request_template} aggregation-only xpath=.//correlations/correlation/type @@ -102,30 +97,159 @@ Prepare Unification Inside Topology Request ${request_template} Set Element Text ${request_template} unification xpath=.//correlation/aggregation/aggregation-type ${request_template} Set Element Text ${request_template} ${model} xpath=.//correlation/aggregation/mapping[1]/input-model ${request_template} Set Element Text ${request_template} ${underlay_topo1} xpath=.//correlation/aggregation/mapping[1]/underlay-topology - ${request_template} Set Element Text ${request_template} ${target-field} xpath=.//correlation/aggregation/mapping[1]/target-field ${request_template} Element to String ${request_template} [Return] ${request_template} Prepare Unification Topology Request - [Arguments] ${request_template} ${model} ${correlation_item} ${target-field} ${underlay_topo1} ${underlay_topo2} + [Arguments] ${request_template} ${model} ${correlation_item} ${underlay_topo1} ${underlay_topo2} [Documentation] Prepare topology request for unification on two topologies from template - ${request_template} Prepare Unification Inside Topology Request ${request_template} ${model} ${correlation_item} ${target-field} ${underlay_topo1} + ${request_template} Prepare Unification Inside Topology Request ${request_template} ${model} ${correlation_item} ${underlay_topo1} ${request_template} Set Element Text ${request_template} ${underlay_topo2} xpath=.//correlation/aggregation/mapping[2]/underlay-topology - ${request_template} Set Element Text ${request_template} ${target-field} xpath=.//correlation/aggregation/mapping[2]/target-field ${request_template} Set Element Text ${request_template} ${model} xpath=.//correlation/aggregation/mapping[2]/input-model ${request_template} Element to String ${request_template} [Return] ${request_template} -Get Installed Features - [Documentation] Returns list of installed features as String - Open Connection ${CONTROLLER} port=${KARAF_SHELL_PORT} prompt=${KARAF_PROMPT} timeout=5 - Flexible SSH Login ${KARAF_USER} ${KARAF_PASSWORD} - Write feature:list -i - ${features} Read until prompt - Close Connection - Log Installed features: - Log ${features} - [Return] ${features} +Prepare Unification Filtration Topology Request + [Arguments] ${request_template} ${model} ${correlation_item} ${target_field1} ${underlay_topo1} ${target_field2} + ... ${underlay_topo2} + [Documentation] Prepare topology request for unification on two topologies from template + ${request_template} Prepare Unification Filtration Inside Topology Request ${request_template} ${model} ${correlation_item} ${target_field1} ${underlay_topo1} + ${request_template} Set Element Text ${request_template} ${underlay_topo2} xpath=.//correlation/aggregation/mapping[2]/underlay-topology + Insert Target Field ${request_template} 2 ${target_field2} 1 + ${request_template} Set Element Text ${request_template} ${model} xpath=.//correlation/aggregation/mapping[2]/input-model + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Prepare Unification Filtration Inside Topology Request + [Arguments] ${request_template} ${model} ${correlation_item} ${target-field} ${underlay_topo} + [Documentation] Prepare topology request for unification filtration inside from template + ${request_template} Set Element Text ${request_template} ${model} xpath=.//correlations/output-model + ${request_template} Set Element Text ${request_template} filtration-aggregation xpath=.//correlations/correlation/type + ${request_template} Set Element Text ${request_template} ${correlation_item} xpath=.//correlation/correlation-item + ${request_template} Set Element Text ${request_template} unification xpath=.//correlation/aggregation/aggregation-type + ${request_template} Set Element Text ${request_template} ${model} xpath=.//correlation/aggregation/mapping[1]/input-model + ${request_template} Set Element Text ${request_template} ${underlay_topo} xpath=.//correlation/aggregation/mapping[1]/underlay-topology + Insert Target Field ${request_template} 1 ${target-field} 1 + ${request_template} Set Element Text ${request_template} ${underlay_topo} xpath=.//correlation/filtration/underlay-topology + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Insert Apply Filters + [Arguments] ${request_template} ${mapping} ${filter_id} + ${request_template} Add Element ${request_template} ${APPLY_FILTERS} xpath=.//correlation/aggregation/mapping[${mapping}] + ${request_template} Set Element Text ${request_template} ${filter_id} xpath=.//correlation/aggregation/mapping[${mapping}]/apply-filters + [Return] ${request_template} + +Prepare Filtration Topology Request + [Arguments] ${request_template} ${model} ${correlation_item} ${underlay_topo} + [Documentation] Prepare topology request for filtration from template + ${request_template} Set Element Text ${request_template} ${model} xpath=.//correlations/output-model + ${request_template} Set Element Text ${request_template} ${correlation_item} xpath=.//correlation/correlation-item + ${request_template} Set Element Text ${request_template} ${underlay_topo} xpath=.//correlation/filtration/underlay-topology + [Return] ${request_template} + +Insert Target Field + [Arguments] ${request_template} ${mapping_index} ${target_field_path} ${matching_key} + [Documentation] Add target field to request + ${target_field_template} Set Element Text ${TARGET_FIELD} ${target_field_path} xpath=.//target-field-path + ${target_field_template} Set Element Text ${target_field_template} ${matching_key} xpath=.//matching-key + ${request_template} Add Element ${request_template} ${target_field_template} xpath=.//correlation/aggregation/mapping[${mapping_index}] + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Insert Filter + [Arguments] ${request_template} ${filter_template} ${target_field} + [Documentation] Add filter to filtration + ${request_template} Add Element ${request_template} ${filter_template} xpath=.//correlation/filtration + ${model} Get Element Text ${request_template} xpath=.//correlations/output-model + ${request_template} Set Element Text ${request_template} ${model} xpath=.//correlation/filtration/filter/input-model + ${request_template} Set Element Text ${request_template} ${target_field} xpath=.//correlation/filtration/filter/target-field + [Return] ${request_template} + +Insert Filter With ID + [Arguments] ${request_template} ${filter_template} ${target_field} ${filter_id} + [Documentation] Add filter to filtration with specified id + ${request_template} Insert Filter ${request_template} ${filter_template} ${target_field} + ${request_template} Set Element Text ${request_template} ${filter_id} xpath=.//correlation/filtration/filter/filter-id + [Return] ${request_template} + +Set IPV4 Filter + [Arguments] ${request_template} ${ip_address} + [Documentation] Set filter ipv4 address + ${request_template} Set Element Text ${request_template} ${ip_address} xpath=.//correlation/filtration/filter/ipv4-address-filter/ipv4-address + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Set Range Number Filter + [Arguments] ${request_template} ${min_number} ${max_number} + [Documentation] Set filter minimum and maximum number values + ${request_template} Set Element Text ${request_template} ${min_number} xpath=.//correlation/filtration/filter/range-number-filter/min-number-value + ${request_template} Set Element Text ${request_template} ${max_number} xpath=.//correlation/filtration/filter/range-number-filter/max-number-value + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Set Range String Filter + [Arguments] ${request_template} ${min_value} ${max_value} + [Documentation] Set filter minimum and maximum string values + ${request_template} Set Element Text ${request_template} ${min_value} xpath=.//correlation/filtration/filter/range-string-filter/min-string-value + ${request_template} Set Element Text ${request_template} ${max_value} xpath=.//correlation/filtration/filter/range-string-filter/max-string-value + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Set Specific Number Filter + [Arguments] ${request_template} ${number} + [Documentation] Set filter number value + ${request_template} Set Element Text ${request_template} ${number} xpath=.//correlation/filtration/filter/specific-number-filter/specific-number + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Set Specific String Filter + [Arguments] ${request_template} ${string_value} + [Documentation] Set filter string value + ${request_template} Set Element Text ${request_template} ${string_value} xpath=.//correlation/filtration/filter/specific-string-filter/specific-string + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Set IPV6 Filter + [Arguments] ${request_template} ${ip_address} + [Documentation] Set filter ipv6 address + ${request_template} Set Element Text ${request_template} ${ip_address} xpath=.//correlation/filtration/filter/ipv6-address-filter/ipv6-address + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Set Script Filter + [Arguments] ${request_template} ${script_language} ${script} + [Documentation] Set filter script + ${request_template} Set Element Text ${request_template} ${script_language} xpath=.//correlation/filtration/filter/script-filter/scripting/language + ${request_template} Set Element Text ${request_template} ${script} xpath=.//correlation/filtration/filter/script-filter/scripting/script + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Insert Link Computation Inside + [Arguments] ${request_template} ${link_computation_template} ${input_model} ${underlay_topology} + [Documentation] Add link computation to request + ${request_template} Add Element ${request_template} ${link_computation_template} xpath=. + ${request_template} Set Element Text ${request_template} ${input_model} xpath=.//link-computation/node-info/input-model + ${request_template} Set Element Text ${request_template} ${input_model} xpath=.//link-computation/link-info/input-model + ${request_template} Set Element Text ${request_template} ${input_model} xpath=.//link-computation/output-model + ${request_template} Set Element Text ${request_template} ${underlay_topology} xpath=.//link-computation/link-info/link-topology + ${request_template} Set Element Attribute ${request_template} xmlns:n urn:opendaylight:topology:correlation xpath=./link-computation + ${request_template} Element to String ${request_template} + [Return] ${request_template} + +Insert Link Computation + [Arguments] ${request_template} ${link_computation_template} ${input_model} ${underlay_topology_1} ${underlay_topology_2} + [Documentation] Add link computation to request + ${request_template} Add Element ${request_template} ${link_computation_template} xpath=. + ${request_template} Set Element Text ${request_template} ${input_model} xpath=.//link-computation/node-info/input-model + ${request_template} Set Element Text ${request_template} ${input_model} xpath=.//link-computation/link-info[1]/input-model + ${request_template} Set Element Text ${request_template} ${input_model} xpath=.//link-computation/link-info[2]/input-model + ${request_template} Set Element Text ${request_template} ${input_model} xpath=.//link-computation/output-model + ${request_template} Set Element Text ${request_template} ${underlay_topology_1} xpath=.//link-computation/link-info[1]/link-topology + ${request_template} Set Element Text ${request_template} ${underlay_topology_2} xpath=.//link-computation/link-info[2]/link-topology + ${request_template} Set Element Attribute ${request_template} xmlns:n urn:opendaylight:topology:correlation xpath=./link-computation + ${request_template} Element to String ${request_template} + [Return] ${request_template} Insert Scripting into Request [Arguments] ${request} ${language} ${script}