Update Robot Framework format - step 15 45/102345/8
authorSangwook Ha <sangwook.ha@verizon.com>
Sat, 10 Sep 2022 03:33:16 +0000 (20:33 -0700)
committerSangwook Ha <sangwook.ha@verizon.com>
Fri, 7 Oct 2022 02:12:08 +0000 (19:12 -0700)
Robotidy has stricter formatting rules for line width, alignment,
section ordering & spacing, etc.

Update the format of Robot Framework files in the following directory
with Robotidy:

- csit/suites/telemetry
- csit/suites/test
- csit/suites/topoprocessing
- csit/suites/tsdr

JIRA: INTTEST-132
Change-Id: I001176adf643a580336d52b23b00fb01d229a975
Signed-off-by: Sangwook Ha <sangwook.ha@verizon.com>
40 files changed:
csit/suites/telemetry/basic/010_TelemetryIntergrationTest.robot
csit/suites/test/alter_log_levels.robot
csit/suites/test/cluster_reset.robot
csit/suites/test/freeze.robot
csit/suites/test/libraries/ScalarClosuresTest.robot
csit/suites/test/libraries/WaitUtilsTest.robot
csit/suites/test/revert_log_levels.robot
csit/suites/topoprocessing/basic-topology-operations/010_Aggregation.robot
csit/suites/topoprocessing/basic-topology-operations/020_Filtration_nodes.robot
csit/suites/topoprocessing/basic-topology-operations/030_Filtration_termination_points.robot
csit/suites/topoprocessing/basic-topology-operations/040_Filtration_links.robot
csit/suites/topoprocessing/basic-topology-operations/050_Aggregation_filtration.robot
csit/suites/topoprocessing/basic-topology-operations/060_Link_computation.robot
csit/suites/topoprocessing/basic-topology-operations/070_Underlay_update.robot
csit/suites/topoprocessing/basic-topology-operations/080_Underlay_item_removal.robot
csit/suites/tsdr/Cassandra/010_InterfaceMetrics.robot
csit/suites/tsdr/Cassandra/020_FlowMetrics.robot
csit/suites/tsdr/Cassandra/030_FlowTableMetrics.robot
csit/suites/tsdr/Cassandra/040_QueueMetrics.robot
csit/suites/tsdr/Cassandra/050_SyslogTable.robot
csit/suites/tsdr/Cassandra/070_Netflow.robot
csit/suites/tsdr/Elasticsearch/030_FlowTableMetrics.robot
csit/suites/tsdr/H2/010_InterfaceMetrics.robot
csit/suites/tsdr/H2/020_FlowMetrics.robot
csit/suites/tsdr/H2/030_FlowTableMetrics.robot
csit/suites/tsdr/H2/040_QueueMetrics.robot
csit/suites/tsdr/H2/050_GroupMetrics.robot
csit/suites/tsdr/H2/060_FlowMeterMetrics.robot
csit/suites/tsdr/HBase/010_InterfaceMetrics.robot
csit/suites/tsdr/HBase/020_FlowMetrics.robot
csit/suites/tsdr/HBase/030_FlowTableMetrics.robot
csit/suites/tsdr/HBase/040_QueueMetrics.robot
csit/suites/tsdr/HBase/050_SyslogTable.robot
csit/suites/tsdr/HBase/070_Netflow.robot
csit/suites/tsdr/HSQLDB/010_InterfaceMetrics.robot
csit/suites/tsdr/HSQLDB/020_FlowMetrics.robot
csit/suites/tsdr/HSQLDB/030_FlowTableMetrics.robot
csit/suites/tsdr/HSQLDB/040_QueueMetrics.robot
csit/suites/tsdr/HSQLDB/060_syslog_Collector.robot
csit/suites/tsdr/HSQLDB/070_Netflow.robot

index 3359298ee7ac828f7539647dad3faf03fc388515..e2e652af237790854935fd1faf77b8aa591e117f 100644 (file)
 *** Settings ***
-Documentation     Basic tests for TELEMETRY information configuration and verification.
-...               Copyright (c) 2018-2019 Zte, Inc. All rights reserved.
-...               Test suite performs basic TELEMETRY information configuration and verification test cases for sensor, destination, and subscription as follows:
-...               Test Case 1: Configure sensor with add and delete operation
-...               Expected result: The Configure result with corresponding operation verified as expected
-...               Test Case 2: Configure destination with add and delete operation
-...               Expected result: The Configure result with corresponding operation verified as expected
-...               Test Case 3: Configure subscription with add and query operation
-...               Expected result: The Configure result with corresponding operation verified as expected
-...               Test Case 4: Delete all resource
-...               Expected result: The Configure result with corresponding operation verified as expected
-Suite Setup       RequestsLibrary.Create_Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_YANG_JSON}
-Resource          ../../../libraries/TemplatedRequests.robot
-Resource          ../../../variables/Variables.robot
-Library           RequestsLibrary
+Documentation       Basic tests for TELEMETRY information configuration and verification.
+...                 Copyright (c) 2018-2019 Zte, Inc. All rights reserved.
+...                 Test suite performs basic TELEMETRY information configuration and verification test cases for sensor, destination, and subscription as follows:
+...                 Test Case 1: Configure sensor with add and delete operation
+...                 Expected result: The Configure result with corresponding operation verified as expected
+...                 Test Case 2: Configure destination with add and delete operation
+...                 Expected result: The Configure result with corresponding operation verified as expected
+...                 Test Case 3: Configure subscription with add and query operation
+...                 Expected result: The Configure result with corresponding operation verified as expected
+...                 Test Case 4: Delete all resource
+...                 Expected result: The Configure result with corresponding operation verified as expected
+
+Resource            ../../../libraries/TemplatedRequests.robot
+Resource            ../../../variables/Variables.robot
+Library             RequestsLibrary
+
+Suite Setup         RequestsLibrary.Create_Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_YANG_JSON}
+
 
 *** Variables ***
-@{SENSOR_ID_LIST}    sensor1    sensor2
-@{PATH_LIST}      path1    path2
-@{FILTER_LIST}    filter1    filter2
-${TELEMETRY_VAR_FOLDER}    ${CURDIR}/../../../variables/telemetry
-@{DESTINATION_ID_LIST}    destination1    destination2
-@{ADDRESS_LIST}    10.42.89.15    10.96.33.30
-${PORT}           50051
-@{NODE_ID_LIST}    node1    node2
-@{SUBSCRIPTION_ID_LIST}    subscription1    subscription2
-@{PROTOCOL_TYPE_LIST}    STREAM_SSH    STREAM_GRPC    STREAM_JSON_RPC    STREAM_THRIFT_RPC    STREAM_WEBSOCKET_RPC
-@{ENCODING_TYPE_LIST}    ENC_XML    ENC_JSON_IETF    ENC_PROTO3
-${LOCAL_SOURCE_ADDRESS}    127.0.0.1
-@{QOS_MARKING_LIST}    0    1    2    3    4    5
-@{SAMPLE_INTERVAL_LIST}    100    200    300
-@{HEARTBEAT_INTERVAL_LIST}    30    60
+@{SENSOR_ID_LIST}               sensor1    sensor2
+@{PATH_LIST}                    path1    path2
+@{FILTER_LIST}                  filter1    filter2
+${TELEMETRY_VAR_FOLDER}         ${CURDIR}/../../../variables/telemetry
+@{DESTINATION_ID_LIST}          destination1    destination2
+@{ADDRESS_LIST}                 10.42.89.15    10.96.33.30
+${PORT}                         50051
+@{NODE_ID_LIST}                 node1    node2
+@{SUBSCRIPTION_ID_LIST}         subscription1    subscription2
+@{PROTOCOL_TYPE_LIST}
+...                             STREAM_SSH
+...                             STREAM_GRPC
+...                             STREAM_JSON_RPC
+...                             STREAM_THRIFT_RPC
+...                             STREAM_WEBSOCKET_RPC
+@{ENCODING_TYPE_LIST}           ENC_XML    ENC_JSON_IETF    ENC_PROTO3
+${LOCAL_SOURCE_ADDRESS}         127.0.0.1
+@{QOS_MARKING_LIST}             0    1    2    3    4    5
+@{SAMPLE_INTERVAL_LIST}         100    200    300
+@{HEARTBEAT_INTERVAL_LIST}      30    60
+
 
 *** Test Cases ***
 TC1_Configure Sensor
     [Documentation]    Configure two sensors with sensor id list ${SENSOR_ID_LIST}, sensor path list ${PATH_LIST}, and sensor exclude filter list ${FILTER_LIST}.
-    ${mapping} =    Create Dictionary    SENSOR1=${SENSOR_ID_LIST[0]}    SENSOR2=${SENSOR_ID_LIST[1]}    PATH1=${PATH_LIST[0]}    PATH2=${PATH_LIST[1]}    FILTER1=${FILTER_LIST[0]}
+    ${mapping} =    Create Dictionary
+    ...    SENSOR1=${SENSOR_ID_LIST[0]}
+    ...    SENSOR2=${SENSOR_ID_LIST[1]}
+    ...    PATH1=${PATH_LIST[0]}
+    ...    PATH2=${PATH_LIST[1]}
+    ...    FILTER1=${FILTER_LIST[0]}
     ...    FILTER2=${FILTER_LIST[1]}
-    ${resp} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_sensor_configuration/configure_sensor    ${mapping}    session
+    ${resp} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_sensor_configuration/configure_sensor
+    ...    ${mapping}
+    ...    session
     Verify_Response_As_Json_Templated    ${resp}    ${TELEMETRY_VAR_FOLDER}/response    success_response
 
 TC1_Delete Sensor
     [Documentation]    Delete the second sensor created in the test case TC1_Configure Sensor.
     ${mapping} =    Create Dictionary    SENSOR=${SENSOR_ID_LIST[1]}
-    ${resp} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_sensor_configuration/delete_sensor    ${mapping}    session
+    ${resp} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_sensor_configuration/delete_sensor
+    ...    ${mapping}
+    ...    session
     Verify_Response_As_Json_Templated    ${resp}    ${TELEMETRY_VAR_FOLDER}/response    success_response
 
 TC1_Query Sensor
     [Documentation]    Query the sensor created in the datastore.
-    ${resp} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_sensor_configuration/query_sensor    {}    session    True
+    ${resp} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_sensor_configuration/query_sensor
+    ...    {}
+    ...    session
+    ...    True
 
 TC2_Configure Destination
     [Documentation]    Configure two destinations with destination id list ${DESTINATION_ID_LIST}, address list ${ADDRESS_LIST} and port ${PORT}.
-    ${mapping} =    Create Dictionary    DESTINATION1=${DESTINATION_ID_LIST[0]}    DESTINATION2=${DESTINATION_ID_LIST[1]}    ADDRESS1=${ADDRESS_LIST[0]}    ADDRESS2=${ADDRESS_LIST[1]}    PORT=${PORT}
-    ${resp} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_destination_configuration/configure_destination    ${mapping}    session
+    ${mapping} =    Create Dictionary
+    ...    DESTINATION1=${DESTINATION_ID_LIST[0]}
+    ...    DESTINATION2=${DESTINATION_ID_LIST[1]}
+    ...    ADDRESS1=${ADDRESS_LIST[0]}
+    ...    ADDRESS2=${ADDRESS_LIST[1]}
+    ...    PORT=${PORT}
+    ${resp} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_destination_configuration/configure_destination
+    ...    ${mapping}
+    ...    session
     Verify_Response_As_Json_Templated    ${resp}    ${TELEMETRY_VAR_FOLDER}/response    success_response
 
 TC2_Delete Destination
     [Documentation]    Delete the second destination created in the test case TC2_Configure Destination.
     ${mapping} =    Create Dictionary    DESTINATION=${DESTINATION_ID_LIST[1]}
-    ${resp} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_destination_configuration/delete_destination    ${mapping}    session
+    ${resp} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_destination_configuration/delete_destination
+    ...    ${mapping}
+    ...    session
     Verify_Response_As_Json_Templated    ${resp}    ${TELEMETRY_VAR_FOLDER}/response    success_response
 
 TC2_Query Destination
     [Documentation]    Query the destination created in the datastore.
-    ${resp} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_destination_configuration/query_destination    {}    session    True
+    ${resp} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_destination_configuration/query_destination
+    ...    {}
+    ...    session
+    ...    True
 
 TC3_Configure Subscription
     [Documentation]    Configure one node with two subscriptions with subscription id list ${SUBSCRIPTION_ID_LIST}, a series of parameters, and sensor destination configured in front.
-    ${mapping} =    Create Dictionary    NODE1=${NODE_ID_LIST[0]}    SUBSCRIPTION1=${SUBSCRIPTION_ID_LIST[0]}    PROTOCOLTYPE1=${PROTOCOL_TYPE_LIST[1]}    ENCODINGTYPE1=${ENCODING_TYPE_LIST[2]}    LOCALSOURCEADDRESS=${LOCAL_SOURCE_ADDRESS}
-    ...    QOS1=${QOS_MARKING_LIST[3]}    SENSOR1=${SENSOR_ID_LIST[0]}    SAMPLE1=${SAMPLE_INTERVAL_LIST[0]}    HEARTBEAT1=${HEARTBEAT_INTERVAL_LIST[0]}    DESTINATION1=${DESTINATION_ID_LIST[0]}    SUBSCRIPTION2=${SUBSCRIPTION_ID_LIST[1]}
-    ...    PROTOCOLTYPE2=${PROTOCOL_TYPE_LIST[0]}    ENCODINGTYPE2=${ENCODING_TYPE_LIST[0]}    QOS2=${QOS_MARKING_LIST[5]}    SAMPLE2=${SAMPLE_INTERVAL_LIST[1]}    HEARTBEAT2=${HEARTBEAT_INTERVAL_LIST[1]}
-    ${resp} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_subscription_configuration/configure_subscription    ${mapping}    session
+    ${mapping} =    Create Dictionary
+    ...    NODE1=${NODE_ID_LIST[0]}
+    ...    SUBSCRIPTION1=${SUBSCRIPTION_ID_LIST[0]}
+    ...    PROTOCOLTYPE1=${PROTOCOL_TYPE_LIST[1]}
+    ...    ENCODINGTYPE1=${ENCODING_TYPE_LIST[2]}
+    ...    LOCALSOURCEADDRESS=${LOCAL_SOURCE_ADDRESS}
+    ...    QOS1=${QOS_MARKING_LIST[3]}
+    ...    SENSOR1=${SENSOR_ID_LIST[0]}
+    ...    SAMPLE1=${SAMPLE_INTERVAL_LIST[0]}
+    ...    HEARTBEAT1=${HEARTBEAT_INTERVAL_LIST[0]}
+    ...    DESTINATION1=${DESTINATION_ID_LIST[0]}
+    ...    SUBSCRIPTION2=${SUBSCRIPTION_ID_LIST[1]}
+    ...    PROTOCOLTYPE2=${PROTOCOL_TYPE_LIST[0]}
+    ...    ENCODINGTYPE2=${ENCODING_TYPE_LIST[0]}
+    ...    QOS2=${QOS_MARKING_LIST[5]}
+    ...    SAMPLE2=${SAMPLE_INTERVAL_LIST[1]}
+    ...    HEARTBEAT2=${HEARTBEAT_INTERVAL_LIST[1]}
+    ${resp} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_subscription_configuration/configure_subscription
+    ...    ${mapping}
+    ...    session
     Verify_Response_As_Json_Templated    ${resp}    ${TELEMETRY_VAR_FOLDER}/response    success_response
 
 TC3_Query Subscription
     [Documentation]    Query the subscription created in the datastore.
-    ${resp} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_subscription_configuration/query_subscription    {}    session    True
+    ${resp} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_subscription_configuration/query_subscription
+    ...    {}
+    ...    session
+    ...    True
 
 TC4_Delete Resource
     [Documentation]    Delete all sensor, destination and subscription.
     ${mapping1} =    Create Dictionary    DESTINATION=${DESTINATION_ID_LIST[0]}
-    ${resp1} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_destination_configuration/delete_destination    ${mapping1}    session
+    ${resp1} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_destination_configuration/delete_destination
+    ...    ${mapping1}
+    ...    session
     ${mapping2} =    Create Dictionary    SENSOR=${SENSOR_ID_LIST[0]}
-    ${resp2} =    TemplatedRequests.Post_As_Json_Templated    ${TELEMETRY_VAR_FOLDER}/telemetry_sensor_configuration/delete_sensor    ${mapping2}    session
+    ${resp2} =    TemplatedRequests.Post_As_Json_Templated
+    ...    ${TELEMETRY_VAR_FOLDER}/telemetry_sensor_configuration/delete_sensor
+    ...    ${mapping2}
+    ...    session
index e630beedb703d2430b7c931ba55c2db3fc92a834..f2362e59094688b73c02d6f51dc5d1f43acb2613 100644 (file)
@@ -1,22 +1,27 @@
 *** Settings ***
-Documentation     For every node, set Karaf log level to ${ALTERNATIVE_KARAF_LOG_LEVEL}.
+Documentation       For every node, set Karaf log level to ${ALTERNATIVE_KARAF_LOG_LEVEL}.
 ...
-...               Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
+...                 Copyright (c) 2016 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,
-...               and is available at http://www.eclipse.org/legal/epl-v10.html
+...                 This program and the accompanying materials are made available under the
+...                 terms of the Eclipse Public License v1.0 which accompanies this distribution,
+...                 and is available at http://www.eclipse.org/legal/epl-v10.html
 ...
 ...
-...               This suite is useful for testing, run it after readiness.
-...               Do not forget to specify other variables if suites afterwards manipulate log level.
-...               Use revert_log_levels.robot to restore log levels to the default value.
-Suite Setup       ClusterManagement.ClusterManagement_Setup
-Default Tags      clustering
-Resource          ${CURDIR}/../../libraries/ClusterManagement.robot
+...                 This suite is useful for testing, run it after readiness.
+...                 Do not forget to specify other variables if suites afterwards manipulate log level.
+...                 Use revert_log_levels.robot to restore log levels to the default value.
+
+Resource            ${CURDIR}/../../libraries/ClusterManagement.robot
+
+Suite Setup         ClusterManagement.ClusterManagement_Setup
+
+Default Tags        clustering
+
 
 *** Variables ***
-${ALTERNATIVE_KARAF_LOG_LEVEL}    INFO
+${ALTERNATIVE_KARAF_LOG_LEVEL}      INFO
+
 
 *** Test Cases ***
 Set_Levels
index d9b17c99360d2b5865635445a883b993d8070592..d1db97053a6e73f06b9a0a034bc81e1056c3a745 100644 (file)
@@ -1,29 +1,35 @@
 *** Settings ***
-Documentation     Kill nodes, delete all data created since boot, start nodes, wait for sync.
+Documentation       Kill nodes, delete all data created since boot, start nodes, wait for sync.
 ...
-...               Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
+...                 Copyright (c) 2016 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,
-...               and is available at http://www.eclipse.org/legal/epl-v10.html
+...                 This program and the accompanying materials are made available under the
+...                 terms of the Eclipse Public License v1.0 which accompanies this distribution,
+...                 and is available at http://www.eclipse.org/legal/epl-v10.html
 ...
 ...
-...               This suite is useful for undoing feature installation, Leader movement
-...               and for recovering from bably broken state.
-...               The intent is to provide speed compared to isolated job runs.
+...                 This suite is useful for undoing feature installation, Leader movement
+...                 and for recovering from bably broken state.
+...                 The intent is to provide speed compared to isolated job runs.
 ...
-...               FIXME: Import improvements from suites manipulating tell-based protocol setting.
-Suite Setup       ClusterManagement.ClusterManagement_Setup
-Default Tags      clustering    critical
-Library           DateTime
-Library           SSHLibrary
-Resource          ${CURDIR}/../../libraries/ClusterManagement.robot
+...                 FIXME: Import improvements from suites manipulating tell-based protocol setting.
+
+Library             DateTime
+Library             SSHLibrary
+Resource            ${CURDIR}/../../libraries/ClusterManagement.robot
+
+Suite Setup         ClusterManagement.ClusterManagement_Setup
+
+Default Tags        clustering    critical
+
 
 *** Test Cases ***
 Kill_All_And_Get_Logs
     [Documentation]    Kill every node, download karaf logs.
     ClusterManagement.Kill_Members_From_List_Or_All
-    ClusterManagement.Safe_With_Ssh_To_List_Or_All_Run_Keyword    member_index_list=${EMPTY}    keyword_name=Download_Karaf_Log
+    ClusterManagement.Safe_With_Ssh_To_List_Or_All_Run_Keyword
+    ...    member_index_list=${EMPTY}
+    ...    keyword_name=Download_Karaf_Log
 
 Clean_Start_All_And_Sync
     [Documentation]    Remove various data folders, including ${KARAF_HOME}/data/ on every node.
@@ -32,6 +38,7 @@ Clean_Start_All_And_Sync
     ClusterManagement.Start_Members_From_List_Or_All
     BuiltIn.Comment    Basic synch performed, but waits for specific functionality may still be needed.
 
+
 *** Keywords ***
 Download_Karaf_Log
     ${timestamp} =    DateTime.Get_Current_Date    time_zone=UTC    result_format=%Y%m%d%H%M%S%f
index 1045cee9e999fa531849149996e6e9e083a06c78..0a4743e4967620e403b240ecebef267dcc5ec8a9 100644 (file)
@@ -1,9 +1,11 @@
 *** Settings ***
-Documentation     Not a test, it just logs versions of installed Python modules.
-...               Useful when library documentation mentions version-specific behavior.
-Library           OperatingSystem
-Library           SSHLibrary
-Resource          ${CURDIR}/../../libraries/SSHKeywords.robot
+Documentation       Not a test, it just logs versions of installed Python modules.
+...                 Useful when library documentation mentions version-specific behavior.
+
+Library             OperatingSystem
+Library             SSHLibrary
+Resource            ${CURDIR}/../../libraries/SSHKeywords.robot
+
 
 *** Test Cases ***
 Freeze
index 3cc0400542beaca3f6a10c7fe316c1253a58a638..d12aeb3c78d0713be6b39b6410200c282d41f271 100644 (file)
@@ -1,16 +1,19 @@
 *** Settings ***
-Documentation     Unit test suite to ScalarClosures library.
+Documentation       Unit test suite to ScalarClosures library.
 ...
-...               Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+...                 Copyright (c) 2015 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,
-...               and is available at http://www.eclipse.org/legal/epl-v10.html
+...                 This program and the accompanying materials are made available under the
+...                 terms of the Eclipse Public License v1.0 which accompanies this distribution,
+...                 and is available at http://www.eclipse.org/legal/epl-v10.html
 ...
 ...
-...               TODO: Improve test converage.
-Suite Setup       SCT_Setup
-Resource          ${CURDIR}/../../../libraries/ScalarClosures.robot
+...                 TODO: Improve test converage.
+
+Resource            ${CURDIR}/../../../libraries/ScalarClosures.robot
+
+Suite Setup         SCT_Setup
+
 
 *** Test Cases ***
 Identity_Closure_Defined
@@ -26,13 +29,21 @@ Zero_Args_No_Kwargs_Execution_Test
 
 One_Arg_No_Kwargs_Execution_Test
     [Documentation]    The identity closure is run with rerplaced argument, the value is visible.
-    ${actual} =    ScalarClosures.Run_Closure_After_Replacing_First_Argument    ${ScalarClosures__identity}    first_value
+    ${actual} =    ScalarClosures.Run_Closure_After_Replacing_First_Argument
+    ...    ${ScalarClosures__identity}
+    ...    first_value
     BuiltIn.Should_Be_Equal    ${actual}    first_value
 
 Two_Args_No_Kwargs_Execution_Test
     [Documentation]    Closure which puts two placeholders into list is created, run with substitution shows new values in list.
-    ${closure} =    ScalarClosures.Closure_From_Keyword_And_Arguments    BuiltIn.Set_Variable    first_placeholder    second_placeholder
-    ${actual} =    ScalarClosures.Run_Closure_After_Replacing_First_Two_Arguments    ${closure}    first_value    second_value
+    ${closure} =    ScalarClosures.Closure_From_Keyword_And_Arguments
+    ...    BuiltIn.Set_Variable
+    ...    first_placeholder
+    ...    second_placeholder
+    ${actual} =    ScalarClosures.Run_Closure_After_Replacing_First_Two_Arguments
+    ...    ${closure}
+    ...    first_value
+    ...    second_value
     ${expected} =    BuiltIn.Set_Variable    first_value    second_value
     BuiltIn.Should_Be_Equal    ${actual}    ${expected}
 
@@ -42,11 +53,14 @@ One_Kwarg_Nested_In_Zero_Args_Execution_Test
     # As stated in Documentation of ScalarClosures in Current limitation,
     # BuiltIn.Create_Directory will get empty list in @{args}, which will trigger deprecation warning.
     # TODO: Investigate whether it is a genuine bug in Robot.
-    ${outer_closure} =    ScalarClosures.Closure_From_Keyword_And_Arguments    ScalarClosures.Run_Closure_As_Is    ${inner_closure}
+    ${outer_closure} =    ScalarClosures.Closure_From_Keyword_And_Arguments
+    ...    ScalarClosures.Run_Closure_As_Is
+    ...    ${inner_closure}
     ${actual} =    ScalarClosures.Run_Closure_As_Is    ${outer_closure}
     ${expected} =    BuiltIn.Create_Dictionary    foo=bar
     BuiltIn.Should_Be_Equal    ${actual}    ${expected}
 
+
 *** Keywords ***
 SCT_Setup
     [Documentation]    Call ScalarClosures setup.
index bf0bc4184b0db5660693a9b79e908268178f4a8e..8f7f748b5c9edc48e1a90d967aaed8637fe20cd2 100644 (file)
 *** Settings ***
-Documentation     Unit test suite to WaitUtils library.
+Documentation       Unit test suite to WaitUtils library.
 ...
-...               Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+...                 Copyright (c) 2015 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,
-...               and is available at http://www.eclipse.org/legal/epl-v10.html
+...                 This program and the accompanying materials are made available under the
+...                 terms of the Eclipse Public License v1.0 which accompanies this distribution,
+...                 and is available at http://www.eclipse.org/legal/epl-v10.html
 ...
 ...
-...               TODO: Include more negative tests for WFGASSVCS and WFGEOSSVCS.
-...               TODO: Current time values may be too brittle.
-Suite Setup       WUT_Setup
-Library           Collections
-Resource          ${CURDIR}/../../../libraries/ScalarClosures.robot
-Resource          ${CURDIR}/../../../libraries/WaitUtils.robot
+...                 TODO: Include more negative tests for WFGASSVCS and WFGEOSSVCS.
+...                 TODO: Current time values may be too brittle.
+
+Library             Collections
+Resource            ${CURDIR}/../../../libraries/ScalarClosures.robot
+Resource            ${CURDIR}/../../../libraries/WaitUtils.robot
+
+Suite Setup         WUT_Setup
+
 
 *** Variables ***
-${suite_scenario}    ${EMPTY}    # Used to store state for fake stateless getter.
-@{stability_scenario}    -1    -1    0    0    1    2    2
+${suite_scenario}           ${EMPTY}    # Used to store state for fake stateless getter.
+@{stability_scenario}       -1    -1    0    0    1    2    2
+
 
 *** Test Cases ***
 SlACHTSC_Happy
     [Documentation]    Assertor always passes, we see its value returned.
-    ${result} =    WaitUtils.Stateless_Assert_Closure_Has_To_Succeed_Consecutively    timeout=1.4s    period=0.5s    count=3    assertor=${ScalarClosures__identity}
+    ${result} =    WaitUtils.Stateless_Assert_Closure_Has_To_Succeed_Consecutively
+    ...    timeout=1.4s
+    ...    period=0.5s
+    ...    count=3
+    ...    assertor=${ScalarClosures__identity}
     BuiltIn.Should_Be_Equal    ${result}    placeholder
 
 SlACHTSC_Too_Many_Sleeps
     [Documentation]    There are too many sleeps to meet deadline.
     # TODO: Do we want the test to be this sensitive to failure message?
-    BuiltIn.Run_Keyword_And_Expect_Error    Not possible to succeed within the deadline. Last result: No result yet.    WaitUtils.Stateless_Assert_Closure_Has_To_Succeed_Consecutively    timeout=1.4s    period=0.5s    count=4    assertor=${ScalarClosures__identity}
+    BuiltIn.Run_Keyword_And_Expect_Error
+    ...    Not possible to succeed within the deadline. Last result: No result yet.
+    ...    WaitUtils.Stateless_Assert_Closure_Has_To_Succeed_Consecutively
+    ...    timeout=1.4s
+    ...    period=0.5s
+    ...    count=4
+    ...    assertor=${ScalarClosures__identity}
 
 SlACHTSC_Slow_Assertor
     [Documentation]    Assertor takes additional time, deadline is encountered.
     ${assertor} =    ScalarClosures.Closure_From_Keyword_And_Arguments    BuiltIn.Sleep    0.3s
-    BuiltIn.Run_Keyword_And_Expect_Error    Not possible to succeed within the deadline. Last result: None    WaitUtils.Stateless_Assert_Closure_Has_To_Succeed_Consecutively    timeout=1.4s    period=0.5s    count=3    assertor=${assertor}
+    BuiltIn.Run_Keyword_And_Expect_Error
+    ...    Not possible to succeed within the deadline. Last result: None
+    ...    WaitUtils.Stateless_Assert_Closure_Has_To_Succeed_Consecutively
+    ...    timeout=1.4s
+    ...    period=0.5s
+    ...    count=3
+    ...    assertor=${assertor}
 
 SfACHTSC_Happy
     [Documentation]    Assertor succeeds just the right amount of counts.
-    ${result} =    WaitUtils.Stateful_Assert_Closure_Has_To_Succeed_Consecutively    timeout=1.4s    period=0.5s    count=3    assertor=${countdown_quick}    initial_state=3
+    ${result} =    WaitUtils.Stateful_Assert_Closure_Has_To_Succeed_Consecutively
+    ...    timeout=1.4s
+    ...    period=0.5s
+    ...    count=3
+    ...    assertor=${countdown_quick}
+    ...    initial_state=3
     BuiltIn.Should_Be_Equal    ${result}    still_alive
 
 SfACHTSC_Too_Many_Sleeps
     [Documentation]    There are too many sleeps to meet deadline.
-    BuiltIn.Run_Keyword_And_Expect_Error    Not possible to succeed within the deadline. Last result: No result yet.    WaitUtils.Stateful_Assert_Closure_Has_To_Succeed_Consecutively    timeout=1.4s    period=0.5s    count=4    assertor=${countdown_quick}
+    BuiltIn.Run_Keyword_And_Expect_Error
+    ...    Not possible to succeed within the deadline. Last result: No result yet.
+    ...    WaitUtils.Stateful_Assert_Closure_Has_To_Succeed_Consecutively
+    ...    timeout=1.4s
+    ...    period=0.5s
+    ...    count=4
+    ...    assertor=${countdown_quick}
     ...    initial_state=4
 
 SfACHTSC_Slow_Assertor
     [Documentation]    Assertor takes additional time, deadline is encountered.
-    BuiltIn.Run_Keyword_And_Expect_Error    Not possible to succeed within the deadline. Last result: still_alive    WaitUtils.Stateful_Assert_Closure_Has_To_Succeed_Consecutively    timeout=1.4s    period=0.5s    count=3    assertor=${countdown_slow}
+    BuiltIn.Run_Keyword_And_Expect_Error
+    ...    Not possible to succeed within the deadline. Last result: still_alive
+    ...    WaitUtils.Stateful_Assert_Closure_Has_To_Succeed_Consecutively
+    ...    timeout=1.4s
+    ...    period=0.5s
+    ...    count=3
+    ...    assertor=${countdown_slow}
     ...    initial_state=3
 
 SfACHTSC_Too_Few_Counts
     [Documentation]    Assertor fails at the last try.
-    BuiltIn.Run_Keyword_And_Expect_Error    Count is down.    WaitUtils.Stateful_Assert_Closure_Has_To_Succeed_Consecutively    timeout=1.4s    period=0.5s    count=3    assertor=${countdown_quick}
+    BuiltIn.Run_Keyword_And_Expect_Error
+    ...    Count is down.
+    ...    WaitUtils.Stateful_Assert_Closure_Has_To_Succeed_Consecutively
+    ...    timeout=1.4s
+    ...    period=0.5s
+    ...    count=3
+    ...    assertor=${countdown_quick}
     ...    initial_state=2
 
 Fake_Getter_Fails_Exactly
@@ -64,7 +107,10 @@ Fake_Getter_Fails_Exactly
     BuiltIn.Should_Be_Equal    ${data}    0
     ${data} =    ScalarClosures.Run_Closure_As_Is    ${getter}
     BuiltIn.Should_Be_Equal    ${data}    0
-    BuiltIn.Run_Keyword_And_Expect_Error    IndexError: Given index 0 is out of the range 0--1.    ScalarClosures.Run_Closure_As_Is    ${getter}
+    BuiltIn.Run_Keyword_And_Expect_Error
+    ...    IndexError: Given index 0 is out of the range 0--1.
+    ...    ScalarClosures.Run_Closure_As_Is
+    ...    ${getter}
 
 Fake_Getter_Fails_On_Negative
     [Documentation]    Tests that fake getter created in this suite succeed exactly the right amount of times.
@@ -81,8 +127,16 @@ GASSVHTSCBD_Happy
     ${getter} =    Create_Scenario_Getter_Closure    ${value_list}    delay=0s    fail_on_negative=True
     ${date_now} =    DateTime.Get_Current_Date
     ${date_deadline} =    DateTime.Add_Time_To_Date    ${date_now}    1.35
-    ${state}    ${status}    ${result} =    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline    date_deadline=${date_deadline}    period_in_seconds=0.4    count=3
-    ...    getter=${getter}    safe_validator=${standard_validator}    initial_state=1
+    ${state}
+    ...    ${status}
+    ...    ${result} =
+    ...    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline
+    ...    date_deadline=${date_deadline}
+    ...    period_in_seconds=0.4
+    ...    count=3
+    ...    getter=${getter}
+    ...    safe_validator=${standard_validator}
+    ...    initial_state=1
     BuiltIn.Should_Be_Equal    ${state}    1
     BuiltIn.Should_Be_Equal    ${status}    PASS
     BuiltIn.Should_Be_Equal    ${result}    Validated stable: 1
@@ -93,8 +147,16 @@ GASSVHTSCBD_Sleeps_Too_Long
     ${getter} =    Create_Scenario_Getter_Closure    ${value_list}    delay=0s    fail_on_negative=True
     ${date_now} =    DateTime.Get_Current_Date
     ${date_deadline} =    DateTime.Add_Time_To_Date    ${date_now}    1.05
-    ${state}    ${status}    ${result} =    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline    date_deadline=${date_deadline}    period_in_seconds=0.55    count=3
-    ...    getter=${getter}    safe_validator=${standard_validator}    initial_state=1
+    ${state}
+    ...    ${status}
+    ...    ${result} =
+    ...    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline
+    ...    date_deadline=${date_deadline}
+    ...    period_in_seconds=0.55
+    ...    count=3
+    ...    getter=${getter}
+    ...    safe_validator=${standard_validator}
+    ...    initial_state=1
     BuiltIn.Should_Be_Equal    ${state}    1
     BuiltIn.Should_Be_Equal    ${status}    FAIL
     BuiltIn.Should_Be_Equal    ${result}    Not possible to succeed within the deadline. Last result: No result yet.
@@ -105,11 +167,21 @@ GASSVHTSCBD_Slow_Getter
     ${getter} =    Create_Scenario_Getter_Closure    ${value_list}    delay=0.21s    fail_on_negative=True
     ${date_now} =    DateTime.Get_Current_Date
     ${date_deadline} =    DateTime.Add_Time_To_Date    ${date_now}    1.2
-    ${state}    ${status}    ${result} =    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline    date_deadline=${date_deadline}    period_in_seconds=0.4    count=3
-    ...    getter=${getter}    safe_validator=${standard_validator}    initial_state=1
+    ${state}
+    ...    ${status}
+    ...    ${result} =
+    ...    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline
+    ...    date_deadline=${date_deadline}
+    ...    period_in_seconds=0.4
+    ...    count=3
+    ...    getter=${getter}
+    ...    safe_validator=${standard_validator}
+    ...    initial_state=1
     BuiltIn.Should_Be_Equal    ${state}    1
     BuiltIn.Should_Be_Equal    ${status}    FAIL
-    BuiltIn.Should_Be_Equal    ${result}    Not possible to succeed within the deadline. Last result: Validated stable: 1
+    BuiltIn.Should_Be_Equal
+    ...    ${result}
+    ...    Not possible to succeed within the deadline. Last result: Validated stable: 1
 
 GASSVHTSCBD_Data_Become_Invalid
     [Documentation]    Validator fails at the last try.
@@ -117,8 +189,16 @@ GASSVHTSCBD_Data_Become_Invalid
     ${getter} =    Create_Scenario_Getter_Closure    ${value_list}    delay=0s    fail_on_negative=True
     ${date_now} =    DateTime.Get_Current_Date
     ${date_deadline} =    DateTime.Add_Time_To_Date    ${date_now}    1.35
-    ${state}    ${status}    ${result} =    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline    date_deadline=${date_deadline}    period_in_seconds=0.4    count=3
-    ...    getter=${getter}    safe_validator=${standard_validator}    initial_state=1
+    ${state}
+    ...    ${status}
+    ...    ${result} =
+    ...    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline
+    ...    date_deadline=${date_deadline}
+    ...    period_in_seconds=0.4
+    ...    count=3
+    ...    getter=${getter}
+    ...    safe_validator=${standard_validator}
+    ...    initial_state=1
     BuiltIn.Should_Be_Equal    ${state}    2
     BuiltIn.Should_Be_Equal    ${status}    FAIL
     BuiltIn.Should_Be_Equal    ${result}    Validator failed: Data value has changed.
@@ -129,8 +209,16 @@ GASSVHTSCBD_Getter_Error
     ${getter} =    Create_Scenario_Getter_Closure    ${value_list}    delay=0s    fail_on_negative=True
     ${date_now} =    DateTime.Get_Current_Date
     ${date_deadline} =    DateTime.Add_Time_To_Date    ${date_now}    1.35
-    ${state}    ${status}    ${result} =    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline    date_deadline=${date_deadline}    period_in_seconds=0.4    count=3
-    ...    getter=${getter}    safe_validator=${standard_validator}    initial_state=1
+    ${state}
+    ...    ${status}
+    ...    ${result} =
+    ...    Getter_And_Safe_Stateful_Validator_Have_To_Succeed_Consecutively_By_Deadline
+    ...    date_deadline=${date_deadline}
+    ...    period_in_seconds=0.4
+    ...    count=3
+    ...    getter=${getter}
+    ...    safe_validator=${standard_validator}
+    ...    initial_state=1
     BuiltIn.Should_Be_Equal    ${state}    1
     BuiltIn.Should_Be_Equal    ${status}    FAIL
     BuiltIn.Should_Be_Equal    ${result}    Getter failed: Got negative -1
@@ -141,7 +229,12 @@ WFGASSVCS_Happy
     # Validator fails on first data value change, so count=1 means 2 consecutive values.
     # No initial state given to show None is safe state.
     # Robot code itself takes some time, so timeout has to have a reserve.
-    ${result} =    Wait_For_Getter_And_Safe_Stateful_Validator_Consecutive_Success    timeout=1.8s    period=0.1s    count=1    getter=${getter}    safe_validator=${standard_validator}
+    ${result} =    Wait_For_Getter_And_Safe_Stateful_Validator_Consecutive_Success
+    ...    timeout=1.8s
+    ...    period=0.1s
+    ...    count=1
+    ...    getter=${getter}
+    ...    safe_validator=${standard_validator}
     BuiltIn.Should_Be_Equal    ${result}    Validated stable: 2
 
 WFGEOSSVCS_Happy
@@ -150,7 +243,12 @@ WFGEOSSVCS_Happy
     # Validator fails on first data value change, so count=1 means 2 consecutive values.
     # No initial state given to show None is safe state.
     # Robot code itself takes some time, so timeout has to have a reserve.
-    ${result} =    Wait_For_Getter_Error_Or_Safe_Stateful_Validator_Consecutive_Success    timeout=1.8s    period=0.1s    count=1    getter=${getter}    safe_validator=${standard_validator}
+    ${result} =    Wait_For_Getter_Error_Or_Safe_Stateful_Validator_Consecutive_Success
+    ...    timeout=1.8s
+    ...    period=0.1s
+    ...    count=1
+    ...    getter=${getter}
+    ...    safe_validator=${standard_validator}
     BuiltIn.Should_Be_Equal    ${result}    Validated stable: 2
 
 WFGEOSSVCS_Early_exit
@@ -159,17 +257,29 @@ WFGEOSSVCS_Early_exit
     # Validator fails on first data value change, so count=1 means 2 consecutive values.
     # No initial state given to show None is safe state.
     # Robot code itself takes some time, so timeout has to have a reserve.
-    ${status}    ${message} =    BuiltIn.Run_Keyword_And_Ignore_Error    Wait_For_Getter_Error_Or_Safe_Stateful_Validator_Consecutive_Success    timeout=1.8s    period=0.1s    count=1
-    ...    getter=${getter}    safe_validator=${standard_validator}
+    ${status}    ${message} =    BuiltIn.Run_Keyword_And_Ignore_Error
+    ...    Wait_For_Getter_Error_Or_Safe_Stateful_Validator_Consecutive_Success
+    ...    timeout=1.8s
+    ...    period=0.1s
+    ...    count=1
+    ...    getter=${getter}
+    ...    safe_validator=${standard_validator}
     BuiltIn.Should_Be_Equal    ${status}    FAIL
     BuiltIn.Should_Be_Equal    ${message}    Getter failed: Got negative -1
 
 WFGEOSSVCS_Sleeps_Too_Long
     [Documentation]    Use getter, standard validator, timeout with a reserve and checks that the expected error=timeout occurred.
     ${getter} =    Create_Scenario_Getter_Closure    ${stability_scenario}    delay=0s    fail_on_negative=False
-    BuiltIn.Run_Keyword_And_Expect_Error    Not possible to succeed within the deadline. Last result: No result yet.    Wait_For_Getter_Error_Or_Safe_Stateful_Validator_Consecutive_Success    timeout=9.15s    period=2s    count=1    getter=${getter}
+    BuiltIn.Run_Keyword_And_Expect_Error
+    ...    Not possible to succeed within the deadline. Last result: No result yet.
+    ...    Wait_For_Getter_Error_Or_Safe_Stateful_Validator_Consecutive_Success
+    ...    timeout=9.15s
+    ...    period=2s
+    ...    count=1
+    ...    getter=${getter}
     ...    safe_validator=${standard_validator}
 
+
 *** Keywords ***
 WUT_Setup
     [Documentation]    Call Setup keywords of libraries, define reusable variables.
@@ -178,30 +288,39 @@ WUT_Setup
     BuiltIn.Set_Suite_Variable    ${countdown_quick}    ${countdown}
     ${countdown} =    ScalarClosures.Closure_From_Keyword_And_Arguments    Stateful_Countdown    0    delay=0.3s
     BuiltIn.Set_Suite_Variable    ${countdown_slow}    ${countdown}
-    ${lsssv} =    ScalarClosures.Closure_From_Keyword_And_Arguments    WaitUtils.Limiting_Stability_Safe_Stateful_Validator_As_Keyword    state_holder    data_holder    valid_minimum=1
+    ${lsssv} =    ScalarClosures.Closure_From_Keyword_And_Arguments
+    ...    WaitUtils.Limiting_Stability_Safe_Stateful_Validator_As_Keyword
+    ...    state_holder
+    ...    data_holder
+    ...    valid_minimum=1
     BuiltIn.Set_Suite_Variable    ${standard_validator}    ${lsssv}
 
 Stateful_Countdown
-    [Arguments]    ${how_many_before_fail}    ${delay}=0s
     [Documentation]    Simple stateful keyword, counting down successes.
+    [Arguments]    ${how_many_before_fail}    ${delay}=0s
     BuiltIn.Sleep    ${delay}
-    BuiltIn.Run_Keyword_If    ${how_many_before_fail} < 1    BuiltIn.Fail    Count is down.
+    IF    ${how_many_before_fail} < 1    BuiltIn.Fail    Count is down.
     ${new_count} =    BuiltIn.Evaluate    ${how_many_before_fail} - 1
-    [Return]    ${new_count}    still_alive
+    RETURN    ${new_count}    still_alive
 
 Scenario_Getter_As_Keyword
-    [Arguments]    ${delay}=0s    ${fail_on_negative}=False
     [Documentation]    Keyword to make getter closure from. Relies on suite variable to track private state.
+    [Arguments]    ${delay}=0s    ${fail_on_negative}=False
     BuiltIn.Sleep    ${delay}
     ${next_value} =    Collections.Remove_From_List    ${suite_scenario}    0
-    BuiltIn.Return_From_Keyword_If    not ${fail_on_negative} or ${next_value} >= 0    ${next_value}
+    IF    not ${fail_on_negative} or ${next_value} >= 0
+        RETURN    ${next_value}
+    END
     BuiltIn.Fail    Got negative ${next_value}
 
 Create_Scenario_Getter_Closure
-    [Arguments]    ${value_list_as_scalar}    ${delay}=0s    ${fail_on_negative}=False
     [Documentation]    Store values list to suite variable, return getter closure with given kwargs.
+    [Arguments]    ${value_list_as_scalar}    ${delay}=0s    ${fail_on_negative}=False
     # TODO: Figure out why solution with the list given as varargs does not really work.
     BuiltIn.Set_Suite_Variable    @{suite_scenario}    @{value_list_as_scalar}
     # Sentinel is there to postpone "Expected list-like value, got string." failure when setting @{other_values}.
-    ${getter} =    ScalarClosures.Closure_From_Keyword_And_Arguments    Scenario_Getter_As_Keyword    delay=${delay}    fail_on_negative=${fail_on_negative}
-    [Return]    ${getter}
+    ${getter} =    ScalarClosures.Closure_From_Keyword_And_Arguments
+    ...    Scenario_Getter_As_Keyword
+    ...    delay=${delay}
+    ...    fail_on_negative=${fail_on_negative}
+    RETURN    ${getter}
index 76fdab4cdc95077acee6aed1c85aceb324fb0202..3523bb5c618e43d3aaeb68899b9fb2c8d815b49e 100644 (file)
@@ -1,20 +1,25 @@
 *** Settings ***
-Documentation     For every node, set Karaf log level to ${DEFAULT_KARAF_LOG_LEVEL}.
+Documentation       For every node, set Karaf log level to ${DEFAULT_KARAF_LOG_LEVEL}.
 ...
-...               Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
+...                 Copyright (c) 2016 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,
-...               and is available at http://www.eclipse.org/legal/epl-v10.html
+...                 This program and the accompanying materials are made available under the
+...                 terms of the Eclipse Public License v1.0 which accompanies this distribution,
+...                 and is available at http://www.eclipse.org/legal/epl-v10.html
 ...
 ...
-...               This suite is useful for testing, run it after primary site to kep karaf.log shorter.
-Suite Setup       ClusterManagement.ClusterManagement_Setup
-Default Tags      clustering
-Resource          ${CURDIR}/../../libraries/ClusterManagement.robot
+...                 This suite is useful for testing, run it after primary site to kep karaf.log shorter.
+
+Resource            ${CURDIR}/../../libraries/ClusterManagement.robot
+
+Suite Setup         ClusterManagement.ClusterManagement_Setup
+
+Default Tags        clustering
+
 
 *** Variables ***
-${DEFAULT_KARAF_LOG_LEVEL}    INFO
+${DEFAULT_KARAF_LOG_LEVEL}      INFO
+
 
 *** Test Cases ***
 Set_Levels
index 19858f59c77da82a9134fed772194c6a2a74d6ca..9a32e71f13f98678747ac93902bf597244e65368 100644 (file)
@@ -1,34 +1,48 @@
 *** Settings ***
-Documentation     Test suite to verify unification operation on different models.
-...               Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIG_API to OPERATIONAL_API.
-...               Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
-...               Suite setup also install features required for tested models, clear karaf logs for further synchronization. Tests themselves send configurational
-...               xmls and verify output. Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
-Suite Setup       Setup Environment
-Suite Teardown    Clean Environment
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     Delete Overlay Topology
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           XML
-Variables         ../../../variables/topoprocessing/TopologyRequests.py
-Variables         ../../../variables/topoprocessing/TargetFields.py
-Variables         ../../../variables/Variables.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/SetupUtils.robot
-Resource          ../../../libraries/TopoprocessingKeywords.robot
+Documentation       Test suite to verify unification operation on different models.
+...                 Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIG_API to OPERATIONAL_API.
+...                 Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
+...                 Suite setup also install features required for tested models, clear karaf logs for further synchronization. Tests themselves send configurational
+...                 xmls and verify output. Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
+
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             XML
+Variables           ../../../variables/topoprocessing/TopologyRequests.py
+Variables           ../../../variables/topoprocessing/TargetFields.py
+Variables           ../../../variables/Variables.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/SetupUtils.robot
+Resource            ../../../libraries/TopoprocessingKeywords.robot
+
+Suite Setup         Setup Environment
+Suite Teardown      Clean Environment
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       Delete Overlay Topology
+
 
 *** Test Cases ***
 Unification Node
     [Documentation]    Test unification operation on Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Topology Request    ${UNIFICATION_NT}    ${model}    node    network-topo:1    network-topo:2
+    ${request}    Prepare Unification Topology Request
+    ...    ${UNIFICATION_NT}
+    ...    ${model}
+    ...    node
+    ...    network-topo:1
+    ...    network-topo:2
     ${request}    Insert Target Field    ${request}    0    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
     ${request}    Insert Target Field    ${request}    1    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=8    supporting-node_count=10
-    ...    tp_count=14    tp-ref_count=14
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=8
+    ...    supporting-node_count=10
+    ...    tp_count=14
+    ...    tp-ref_count=14
     Check Aggregated Node in Topology    ${model}    ${resp.content}    2    bgp:5    bgp:10
     Check Aggregated Node in Topology    ${model}    ${resp.content}    1    bgp:9
     Check Aggregated Node in Topology    ${model}    ${resp.content}    1    bgp:8
@@ -41,12 +55,23 @@ Unification Node
 Unification Node Inventory
     [Documentation]    Test unification operation on inventory model
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Unification Topology Request    ${UNIFICATION_NT}    ${model}    node    openflow-topo:1    openflow-topo:2
+    ${request}    Prepare Unification Topology Request
+    ...    ${UNIFICATION_NT}
+    ...    ${model}
+    ...    node
+    ...    openflow-topo:1
+    ...    openflow-topo:2
     ${request}    Insert Target Field    ${request}    0    ${OPENFLOW_NODE_IP_ADDRESS}    0
     ${request}    Insert Target Field    ${request}    1    ${OPENFLOW_NODE_IP_ADDRESS}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=7    supporting-node_count=10
-    ...    tp_count=12    tp-ref_count=12
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=7
+    ...    supporting-node_count=10
+    ...    tp_count=12
+    ...    tp-ref_count=12
     Check Aggregated Node in Topology    ${model}    ${resp.content}    3    of-node:10    of-node:4
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:7    of-node:9
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:8
@@ -58,13 +83,27 @@ Unification Node Inventory
 Unification Scripting Node
     [Documentation]    Test unification operation on Network Topology model using scripting
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Topology Request    ${UNIFICATION_NT}    ${model}    node    network-topo:1    network-topo:2
+    ${request}    Prepare Unification Topology Request
+    ...    ${UNIFICATION_NT}
+    ...    ${model}
+    ...    node
+    ...    network-topo:1
+    ...    network-topo:2
     ${request}    Insert Target Field    ${request}    0    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
     ${request}    Insert Target Field    ${request}    1    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
-    ${request}    Insert Scripting into Request    ${request}    javascript    if (originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.1") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.3") > -1 || originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.3") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.1") > -1) {aggregable.setResult(true);} else { aggregable.setResult(false);}
+    ${request}    Insert Scripting into Request
+    ...    ${request}
+    ...    javascript
+    ...    if (originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.1") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.3") > -1 || originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.3") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.1") > -1) {aggregable.setResult(true);} else { aggregable.setResult(false);}
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=9    supporting-node_count=10
-    ...    tp_count=14    tp-ref_count=14
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=9
+    ...    supporting-node_count=10
+    ...    tp_count=14
+    ...    tp-ref_count=14
     Check Aggregated Node in Topology    ${model}    ${resp.content}    1    bgp:10
     Check Aggregated Node in Topology    ${model}    ${resp.content}    1    bgp:9
     Check Aggregated Node in Topology    ${model}    ${resp.content}    1    bgp:8
@@ -78,13 +117,27 @@ Unification Scripting Node
 Unification Scripting Node Inventory
     [Documentation]    Test unification operation on inventory model using scripting
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Unification Topology Request    ${UNIFICATION_NT}    ${model}    node    openflow-topo:1    openflow-topo:2
+    ${request}    Prepare Unification Topology Request
+    ...    ${UNIFICATION_NT}
+    ...    ${model}
+    ...    node
+    ...    openflow-topo:1
+    ...    openflow-topo:2
     ${request}    Insert Target Field    ${request}    0    ${OPENFLOW_NODE_IP_ADDRESS}    0
     ${request}    Insert Target Field    ${request}    1    ${OPENFLOW_NODE_IP_ADDRESS}    0
-    ${request}    Insert Scripting into Request    ${request}    javascript    if (originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.2") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.4") > -1 || originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.4") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.2") > -1) {aggregable.setResult(true);} else { aggregable.setResult(false);}
+    ${request}    Insert Scripting into Request
+    ...    ${request}
+    ...    javascript
+    ...    if (originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.2") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.4") > -1 || originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.4") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.2") > -1) {aggregable.setResult(true);} else { aggregable.setResult(false);}
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=9    supporting-node_count=10
-    ...    tp_count=12    tp-ref_count=12
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=9
+    ...    supporting-node_count=10
+    ...    tp_count=12
+    ...    tp-ref_count=12
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:10
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:9
     Check Aggregated Node in Topology    ${model}    ${resp.content}    3    of-node:2    of-node:8
@@ -98,11 +151,21 @@ Unification Scripting Node Inventory
 Unification Node Inside
     [Documentation]    Test of unification type of aggregation inside on nodes on Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Inside Topology Request    ${UNIFICATION_NT_AGGREGATE_INSIDE}    ${model}    node    network-topo:1
+    ${request}    Prepare Unification Inside Topology Request
+    ...    ${UNIFICATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    network-topo:1
     ${request}    Insert Target Field    ${request}    0    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=5
-    ...    tp_count=8    tp-ref_count=8
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=5
+    ...    tp_count=8
+    ...    tp-ref_count=8
     Check Aggregated Node in Topology    ${model}    ${resp.content}    1    bgp:5
     Check Aggregated Node in Topology    ${model}    ${resp.content}    4    bgp:3    bgp:4
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:2
@@ -111,10 +174,19 @@ Unification Node Inside
 Unification Node Inside Inventory
     [Documentation]    Test of unification type of aggregation inside on nodes on Inventory model
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Unification Inside Topology Request    ${UNIFICATION_NT_AGGREGATE_INSIDE}    ${model}    node    openflow-topo:2
+    ${request}    Prepare Unification Inside Topology Request
+    ...    ${UNIFICATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    openflow-topo:2
     ${request}    Insert Target Field    ${request}    0    ${OPENFLOW_NODE_IP_ADDRESS}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=5
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=5
     ...    tp_count=0
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:10
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:7    of-node:9
@@ -124,38 +196,143 @@ Unification Node Inside Inventory
 Unification Termination Point Inside
     [Documentation]    Test aggregate inside operation on termination points
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Inside Topology Request    ${UNIFICATION_NT_AGGREGATE_INSIDE}    ${model}    termination-point    network-topo:1
+    ${request}    Prepare Unification Inside Topology Request
+    ...    ${UNIFICATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    termination-point
+    ...    network-topo:1
     ${request}    Insert Target Field    ${request}    0    ${OVSDB_OFPORT}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    tp_count=6    tp-ref_count=8
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    tp_count=6
+    ...    tp-ref_count=8
     ${topology_id}    Set Variable    network-topo:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:1    tp:1:1    tp:1:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:1
+    ...    tp:1:1
+    ...    tp:1:1
     ...    tp:1:2
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:1    tp:1:3    tp:1:3
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:3    tp:3:1    tp:3:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:3    tp:3:2    tp:3:2
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:4    tp:4:1    tp:4:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:1
+    ...    tp:1:3
+    ...    tp:1:3
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:3
+    ...    tp:3:1
+    ...    tp:3:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:3
+    ...    tp:3:2
+    ...    tp:3:2
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:4
+    ...    tp:4:1
+    ...    tp:4:1
     ...    tp:4:2
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:5    tp:5:1    tp:5:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:5
+    ...    tp:5:1
+    ...    tp:5:1
 
 Unification Termination Point Inside Inventory
     [Documentation]    Test aggregate inside operation on termination points
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Unification Inside Topology Request    ${UNIFICATION_NT_AGGREGATE_INSIDE}    ${model}    termination-point    openflow-topo:1
+    ${request}    Prepare Unification Inside Topology Request
+    ...    ${UNIFICATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    termination-point
+    ...    openflow-topo:1
     ${request}    Insert Target Field    ${request}    0    ${OPENFLOW_NODE_CONNECTOR_PORT_NUMBER}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    tp_count=8    tp-ref_count=12
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    tp_count=8
+    ...    tp-ref_count=12
     ${topology_id}    Set Variable    openflow-topo:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    of-node:5    tp:5:1    tp:5:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    of-node:4    tp:4:1    tp:4:1
-    ...    tp:4:2    tp:4:3
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    of-node:3    tp:3:1    tp:3:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    of-node:5
+    ...    tp:5:1
+    ...    tp:5:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    of-node:4
+    ...    tp:4:1
+    ...    tp:4:1
+    ...    tp:4:2
+    ...    tp:4:3
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    of-node:3
+    ...    tp:3:1
+    ...    tp:3:1
     ...    tp:3:2
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    of-node:3    tp:3:3    tp:3:3
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    of-node:2    tp:2:1    tp:2:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    of-node:2    tp:2:2    tp:2:2
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    of-node:2    tp:2:3    tp:2:3
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    of-node:1    tp:1:1    tp:1:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    of-node:3
+    ...    tp:3:3
+    ...    tp:3:3
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    of-node:2
+    ...    tp:2:1
+    ...    tp:2:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    of-node:2
+    ...    tp:2:2
+    ...    tp:2:2
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    of-node:2
+    ...    tp:2:3
+    ...    tp:2:3
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    of-node:1
+    ...    tp:1:1
+    ...    tp:1:1
     ...    tp:1:2
index 2b9aa1bc92c707e6a721b98908526d159bf3afb3..52337052f7246405cb7862e625ae9fec99ae04ab 100644 (file)
 *** Settings ***
-Documentation     Test suite to verify fitration operation on different models.
-...               Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
-...               Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
-...               Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
-...               Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
-Suite Setup       Setup Environment
-Suite Teardown    Clean Environment
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     Delete Overlay Topology
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           XML
-Variables         ../../../variables/topoprocessing/TopologyRequests.py
-Variables         ../../../variables/topoprocessing/TargetFields.py
-Variables         ../../../variables/Variables.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/TopoprocessingKeywords.robot
+Documentation       Test suite to verify fitration operation on different models.
+...                 Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
+...                 Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
+...                 Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
+...                 Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
+
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             XML
+Variables           ../../../variables/topoprocessing/TopologyRequests.py
+Variables           ../../../variables/topoprocessing/TargetFields.py
+Variables           ../../../variables/Variables.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/TopoprocessingKeywords.robot
+
+Suite Setup         Setup Environment
+Suite Teardown      Clean Environment
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       Delete Overlay Topology
+
 
 *** Test Cases ***
 Filtration IPV4 Network Topology Model
     [Documentation]    Test of ipv4 type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    node    network-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    node
+    ...    network-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_IPV4}    ${ISIS_NODE_TE_ROUTER_ID_IPV4}
     ${request}    Set IPV4 Filter    ${request}    192.168.1.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=2
-    ...    node-ref_count=2    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=2
+    ...    node-ref_count=2
+    ...    tp_count=3
+    ...    tp-ref_count=3
     Check Filtered Nodes in Topology    ${resp.content}    3    bgp:1    bgp:2
 
 Filtration IPV4 Inventory Model
     [Documentation]    Test of ipv4 type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    node    openflow-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    node
+    ...    openflow-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_IPV4}    ${OPENFLOW_NODE_IP_ADDRESS}
     ${request}    Set IPV4 Filter    ${request}    192.168.1.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=8    tp-ref_count=8
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=8
+    ...    tp-ref_count=8
     Check Filtered Nodes in Topology    ${resp.content}    8    of-node:1    of-node:2    of-node:3
 
 Filtration Range Number Network Topology Model
     [Documentation]    Test of range number type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    node    network-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    node
+    ...    network-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OVSDB_OVS_VERSION}
     ${request}    Set Range Number Filter    ${request}    20    25
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=5    tp-ref_count=5
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=5
+    ...    tp-ref_count=5
     Check Filtered Nodes in Topology    ${resp.content}    5    bgp:7    bgp:8    bgp:9    bgp:10
 
 Filtration Range Number Inventory Model
     [Documentation]    Test of range number type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    node    openflow-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    node
+    ...    openflow-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OPENFLOW_NODE_SERIAL_NUMBER}
     ${request}    Set Range Number Filter    ${request}    20    25
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     Check Filtered Nodes in Topology    ${resp.content}    0    of-node:8    of-node:9    of-node:10
 
 Filtration Specific String Network Topology Model
     [Documentation]    Test of specific string type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    node    network-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    node
+    ...    network-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_STRING}    ${OVSDB_OVS_VERSION}
     ${request}    Set Specific String Filter    ${request}    25
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=2
-    ...    node-ref_count=2    tp_count=2    tp-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=2
+    ...    node-ref_count=2
+    ...    tp_count=2
+    ...    tp-ref_count=2
     Check Filtered Nodes in Topology    ${resp.content}    2    bgp:9    bgp:10
 
 Filtration Specific String Inventory Model
     [Documentation]    Test of specific string type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    node    openflow-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    node
+    ...    openflow-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_STRING}    ${OPENFLOW_NODE_SERIAL_NUMBER}
     ${request}    Set Specific String Filter    ${request}    21
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=2
-    ...    node-ref_count=2    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=2
+    ...    node-ref_count=2
+    ...    tp_count=0
+    ...    tp-ref_count=0
     Check Filtered Nodes in Topology    ${resp.content}    0    of-node:8    of-node:9
 
 Filtration Range String Network Topology Model
     [Documentation]    Test of range string type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    node    network-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    node
+    ...    network-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_STRING}    ${OVSDB_OVS_VERSION}
     ${request}    Set Range String Filter    ${request}    20    25
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=5    tp-ref_count=5
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=5
+    ...    tp-ref_count=5
     Check Filtered Nodes in Topology    ${resp.content}    5    bgp:7    bgp:8    bgp:9    bgp:10
 
 Filtration Range String Inventory Model
     [Documentation]    Test of range string type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    node    openflow-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    node
+    ...    openflow-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_STRING}    ${OPENFLOW_NODE_SERIAL_NUMBER}
     ${request}    Set Range String Filter    ${request}    20    25
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     Check Filtered Nodes in Topology    ${resp.content}    0    of-node:8    of-node:9    of-node:10
 
 Filtration IPV6 Network Topology Model
     [Documentation]    Test of ipv6 type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    node    network-topo:3
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    node
+    ...    network-topo:3
     ${request}    Insert Filter    ${request}    ${FILTER_IPV6}    ${ISIS_NODE_TE_ROUTER_ID_IPV6}
     ${request}    Set IPV6 Filter    ${request}    fe80:0:0:0:0:0:c0a8:101/120
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=2
-    ...    node-ref_count=2    tp_count=1    tp-ref_count=1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=2
+    ...    node-ref_count=2
+    ...    tp_count=1
+    ...    tp-ref_count=1
     Check Filtered Nodes in Topology    ${resp.content}    1    bgp:11    bgp:12
 
 Filtration IPV6 Inventory Model
     [Documentation]    Test of ipv6 type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    node    openflow-topo:3
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    node
+    ...    openflow-topo:3
     ${request}    Insert Filter    ${request}    ${FILTER_IPV6}    ${OPENFLOW_NODE_IP_ADDRESS}
     ${request}    Set IPV6 Filter    ${request}    fe80:0:0:0:0:0:c0a8:201/120
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     Check Filtered Nodes in Topology    ${resp.content}    0    of-node:12    of-node:14    of-node:15
 
 Filtration Script Network Topology Model
     [Documentation]    Test of script type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    node    network-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    node
+    ...    network-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_SCRIPT}    ${ISIS_NODE_TE_ROUTER_ID_IPV4}
-    ${script}    Set Variable    if (node.getValue().indexOf("192.168.1") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
+    ${script}    Set Variable
+    ...    if (node.getValue().indexOf("192.168.1") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
     ${request}    Set Script Filter    ${request}    javascript    ${script}
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=5    tp-ref_count=5
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=5
+    ...    tp-ref_count=5
     Check Filtered Nodes in Topology    ${resp.content}    5    bgp:3    bgp:4    bgp:5
 
 Filtration Script Inventory Model
     [Documentation]    Test of script type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    node    openflow-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    node
+    ...    openflow-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_SCRIPT}    ${OPENFLOW_NODE_IP_ADDRESS}
-    ${script}    Set Variable    if (node.getValue().indexOf("192.168.2") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
+    ${script}    Set Variable
+    ...    if (node.getValue().indexOf("192.168.2") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
     ${request}    Set Script Filter    ${request}    javascript    ${script}
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=8    tp-ref_count=8
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=8
+    ...    tp-ref_count=8
     Check Filtered Nodes in Topology    ${resp.content}    8    of-node:1    of-node:2    of-node:3
index 6ce8e0f1520b312798610061b54916088e24dacd..0e4384dbaf85f7311a14ce828a569cdbbf9b7c6a 100644 (file)
@@ -1,32 +1,46 @@
 *** Settings ***
-Documentation     Test suite to verify fitration operation on different models.
-...               Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
-...               Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
-...               Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
-...               Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
-Suite Setup       Setup Environment
-Suite Teardown    Clean Environment
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     Delete Overlay Topology
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           XML
-Variables         ../../../variables/topoprocessing/TopologyRequests.py
-Variables         ../../../variables/topoprocessing/TargetFields.py
-Variables         ../../../variables/Variables.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/TopoprocessingKeywords.robot
+Documentation       Test suite to verify fitration operation on different models.
+...                 Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
+...                 Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
+...                 Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
+...                 Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
+
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             XML
+Variables           ../../../variables/topoprocessing/TopologyRequests.py
+Variables           ../../../variables/topoprocessing/TargetFields.py
+Variables           ../../../variables/Variables.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/TopoprocessingKeywords.robot
+
+Suite Setup         Setup Environment
+Suite Teardown      Clean Environment
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       Delete Overlay Topology
+
 
 *** Test Cases ***
 Filtration Range Number Network Topology Model
     [Documentation]    Test of range number type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    termination-point
+    ...    network-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OVSDB_OFPORT}
     ${request}    Set Range Number Filter    ${request}    1115    1119
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
     Check Filtered Termination Points in Node    ${resp.content}    bgp:6    tp:6:1
     Check Filtered Termination Points in Node    ${resp.content}    bgp:7    tp:7:1    tp:7:2
     Check Filtered Termination Points in Node    ${resp.content}    bgp:8
@@ -35,12 +49,23 @@ Filtration Range Number Network Topology Model
 
 Filtration Range Number Inventory Model
     [Documentation]    Test of range number type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    termination-point
+    ...    openflow-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OPENFLOW_NODE_CONNECTOR_PORT_NUMBER}
     ${request}    Set Range Number Filter    ${request}    2    4
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=5    tp-ref_count=5
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=5
+    ...    tp-ref_count=5
     Check Filtered Termination Points in Node    ${resp.content}    of-node:1
     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:3    tp:2:2
     Check Filtered Termination Points in Node    ${resp.content}    of-node:3    tp:3:1    tp:3:2
@@ -49,12 +74,23 @@ Filtration Range Number Inventory Model
 
 Filtration Specific Number Network Topology Model
     [Documentation]    Test of specific number type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    termination-point
+    ...    network-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_NUMBER}    ${OVSDB_OFPORT}
     ${request}    Set Specific Number Filter    ${request}    1119
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=1    tp-ref_count=1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=1
+    ...    tp-ref_count=1
     ${node}    Get Element    ${resp.content}    xpath=.//node/supporting-node[node-ref='bgp:7']/..
     ${node}    Element to String    ${node}
     Should Contain X Times    ${node}    <termination-point>    1
@@ -66,12 +102,23 @@ Filtration Specific Number Network Topology Model
 
 Filtration Specific Number Inventory Model
     [Documentation]    Test of specific number type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    termination-point
+    ...    openflow-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_NUMBER}    ${OPENFLOW_NODE_CONNECTOR_MAXIMUM_SPEED}
     ${request}    Set Specific Number Filter    ${request}    2
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
     Check Filtered Termination Points in Node    ${resp.content}    of-node:1
     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:2
     Check Filtered Termination Points in Node    ${resp.content}    of-node:3    tp:3:1    tp:3:2
@@ -80,12 +127,23 @@ Filtration Specific Number Inventory Model
 
 Filtration Specific String Network Topology Model
     [Documentation]    Test of specific string type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    termination-point
+    ...    network-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_STRING}    ${OVSDB_TP_NAME}
     ${request}    Set Specific String Filter    ${request}    portC
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=1    tp-ref_count=1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=1
+    ...    tp-ref_count=1
     Check Filtered Termination Points in Node    ${resp.content}    bgp:6
     Check Filtered Termination Points in Node    ${resp.content}    bgp:7    tp:7:2
     Check Filtered Termination Points in Node    ${resp.content}    bgp:8
@@ -94,12 +152,23 @@ Filtration Specific String Network Topology Model
 
 Filtration Specific String Inventory Model
     [Documentation]    Test of specific string type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    termination-point
+    ...    openflow-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_STRING}    ${OPENFLOW_NODE_CONNECTOR_NAME}
     ${request}    Set Specific String Filter    ${request}    portB
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=2    tp-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=2
+    ...    tp-ref_count=2
     Check Filtered Termination Points in Node    ${resp.content}    of-node:1
     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:1
     Check Filtered Termination Points in Node    ${resp.content}    of-node:3
@@ -108,12 +177,23 @@ Filtration Specific String Inventory Model
 
 Filtration Range String Network Topology Model
     [Documentation]    Test of range string type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    termination-point
+    ...    network-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_STRING}    ${OVSDB_TP_NAME}
     ${request}    Set Range String Filter    ${request}    portA    portC
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
     Check Filtered Termination Points in Node    ${resp.content}    bgp:6    tp:6:1
     Check Filtered Termination Points in Node    ${resp.content}    bgp:7    tp:7:2
     Check Filtered Termination Points in Node    ${resp.content}    bgp:8
@@ -122,12 +202,23 @@ Filtration Range String Network Topology Model
 
 Filtration Range String Inventory Model
     [Documentation]    Test of range string type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    termination-point
+    ...    openflow-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_STRING}    ${OPENFLOW_NODE_CONNECTOR_NAME}
     ${request}    Set Range String Filter    ${request}    portA    portB
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
     Check Filtered Termination Points in Node    ${resp.content}    of-node:1
     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:1    tp:2:3
     Check Filtered Termination Points in Node    ${resp.content}    of-node:3
@@ -136,13 +227,25 @@ Filtration Range String Inventory Model
 
 Filtration Script Network Topology Model
     [Documentation]    Test of script type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    termination-point
+    ...    network-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_SCRIPT}    ${OVSDB_OFPORT}
-    ${script}    Set Variable    if (node.getValue() > 1117 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
+    ${script}    Set Variable
+    ...    if (node.getValue() > 1117 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
     ${request}    Set Script Filter    ${request}    javascript    ${script}
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
     Check Filtered Termination Points in Node    ${resp.content}    bgp:1
     Check Filtered Termination Points in Node    ${resp.content}    bgp:2
     Check Filtered Termination Points in Node    ${resp.content}    bgp:3
@@ -151,13 +254,25 @@ Filtration Script Network Topology Model
 
 Filtration Script Inventory Model
     [Documentation]    Test of script type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    termination-point
+    ...    openflow-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_SCRIPT}    ${OPENFLOW_NODE_CONNECTOR_NAME}
-    ${script}    Set Variable    if (node.getValue().indexOf("portB") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
+    ${script}    Set Variable
+    ...    if (node.getValue().indexOf("portB") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
     ${request}    Set Script Filter    ${request}    javascript    ${script}
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
     Check Filtered Termination Points in Node    ${resp.content}    of-node:1    tp:1:1
     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:2    tp:2:3
     Check Filtered Termination Points in Node    ${resp.content}    of-node:3
index acf1f995bea76baebbecfb9874e47422d25e5afe..9717bcc19fa930b01d6f9f349e0f944dc755fe50 100644 (file)
 *** Settings ***
-Documentation     Test suite to verify fitration operation on different models.
-...               Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
-...               Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
-...               Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
-...               Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
-Suite Setup       Setup Environment
-Suite Teardown    Clean Environment
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     Delete Overlay Topology
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           XML
-Variables         ../../../variables/topoprocessing/TopologyRequests.py
-Variables         ../../../variables/topoprocessing/TargetFields.py
-Variables         ../../../variables/Variables.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/TopoprocessingKeywords.robot
+Documentation       Test suite to verify fitration operation on different models.
+...                 Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
+...                 Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
+...                 Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
+...                 Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
+
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             XML
+Variables           ../../../variables/topoprocessing/TopologyRequests.py
+Variables           ../../../variables/topoprocessing/TargetFields.py
+Variables           ../../../variables/Variables.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/TopoprocessingKeywords.robot
+
+Suite Setup         Setup Environment
+Suite Teardown      Clean Environment
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       Delete Overlay Topology
+
 
 *** Test Cases ***
 Filtration Range Number Network Topology Model
     [Documentation]    Test of range number type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    link    network-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    link
+    ...    network-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${IGP_LINK_METRIC}
     ${request}    Set Range Number Filter    ${request}    11    13
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=3    link-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=3
+    ...    link-ref_count=3
     Check Filtered Links In Topology    ${resp.content}    link:1:2-1    link:1:3    link:1:4
 
 Filtration Range Number Inventory Model
     [Documentation]    Test of range number type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    link    openflow-topo:3
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    link
+    ...    openflow-topo:3
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${IGP_LINK_METRIC}
     ${request}    Set Range Number Filter    ${request}    14    15
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=2    link-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=2
+    ...    link-ref_count=2
     Check Filtered Links In Topology    ${resp.content}    link:14:12    link:15:13
 
 Filtration Specific String Network Topology Model
     [Documentation]    Test of specific string type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    link    network-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    link
+    ...    network-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_STRING}    ${IGP_LINK_NAME}
     ${request}    Set Specific String Filter    ${request}    linkA
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=2    link-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=2
+    ...    link-ref_count=2
     Check Filtered Links In Topology    ${resp.content}    link:1:4    link:1:2-1
 
 Filtration Specific String Inventory Model
     [Documentation]    Test of specific string type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    link    openflow-topo:3
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    link
+    ...    openflow-topo:3
     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_STRING}    ${IGP_LINK_NAME}
     ${request}    Set Specific String Filter    ${request}    linkD
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=1    link-ref_count=1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=1
+    ...    link-ref_count=1
     Check Filtered Links In Topology    ${resp.content}    link:15:13
 
 Filtration Range String Network Topology Model
     [Documentation]    Test of range string type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    link    network-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    link
+    ...    network-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_STRING}    ${IGP_LINK_NAME}
     ${request}    Set Range String Filter    ${request}    linkA    linkB
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=3    link-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=3
+    ...    link-ref_count=3
     Check Filtered Links In Topology    ${resp.content}    link:1:2-1    link:1:3    link:1:4
 
 Filtration Range String Inventory Model
     [Documentation]    Test of range string type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    link    openflow-topo:3
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    link
+    ...    openflow-topo:3
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_STRING}    ${IGP_LINK_NAME}
     ${request}    Set Range String Filter    ${request}    linkC    linkD
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=2    link-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=2
+    ...    link-ref_count=2
     Check Filtered Links In Topology    ${resp.content}    link:14:12    link:15:13
 
 Filtration Script Network Topology Model
     [Documentation]    Test of script type of filtration operation on Network Topology model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    link    network-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    link
+    ...    network-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_SCRIPT}    ${IGP_LINK_NAME}
-    ${script}    Set Variable    if (node.getValue().indexOf("linkA") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
+    ${script}    Set Variable
+    ...    if (node.getValue().indexOf("linkA") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
     ${request}    Set Script Filter    ${request}    javascript    ${script}
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=2    link-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=2
+    ...    link-ref_count=2
     Check Filtered Links In Topology    ${resp.content}    link:1:2-2    link:1:3
 
 Filtration Script Inventory Model
     [Documentation]    Test of script type of filtration operation on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    link    openflow-topo:3
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    link
+    ...    openflow-topo:3
     ${request}    Insert Filter    ${request}    ${FILTER_SCRIPT}    ${IGP_LINK_NAME}
-    ${script}    Set Variable    if (node.getValue().indexOf("linkA") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
+    ${script}    Set Variable
+    ...    if (node.getValue().indexOf("linkA") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
     ${request}    Set Script Filter    ${request}    javascript    ${script}
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=3    link-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=3
+    ...    link-ref_count=3
     Check Filtered Links In Topology    ${resp.content}    link:11:12    link:14:12    link:15:13
index dab95ceb47e30e1f4fd7e14f1de0cba6ff95354d..5623d11b2e1c50d7884a7e856d8cab9677028ba2 100644 (file)
 *** Settings ***
-Documentation     Test suite to verify fitration operation on different models.
-...               Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
-...               Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
-...               Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
-...               Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
-Suite Setup       Setup Environment
-Suite Teardown    Clean Environment
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     Delete Overlay Topology
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           XML
-Variables         ../../../variables/topoprocessing/TopologyRequests.py
-Variables         ../../../variables/topoprocessing/TargetFields.py
-Variables         ../../../variables/Variables.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/TopoprocessingKeywords.robot
+Documentation       Test suite to verify fitration operation on different models.
+...                 Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
+...                 Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
+...                 Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
+...                 Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
+
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             XML
+Variables           ../../../variables/topoprocessing/TopologyRequests.py
+Variables           ../../../variables/topoprocessing/TargetFields.py
+Variables           ../../../variables/Variables.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/TopoprocessingKeywords.robot
+
+Suite Setup         Setup Environment
+Suite Teardown      Clean Environment
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       Delete Overlay Topology
+
 
 *** Test Cases ***
 Unification Filtration Node Inside Network Topology model
     [Documentation]    Test unification filtration inside operation on Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Filtration Inside Topology Request    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}    ${model}    node    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    network-topo:4
+    ${request}    Prepare Unification Filtration Inside Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    ${ISIS_NODE_TE_ROUTER_ID_IPV4}
+    ...    network-topo:4
     ${request}    Insert Filter With ID    ${request}    ${FILTER_IPV4}    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Set IPV4 Filter    ${request}    192.168.2.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:18    bgp:20
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:19
 
 Unification Filtration Node Inside Inventory model
     [Documentation]    Test unification filtration inside operation on Inventory model
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Unification Filtration Inside Topology Request    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}    ${model}    node    ${OPENFLOW_NODE_IP_ADDRESS}    openflow-topo:4
+    ${request}    Prepare Unification Filtration Inside Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    ${OPENFLOW_NODE_IP_ADDRESS}
+    ...    openflow-topo:4
     ${request}    Insert Filter With ID    ${request}    ${FILTER_IPV4}    ${OPENFLOW_NODE_IP_ADDRESS}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Set IPV4 Filter    ${request}    192.168.2.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=0
+    ...    tp-ref_count=0
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:18
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:17    of-node:19    of-node:20
 
 Unification Filtration Termination Point Inside Network Topology model
     [Documentation]    Test unification filtration inside operation on Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Filtration Inside Topology Request    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}    ${model}    termination-point    ${OVSDB_TP_NAME}    network-topo:5
+    ${request}    Prepare Unification Filtration Inside Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    termination-point
+    ...    ${OVSDB_TP_NAME}
+    ...    network-topo:5
     ${request}    Insert Filter With ID    ${request}    ${FILTER_SPECIFIC_STRING}    ${OVSDB_TP_NAME}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Set Specific String Filter    ${request}    portA
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=6
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=6
     ${topology_id}    Set Variable    network-topo:5
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:21    tp:21:1    tp:21:1
-    ...    tp:21:2    tp:21:3
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:24    tp:24:1    tp:24:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:21
+    ...    tp:21:1
+    ...    tp:21:1
+    ...    tp:21:2
+    ...    tp:21:3
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:24
+    ...    tp:24:1
+    ...    tp:24:1
     ...    tp:24:2
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:22    tp:22:1    tp:22:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:22
+    ...    tp:22:1
+    ...    tp:22:1
 
 Unification Filtration Node Network Topology model
     [Documentation]    Test unification filtration operation on Network Topology model
     ${model}    Set Variable    network-topology-model
     ${target_field}    Set Variable    ${ISIS_NODE_TE_ROUTER_ID_IPV4}
-    ${request}    Prepare Unification Filtration Topology Request    ${UNIFICATION_FILTRATION_NT}    ${model}    node    ${target_field}    network-topo:4
-    ...    ${target_field}    network-topo:1
+    ${request}    Prepare Unification Filtration Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT}
+    ...    ${model}
+    ...    node
+    ...    ${target_field}
+    ...    network-topo:4
+    ...    ${target_field}
+    ...    network-topo:1
     ${request}    Insert Filter With ID    ${request}    ${FILTER_IPV4}    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Insert Apply Filters    ${request}    2    1
     ${request}    Set IPV4 Filter    ${request}    192.168.1.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=3
+    ...    tp-ref_count=3
     Check Aggregated Node in Topology    ${model}    ${resp.content}    3    bgp:1    bgp:16
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:2    bgp:17
 
 Unification Filtration Node Inventory model
     [Documentation]    Test unification filtration operation on Inventory model
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Unification Filtration Topology Request    ${UNIFICATION_FILTRATION_NT}    ${model}    node    ${OPENFLOW_NODE_IP_ADDRESS}    openflow-topo:4
-    ...    ${OPENFLOW_NODE_IP_ADDRESS}    openflow-topo:6
+    ${request}    Prepare Unification Filtration Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT}
+    ...    ${model}
+    ...    node
+    ...    ${OPENFLOW_NODE_IP_ADDRESS}
+    ...    openflow-topo:4
+    ...    ${OPENFLOW_NODE_IP_ADDRESS}
+    ...    openflow-topo:6
     ${request}    Insert Filter With ID    ${request}    ${FILTER_IPV4}    ${OPENFLOW_NODE_IP_ADDRESS}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Insert Apply Filters    ${request}    2    1
     ${request}    Set IPV4 Filter    ${request}    192.168.1.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:28
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:16    of-node:26
index fb887e8cc512936f5d60e25a4e46469cc00879c3..10d5cbd2fd010690aaf2a0bf7a8a02c82eb85160 100644 (file)
@@ -1,42 +1,89 @@
 *** Settings ***
-Documentation     Test suite to verify link computation operation on different models.
-...               Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
-...               Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
-...               Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
-...               Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
-Suite Setup       Setup Environment
-Suite Teardown    Clean Environment
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     Delete Overlay Topology
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           XML
-Variables         ../../../variables/topoprocessing/TopologyRequests.py
-Variables         ../../../variables/topoprocessing/TargetFields.py
-Variables         ../../../variables/Variables.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/TopoprocessingKeywords.robot
+Documentation       Test suite to verify link computation operation on different models.
+...                 Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
+...                 Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
+...                 Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
+...                 Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
+
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             XML
+Variables           ../../../variables/topoprocessing/TopologyRequests.py
+Variables           ../../../variables/topoprocessing/TargetFields.py
+Variables           ../../../variables/Variables.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/TopoprocessingKeywords.robot
+
+Suite Setup         Setup Environment
+Suite Teardown      Clean Environment
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       Delete Overlay Topology
+
 
 *** Test Cases ***
 Link Computation Aggregation Inside
     [Documentation]    Test of link computation with unification inside on Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Inside Topology Request    ${UNIFICATION_NT_AGGREGATE_INSIDE}    ${model}    node    network-topo:6
+    ${request}    Prepare Unification Inside Topology Request
+    ...    ${UNIFICATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    network-topo:6
     ${request}    Insert Target Field    ${request}    0    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
-    ${request}    Insert Link Computation Inside    ${request}    ${LINK_COMPUTATION_INSIDE}    n:network-topology-model    network-topo:6
+    ${request}    Insert Link Computation Inside
+    ...    ${request}
+    ...    ${LINK_COMPUTATION_INSIDE}
+    ...    n:network-topology-model
+    ...    network-topo:6
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=5
-    ...    node-ref_count=5    link_count=4    link-ref_count=4
-    ${overlay_node_id_28_29}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:28    bgp:29
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    link_count=4
+    ...    link-ref_count=4
+    ${overlay_node_id_28_29}    Check Aggregated Node in Topology
+    ...    ${model}
+    ...    ${resp.content}
+    ...    0
+    ...    bgp:28
+    ...    bgp:29
     ${overlay_node_id_26}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:26
     ${overlay_node_id_30}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:30
     ${overlay_node_id_27}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:27
     ${topology_id}    Set Variable    network-topo:6
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topology_id}    link:26:28    ${overlay_node_id_26}    ${overlay_node_id_28_29}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topology_id}    link:28:29    ${overlay_node_id_28_29}    ${overlay_node_id_28_29}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topology_id}    link:29:30-1    ${overlay_node_id_28_29}    ${overlay_node_id_30}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topology_id}    link:29:30-2    ${overlay_node_id_28_29}    ${overlay_node_id_30}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    link:26:28
+    ...    ${overlay_node_id_26}
+    ...    ${overlay_node_id_28_29}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    link:28:29
+    ...    ${overlay_node_id_28_29}
+    ...    ${overlay_node_id_28_29}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    link:29:30-1
+    ...    ${overlay_node_id_28_29}
+    ...    ${overlay_node_id_30}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    link:29:30-2
+    ...    ${overlay_node_id_28_29}
+    ...    ${overlay_node_id_30}
 
 Link Computation Filtration
     [Documentation]    Test of link computation with filtration on Network Topology model
@@ -44,30 +91,77 @@ Link Computation Filtration
     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    ${model}    node    network-topo:6
     ${request}    Insert Filter    ${request}    ${FILTER_IPV4}    ${ISIS_NODE_TE_ROUTER_ID_IPV4}
     ${request}    Set IPV4 Filter    ${request}    192.168.2.1/32
-    ${request}    Insert Link Computation Inside    ${request}    ${LINK_COMPUTATION_INSIDE}    n:network-topology-model    network-topo:6
+    ${request}    Insert Link Computation Inside
+    ...    ${request}
+    ...    ${LINK_COMPUTATION_INSIDE}
+    ...    n:network-topology-model
+    ...    network-topo:6
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=2
-    ...    node-ref_count=2    link_count=1    link-ref_count=1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=2
+    ...    node-ref_count=2
+    ...    link_count=1
+    ...    link-ref_count=1
     ${overlay_node_id_28}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:28
     ${overlay_node_id_29}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:29
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    network-topo:6    link:28:29    ${overlay_node_id_28}    ${overlay_node_id_29}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    network-topo:6
+    ...    link:28:29
+    ...    ${overlay_node_id_28}
+    ...    ${overlay_node_id_29}
 
 Link Computation Aggregation Filtration
     [Documentation]    Test of link computation with aggregation filtration on Network Topology model
     ${model}    Set Variable    network-topology-model
     ${target_field}    Set Variable    ${ISIS_NODE_TE_ROUTER_ID_IPV4}
-    ${request}    Prepare Unification Filtration Topology Request    ${UNIFICATION_FILTRATION_NT}    ${model}    node    ${target_field}    network-topo:6
-    ...    ${target_field}    network-topo:1
+    ${request}    Prepare Unification Filtration Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT}
+    ...    ${model}
+    ...    node
+    ...    ${target_field}
+    ...    network-topo:6
+    ...    ${target_field}
+    ...    network-topo:1
     ${request}    Insert Filter With ID    ${request}    ${FILTER_IPV4}    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Insert Apply Filters    ${request}    2    1
     ${request}    Set IPV4 Filter    ${request}    192.168.1.1/24
-    ${request}    Insert Link Computation    ${request}    ${LINK_COMPUTATION}    n:network-topology-model    network-topo:6    network-topo:1
+    ${request}    Insert Link Computation
+    ...    ${request}
+    ...    ${LINK_COMPUTATION}
+    ...    n:network-topology-model
+    ...    network-topo:6
+    ...    network-topo:1
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=4
-    ...    node-ref_count=4    link_count=2    link-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    link_count=2
+    ...    link-ref_count=2
     ${overlay_node_id_1_26}    Check Aggregated Node in Topology    ${model}    ${resp.content}    3    bgp:26    bgp:1
     ${overlay_node_id_2_27}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:27    bgp:2
     ${topology_id}    Set Variable    network-topo:1
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topology_id}    link:1:2-1    ${overlay_node_id_1_26}    ${overlay_node_id_2_27}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topology_id}    link:1:2-2    ${overlay_node_id_1_26}    ${overlay_node_id_2_27}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    link:1:2-1
+    ...    ${overlay_node_id_1_26}
+    ...    ${overlay_node_id_2_27}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    link:1:2-2
+    ...    ${overlay_node_id_1_26}
+    ...    ${overlay_node_id_2_27}
index 83b4633618a0c99c26c14658d6d5955066e9a1d0..609c44743ae8801fbfbd690406284a240531d759 100644 (file)
@@ -1,39 +1,59 @@
 *** Settings ***
-Documentation     Test suite to verify update behaviour during different topoprocessing operations on NT and inventory models.
-...               Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIG_API to OPERATIONAL_API.
-...               Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
-...               Suite setup also installs features required for tested models and clears karaf logs for further synchronization. Tests themselves send configurational
-...               xmls and verify output. Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
-Suite Setup       Setup Environment
-Suite Teardown    Clean Environment
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     Refresh Underlay Topologies And Delete Overlay Topology
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           XML
-Variables         ../../../variables/topoprocessing/TopologyRequests.py
-Variables         ../../../variables/topoprocessing/TargetFields.py
-Variables         ../../../variables/Variables.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/TopoprocessingKeywords.robot
+Documentation       Test suite to verify update behaviour during different topoprocessing operations on NT and inventory models.
+...                 Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIG_API to OPERATIONAL_API.
+...                 Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
+...                 Suite setup also installs features required for tested models and clears karaf logs for further synchronization. Tests themselves send configurational
+...                 xmls and verify output. Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
+
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             XML
+Variables           ../../../variables/topoprocessing/TopologyRequests.py
+Variables           ../../../variables/topoprocessing/TargetFields.py
+Variables           ../../../variables/Variables.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/TopoprocessingKeywords.robot
+
+Suite Setup         Setup Environment
+Suite Teardown      Clean Environment
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       Refresh Underlay Topologies And Delete Overlay Topology
+
 
 *** Test Cases ***
 Unification Node Update
     [Documentation]    Test processing of updates using unification operation on Network Topology model
     #Create the original topology
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Topology Request    ${UNIFICATION_NT}    ${model}    node    network-topo:1    network-topo:2
+    ${request}    Prepare Unification Topology Request
+    ...    ${UNIFICATION_NT}
+    ...    ${model}
+    ...    node
+    ...    network-topo:1
+    ...    network-topo:2
     ${request}    Insert Target Field    ${request}    0    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
     ${request}    Insert Target Field    ${request}    1    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=8    supporting-node_count=10
-    ...    tp_count=14    tp-ref_count=14
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=8
+    ...    supporting-node_count=10
+    ...    tp_count=14
+    ...    tp-ref_count=14
     #Update a node, expecting a unification of two nodes into one
     ${node}    Create Isis Node    bgp:1    router-id-ipv4=192.168.1.2
     Basic Request Put    ${node}    network-topology:network-topology/topology/network-topo:1/node/bgp:1
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=7    supporting-node_count=10
-    ...    tp_count=11    tp-ref_count=11
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=7
+    ...    supporting-node_count=10
+    ...    tp_count=11
+    ...    tp-ref_count=11
     FOR    ${index}    IN RANGE    1    11
         Should Contain X Times    ${resp.content}    <node-ref>bgp:${index}</node-ref>    1
     END
@@ -41,8 +61,14 @@ Unification Node Update
     #Update a unified node, expecting creation of a new overlay node
     ${node}    Create Isis Node    bgp:3    router-id-ipv4=192.168.3.1
     Basic Request Put    ${node}    network-topology:network-topology/topology/network-topo:1/node/bgp:3
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=8    supporting-node_count=10
-    ...    tp_count=9    tp-ref_count=9
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=8
+    ...    supporting-node_count=10
+    ...    tp_count=9
+    ...    tp-ref_count=9
     FOR    ${index}    IN RANGE    1    11
         Should Contain X Times    ${resp.content}    <node-ref>bgp:${index}</node-ref>    1
     END
@@ -50,17 +76,34 @@ Unification Node Update
 Unification Node Inventory
     [Documentation]    Test processing of updates using unification operation on Inventory model
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Unification Topology Request    ${UNIFICATION_NT}    ${model}    node    openflow-topo:1    openflow-topo:2
+    ${request}    Prepare Unification Topology Request
+    ...    ${UNIFICATION_NT}
+    ...    ${model}
+    ...    node
+    ...    openflow-topo:1
+    ...    openflow-topo:2
     ${request}    Insert Target Field    ${request}    0    ${OPENFLOW_NODE_IP_ADDRESS}    0
     ${request}    Insert Target Field    ${request}    1    ${OPENFLOW_NODE_IP_ADDRESS}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=7    supporting-node_count=10
-    ...    tp_count=12    tp-ref_count=12
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=7
+    ...    supporting-node_count=10
+    ...    tp_count=12
+    ...    tp-ref_count=12
     #Update a node, expecting unification of two nodes into one
     ${node}    Create Openflow Node    openflow:2    192.168.1.1
     Basic Request Put    ${node}    opendaylight-inventory:nodes/node/openflow:2
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=6    supporting-node_count=10
-    ...    tp_count=12    tp-ref_count=12
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=6
+    ...    supporting-node_count=10
+    ...    tp_count=12
+    ...    tp-ref_count=12
     FOR    ${index}    IN RANGE    1    11
         Should Contain X Times    ${resp.content}    <node-ref>of-node:${index}</node-ref>    1
     END
@@ -68,8 +111,14 @@ Unification Node Inventory
     #Update a unified node, expecting creation of a new overlay node
     ${node}    Create Openflow Node    openflow:4    192.168.3.1
     Basic Request Put    ${node}    opendaylight-inventory:nodes/node/openflow:4
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=7    supporting-node_count=10
-    ...    tp_count=12    tp-ref_count=12
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=7
+    ...    supporting-node_count=10
+    ...    tp_count=12
+    ...    tp-ref_count=12
     FOR    ${index}    IN RANGE    1    11
         Should Contain X Times    ${resp.content}    <node-ref>of-node:${index}</node-ref>    1
     END
@@ -80,56 +129,153 @@ Filtration Range Number Node Update Network Topology Model
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OVSDB_OVS_VERSION}
     ${request}    Set Range Number Filter    ${request}    20    25
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=5    tp-ref_count=5
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=5
+    ...    tp-ref_count=5
     ${request}    Create Isis Node    bgp:7    17
     Basic Request Put    ${request}    network-topology:network-topology/topology/network-topo:2/node/bgp:7
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=3
+    ...    tp-ref_count=3
     FOR    ${index}    IN RANGE    8    11
         Should Contain X Times    ${resp.content}    <node-ref>bgp:${index}</node-ref>    1
     END
     Should Not Contain    ${resp.content}    <node-ref>bgp:7</node-ref>
     ${topology_id}    Set Variable    network-topo:2
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:8    tp:8:1    tp:8:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:9    tp:9:1    tp:9:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:10    tp:10:1    tp:10:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:8
+    ...    tp:8:1
+    ...    tp:8:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:9
+    ...    tp:9:1
+    ...    tp:9:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:10
+    ...    tp:10:1
+    ...    tp:10:1
     ${request}    Create Isis Node    bgp:7    23
     Basic Request Put    ${request}    network-topology:network-topology/topology/network-topo:2/node/bgp:7
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=3
+    ...    tp-ref_count=3
     ${request}    Create OVSDB Termination Point    tp:7:1    1119
-    Basic Request Put    ${request}    network-topology:network-topology/topology/network-topo:2/node/bgp:7/termination-point/tp:7:1
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=4    tp-ref_count=4
+    Basic Request Put
+    ...    ${request}
+    ...    network-topology:network-topology/topology/network-topo:2/node/bgp:7/termination-point/tp:7:1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=4
+    ...    tp-ref_count=4
     FOR    ${index}    IN RANGE    7    11
         Should Contain X Times    ${resp.content}    <node-ref>bgp:${index}</node-ref>    1
     END
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:7    tp:7:1    tp:7:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:8    tp:8:1    tp:8:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:9    tp:9:1    tp:9:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    ${topology_id}    bgp:10    tp:10:1    tp:10:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:7
+    ...    tp:7:1
+    ...    tp:7:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:8
+    ...    tp:8:1
+    ...    tp:8:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:9
+    ...    tp:9:1
+    ...    tp:9:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topology_id}
+    ...    bgp:10
+    ...    tp:10:1
+    ...    tp:10:1
 
 Filtration Range Number Node Update Inventory Model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    node    openflow-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    node
+    ...    openflow-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OPENFLOW_NODE_SERIAL_NUMBER}
     ${request}    Set Range Number Filter    ${request}    20    25
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     #Update a Node so it passes filtration
     ${request}    Create Openflow Node    openflow:7    192.168.2.3    23
     Basic Request Put    ${request}    opendaylight-inventory:nodes/node/openflow:7
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=0
+    ...    tp-ref_count=0
     FOR    ${index}    IN RANGE    7    11
         Should Contain X Times    ${resp.content}    <node-ref>of-node:${index}</node-ref>    1
         #Update a Node so it is filtered out
     END
     ${request}    Create Openflow Node    openflow:7    192.168.2.3    17
     Basic Request Put    ${request}    opendaylight-inventory:nodes/node/openflow:7
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     FOR    ${index}    IN RANGE    8    11
         Should Contain X Times    ${resp.content}    <node-ref>of-node:${index}</node-ref>    1
     END
@@ -138,111 +284,295 @@ Filtration Range Number Node Update Inventory Model
 Filtration Range Number Termination Point Update NT
     [Documentation]    Test processing of updates using range number type of filtration operation on Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    ${model}    termination-point    network-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    ${model}
+    ...    termination-point
+    ...    network-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OVSDB_OFPORT}
     ${request}    Set Range Number Filter    ${request}    1115    1119
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
     #Update a previously out-of-range termination point, so it passes filtration
     ${terminationPoint}    Create OVSDB Termination Point    tp:8:1    1115
-    Basic Request Put    ${terminationPoint}    network-topology:network-topology/topology/network-topo:2/node/bgp:8/termination-point/tp:8:1
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=4    tp-ref_count=4
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    network-topo:2    bgp:8    tp:8:1    tp:8:1
+    Basic Request Put
+    ...    ${terminationPoint}
+    ...    network-topology:network-topology/topology/network-topo:2/node/bgp:8/termination-point/tp:8:1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=4
+    ...    tp-ref_count=4
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    network-topo:2
+    ...    bgp:8
+    ...    tp:8:1
+    ...    tp:8:1
     #Update a previsouly in-range termination point, so it is filtered out
     ${terminationPoint}    Create OVSDB Termination Point    tp:7:2    1110
-    Basic Request Put    ${terminationPoint}    network-topology:network-topology/topology/network-topo:2/node/bgp:7/termination-point/tp:7:2
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    network-topo:2    bgp:7    tp:7:1    tp:7:1
+    Basic Request Put
+    ...    ${terminationPoint}
+    ...    network-topology:network-topology/topology/network-topo:2/node/bgp:7/termination-point/tp:7:2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    network-topo:2
+    ...    bgp:7
+    ...    tp:7:1
+    ...    tp:7:1
 
 Filtration Range Number Termination Point Update Inventory
     [Documentation]    Test processing of updates using range number type of filtration operation on Inventory model
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    ${model}    termination-point    openflow-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    ${model}
+    ...    termination-point
+    ...    openflow-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OPENFLOW_NODE_CONNECTOR_PORT_NUMBER}
     ${request}    Set Range Number Filter    ${request}    2    4
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=5    tp-ref_count=5
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=5
+    ...    tp-ref_count=5
     #Update a previously out-of-range termination point, so it passes filtration
     ${nodeConnector}    Create Openflow Node Connector    openflow:2:1    3
     Basic Request Put    ${nodeConnector}    opendaylight-inventory:nodes/node/openflow:2/node-connector/openflow:2:1
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=6    tp-ref_count=6
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    openflow-topo:1    of-node:2    tp:2:1    tp:2:1
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    openflow-topo:1    of-node:2    tp:2:2    tp:2:2
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    openflow-topo:1    of-node:2    tp:2:3    tp:2:3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=6
+    ...    tp-ref_count=6
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    openflow-topo:1
+    ...    of-node:2
+    ...    tp:2:1
+    ...    tp:2:1
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    openflow-topo:1
+    ...    of-node:2
+    ...    tp:2:2
+    ...    tp:2:2
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    openflow-topo:1
+    ...    of-node:2
+    ...    tp:2:3
+    ...    tp:2:3
     #Update an in-range termination point, so it is filtered out
     ${nodeConnector}    Create Openflow Node Connector    openflow:3:2    5
     Basic Request Put    ${nodeConnector}    opendaylight-inventory:nodes/node/openflow:3/node-connector/openflow:3:2
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=5    tp-ref_count=5
-    Check Aggregated Termination Point in Node    ${model}    ${resp.content}    openflow-topo:1    of-node:3    tp:3:1    tp:3:1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=5
+    ...    tp-ref_count=5
+    Check Aggregated Termination Point in Node
+    ...    ${model}
+    ...    ${resp.content}
+    ...    openflow-topo:1
+    ...    of-node:3
+    ...    tp:3:1
+    ...    tp:3:1
 
 Filtration Range Number Link Update Network Topology Model
     [Documentation]    Tests the processing of link update requests when using a range-number filtration on NT model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    link    network-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    link
+    ...    network-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${IGP_LINK_METRIC}
     ${request}    Set Range Number Filter    ${request}    11    13
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=3    link-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=3
+    ...    link-ref_count=3
     #Filter a link out
     ${request}    Create Link    link:1:4    bgp:1    bgp:4    linkA    15
     Basic Request Put    ${request}    network-topology:network-topology/topology/network-topo:1/link/link:1:4
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=2    link-ref_count=2
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/network-topo:1/link/link:1:3</link-ref>    1
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/network-topo:1/link/link:1:2-1</link-ref>    1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=2
+    ...    link-ref_count=2
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/network-topo:1/link/link:1:3</link-ref>
+    ...    1
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/network-topo:1/link/link:1:2-1</link-ref>
+    ...    1
     Should Not Contain    ${resp.content}    network-topology/topology/network-topo:1/link/link:1:4
     #Put the link back in
     ${request}    Create Link    link:1:4    bgp:1    bgp:4    linkA    12
     Basic Request Put    ${request}    network-topology:network-topology/topology/network-topo:1/link/link:1:4
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=3    link-ref_count=3
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/network-topo:1/link/link:1:4</link-ref>    1
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/network-topo:1/link/link:1:3</link-ref>    1
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/network-topo:1/link/link:1:2-1</link-ref>    1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=3
+    ...    link-ref_count=3
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/network-topo:1/link/link:1:4</link-ref>
+    ...    1
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/network-topo:1/link/link:1:3</link-ref>
+    ...    1
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/network-topo:1/link/link:1:2-1</link-ref>
+    ...    1
 
 Filtration Range Number Link Update Inventory Model
     [Documentation]    Tests the processing of link update requests when using a range-number filtration on Inventory model
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    link    openflow-topo:3
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    link
+    ...    openflow-topo:3
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${IGP_LINK_METRIC}
     ${request}    Set Range Number Filter    ${request}    14    15
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=2    link-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=2
+    ...    link-ref_count=2
     ${request}    Create Link    link:11:12    of-node:11    of-node:12    linkB    14
     Basic Request Put    ${request}    network-topology:network-topology/topology/openflow-topo:3/link/link:11:12
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=3    link-ref_count=3
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/openflow-topo:3/link/link:14:12</link-ref>    1
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/openflow-topo:3/link/link:15:13</link-ref>    1
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/openflow-topo:3/link/link:11:12</link-ref>    1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=3
+    ...    link-ref_count=3
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/openflow-topo:3/link/link:14:12</link-ref>
+    ...    1
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/openflow-topo:3/link/link:15:13</link-ref>
+    ...    1
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/openflow-topo:3/link/link:11:12</link-ref>
+    ...    1
     ${request}    Create Link    link:11:12    of-node:11    of-node:12    linkB    13
     Basic Request Put    ${request}    network-topology:network-topology/topology/openflow-topo:3/link/link:11:12
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=2    link-ref_count=2
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/openflow-topo:3/link/link:14:12</link-ref>    1
-    Should Contain X Times    ${resp.content}    <link-ref>/network-topology/topology/openflow-topo:3/link/link:15:13</link-ref>    1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=2
+    ...    link-ref_count=2
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/openflow-topo:3/link/link:14:12</link-ref>
+    ...    1
+    Should Contain X Times
+    ...    ${resp.content}
+    ...    <link-ref>/network-topology/topology/openflow-topo:3/link/link:15:13</link-ref>
+    ...    1
 
 Unification Filtration Node Update Inside Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Filtration Inside Topology Request    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}    ${model}    node    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    network-topo:4
+    ${request}    Prepare Unification Filtration Inside Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    ${ISIS_NODE_TE_ROUTER_ID_IPV4}
+    ...    network-topo:4
     ${request}    Insert Filter With ID    ${request}    ${FILTER_IPV4}    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Set IPV4 Filter    ${request}    192.168.2.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     ${request}    Create Isis Node    bgp:17    10    192.168.2.1
     Basic Request Put    ${request}    network-topology:network-topology/topology/network-topo:4/node/bgp:17
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=0
+    ...    tp-ref_count=0
     FOR    ${index}    IN RANGE    17    21
         Should Contain X Times    ${resp.content}    <node-ref>bgp:${index}</node-ref>    1
     END
     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:18    bgp:17    bgp:20
     ${request}    Create Isis Node    bgp:17    10    192.168.1.2
     Basic Request Put    ${request}    network-topology:network-topology/topology/network-topo:4/node/bgp:17
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     FOR    ${index}    IN RANGE    18    21
         Should Contain X Times    ${resp.content}    <node-ref>bgp:${index}</node-ref>    1
     END
@@ -250,17 +580,36 @@ Unification Filtration Node Update Inside Network Topology model
 
 Unification Filtration Node Update Inside Inventory model
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Unification Filtration Inside Topology Request    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}    ${model}    node    ${OPENFLOW_NODE_IP_ADDRESS}    openflow-topo:4
+    ${request}    Prepare Unification Filtration Inside Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    ${OPENFLOW_NODE_IP_ADDRESS}
+    ...    openflow-topo:4
     ${request}    Insert Filter With ID    ${request}    ${FILTER_IPV4}    ${OPENFLOW_NODE_IP_ADDRESS}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Set IPV4 Filter    ${request}    192.168.2.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=0
+    ...    tp-ref_count=0
     ${request}    Create Openflow Node    openflow:17    192.168.1.2
     Basic Request Put    ${request}    opendaylight-inventory:nodes/node/openflow:17
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     FOR    ${index}    IN RANGE    18    21
         Should Contain X Times    ${resp.content}    <node-ref>of-node:${index}</node-ref>    1
     END
@@ -272,8 +621,15 @@ Unification Filtration Node Update Inside Inventory model
     Should Not Contain    ${node}    <node-ref>of-node:17</node-ref>
     ${request}    Create Openflow Node    openflow:17    192.168.2.3
     Basic Request Put    ${request}    opendaylight-inventory:nodes/node/openflow:17
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=0
+    ...    tp-ref_count=0
     FOR    ${index}    IN RANGE    17    21
         Should Contain X Times    ${resp.content}    <node-ref>of-node:${index}</node-ref>    1
     END
@@ -282,32 +638,85 @@ Unification Filtration Node Update Inside Inventory model
 Link Computation Aggregation Inside Update NT
     [Documentation]    Test of link computation with unification type of aggregation inside on updated nodes from network-topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Inside Topology Request    ${UNIFICATION_NT_AGGREGATE_INSIDE}    ${model}    node    network-topo:6
+    ${request}    Prepare Unification Inside Topology Request
+    ...    ${UNIFICATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    network-topo:6
     ${request}    Insert Target Field    ${request}    0    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
-    ${request}    Insert Link Computation Inside    ${request}    ${LINK_COMPUTATION_INSIDE}    n:network-topology-model    network-topo:6
+    ${request}    Insert Link Computation Inside
+    ...    ${request}
+    ...    ${LINK_COMPUTATION_INSIDE}
+    ...    n:network-topology-model
+    ...    network-topo:6
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=5
-    ...    node-ref_count=5    link_count=4    link-ref_count=4
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    link_count=4
+    ...    link-ref_count=4
     #Divide double nodes from overlay topology
     ${request}    Create Isis Node    bgp:29    router-id-ipv4=192.168.1.3
     Basic Request Put    ${request}    network-topology:network-topology/topology/network-topo:6/node/bgp:29
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    link_count=4    link-ref_count=4
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    link_count=4
+    ...    link-ref_count=4
     ${node_26}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:26
     ${node_27}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:27
     ${node_28}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:28
     ${node_29}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:29
     ${node_30}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:30
     ${topo_id}    Set Variable    network-topo:6
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topo_id}    link:28:29    ${node_28}    ${node_29}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topo_id}    link:26:28    ${node_26}    ${node_28}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topo_id}    link:29:30-2    ${node_29}    ${node_30}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topo_id}    link:29:30-1    ${node_29}    ${node_30}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topo_id}
+    ...    link:28:29
+    ...    ${node_28}
+    ...    ${node_29}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topo_id}
+    ...    link:26:28
+    ...    ${node_26}
+    ...    ${node_28}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topo_id}
+    ...    link:29:30-2
+    ...    ${node_29}
+    ...    ${node_30}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topo_id}
+    ...    link:29:30-1
+    ...    ${node_29}
+    ...    ${node_30}
     #Update link to node out of topology
     ${request}    Create Link    link:28:29    bgp:28    bgp:31    linkB    11
     Basic Request Put    ${request}    network-topology:network-topology/topology/network-topo:6/link/link:28:29
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    link_count=3    link-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    link_count=3
+    ...    link-ref_count=3
     #Refresh node IDs
     ${node_26}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:26
     ${node_27}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:27
@@ -315,7 +724,31 @@ Link Computation Aggregation Inside Update NT
     ${node_29}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:29
     ${node_30}    Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:30
     Should Not Contain    ${resp.content}    /network-topology/topology/network-topo:6/link/link:28:29
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topo_id}    link:26:28    ${node_26}    ${node_28}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topo_id}    link:29:30-2    ${node_29}    ${node_30}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topo_id}    link:29:30-1    ${node_29}    ${node_30}
-    Check Overlay Link Source And Destination    ${model}    ${resp.content}    ${topo_id}    link:29:30-1    ${node_29}    ${node_30}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topo_id}
+    ...    link:26:28
+    ...    ${node_26}
+    ...    ${node_28}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topo_id}
+    ...    link:29:30-2
+    ...    ${node_29}
+    ...    ${node_30}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topo_id}
+    ...    link:29:30-1
+    ...    ${node_29}
+    ...    ${node_30}
+    Check Overlay Link Source And Destination
+    ...    ${model}
+    ...    ${resp.content}
+    ...    ${topo_id}
+    ...    link:29:30-1
+    ...    ${node_29}
+    ...    ${node_30}
index a445f9c435443a90d460247950941d33be24f2c0..a452dd50235fcd00ea35334557508ac92c3369e1 100644 (file)
 *** Settings ***
-Documentation     Test suite to verify processing of removal requests on different models.
-...               Before tests start, configurational files have to be rewriten to change listeners registration datastore type from CONFIG_API to OPERATIONAL_API.
-...               Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
-...               Suite setup also installs features required for tested models and clears karaf logs for further synchronization. Tests themselves send configurational
-...               xmls and verify output. Topology-id on the end of each url must match topology-id from xml. Yang models of components in topology are defined in xmls.
-Suite Setup       Setup Environment
-Suite Teardown    Clean Environment
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     Refresh Underlay Topologies And Delete Overlay Topology
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           XML
-Variables         ../../../variables/topoprocessing/TopologyRequests.py
-Variables         ../../../variables/topoprocessing/TargetFields.py
-Variables         ../../../variables/Variables.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/TopoprocessingKeywords.robot
+Documentation       Test suite to verify processing of removal requests on different models.
+...                 Before tests start, configurational files have to be rewriten to change listeners registration datastore type from CONFIG_API to OPERATIONAL_API.
+...                 Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
+...                 Suite setup also installs features required for tested models and clears karaf logs for further synchronization. Tests themselves send configurational
+...                 xmls and verify output. Topology-id on the end of each url must match topology-id from xml. Yang models of components in topology are defined in xmls.
+
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             XML
+Variables           ../../../variables/topoprocessing/TopologyRequests.py
+Variables           ../../../variables/topoprocessing/TargetFields.py
+Variables           ../../../variables/Variables.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/TopoprocessingKeywords.robot
+
+Suite Setup         Setup Environment
+Suite Teardown      Clean Environment
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       Refresh Underlay Topologies And Delete Overlay Topology
+
 
 *** Test Cases ***
 Unification Node Removal NT
     [Documentation]    Test processing of node removal using unification operation on Network Topology model
     ${model}    Set Variable    network-topology-model
     #Create the original topology
-    ${request}    Prepare Unification Topology Request    ${UNIFICATION_NT}    network-topology-model    node    network-topo:1    network-topo:2
+    ${request}    Prepare Unification Topology Request
+    ...    ${UNIFICATION_NT}
+    ...    network-topology-model
+    ...    node
+    ...    network-topo:1
+    ...    network-topo:2
     ${request}    Insert Target Field    ${request}    0    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
     ${request}    Insert Target Field    ${request}    1    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=8    supporting-node_count=10
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=8
+    ...    supporting-node_count=10
     ...    node-ref_count=10
     #Remove an underlay aggregated node, preserving the overlay node
     Delete Underlay Node    network-topo:1    bgp:3
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=8    supporting-node_count=9
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=8
+    ...    supporting-node_count=9
     ...    node-ref_count=9
     Check Aggregated Node in Topology    ${model}    ${resp.content}    2    bgp:4
     #Remove an underlay aggregated node, expecting removal of the overlay node
     Delete Underlay Node    network-topo:1    bgp:4
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=7    supporting-node_count=8
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=7
+    ...    supporting-node_count=8
     ...    node-ref_count=8
 
 Unification Node Removal Inventory
     [Documentation]    Test processing of node removal using unification operation on Inventory model
     ${model}    Set Variable    opendaylight-inventory-model
     #Create the original topology
-    ${request}    Prepare Unification Topology Request    ${UNIFICATION_NT}    ${model}    node    openflow-topo:1    openflow-topo:2
+    ${request}    Prepare Unification Topology Request
+    ...    ${UNIFICATION_NT}
+    ...    ${model}
+    ...    node
+    ...    openflow-topo:1
+    ...    openflow-topo:2
     ${request}    Insert Target Field    ${request}    0    ${OPENFLOW_NODE_IP_ADDRESS}    0
     ${request}    Insert Target Field    ${request}    1    ${OPENFLOW_NODE_IP_ADDRESS}    0
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=7    supporting-node_count=10
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=7
+    ...    supporting-node_count=10
     ...    node-ref_count=10
     #Remove an underlay aggregated node, preserving the overlay node
     Delete Underlay Node    openflow-topo:2    of-node:6
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=7    supporting-node_count=9
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=7
+    ...    supporting-node_count=9
     ...    node-ref_count=9
     Check Aggregated Node in Topology    ${model}    ${resp.content}    2    of-node:1
     #Remove an underlay aggregated node, expecting removal of the overlay node
     Delete Underlay Node    openflow-topo:1    of-node:1
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=6    supporting-node_count=8
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=6
+    ...    supporting-node_count=8
     ...    node-ref_count=8
 
 Filtration Range Number Node Removal NT
@@ -67,12 +110,26 @@ Filtration Range Number Node Removal NT
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OVSDB_OVS_VERSION}
     ${request}    Set Range Number Filter    ${request}    20    25
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=5    tp-ref_count=5
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=5
+    ...    tp-ref_count=5
     #Remove an underlay filtered node, expecting removal of the overlay node
     Delete Underlay Node    network-topo:2    bgp:7
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=3
+    ...    tp-ref_count=3
 
 Filtration Range Number Node Removal Inventory
     [Documentation]    Test processing of node removal using filtration operation on Inventory model
@@ -82,138 +139,333 @@ Filtration Range Number Node Removal Inventory
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OPENFLOW_NODE_SERIAL_NUMBER}
     ${request}    Set Range Number Filter    ${request}    20    25
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     #Remove an underlay filtered node, expecting removal of the overlay node
     Delete Underlay Node    openflow-topo:2    of-node:8
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=2
-    ...    node-ref_count=2    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=2
+    ...    node-ref_count=2
+    ...    tp_count=0
+    ...    tp-ref_count=0
 
 Filtration Range Number Termination Point Removal NT
     [Documentation]    Test processing of termination point removal using filtration operation on Network Topology model
     ${model}    Set Variable    network-topology-model
     #Create the original topology
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    ${model}    termination-point    network-topo:2
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    ${model}
+    ...    termination-point
+    ...    network-topo:2
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OVSDB_OFPORT}
     ${request}    Set Range Number Filter    ${request}    1115    1119
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
     #Remove an underlay filtered termination point
     Delete Underlay Termination Point    network-topo:2    bgp:7    tp:7:2
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=2    tp-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=2
+    ...    tp-ref_count=2
     #Remove an underlay filtered termination point
     Delete Underlay Termination Point    network-topo:2    bgp:7    tp:7:1
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=1    tp-ref_count=1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=1
+    ...    tp-ref_count=1
 
 Filtration Range Number Termination Point Removal Inventory
     [Documentation]    Test processing of termination point removal using filtration operation on Inventory model
     ${model}    Set Variable    opendaylight-inventory-model
     #Create the original topology
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    ${model}    termination-point    openflow-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    ${model}
+    ...    termination-point
+    ...    openflow-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OPENFLOW_NODE_CONNECTOR_PORT_NUMBER}
     ${request}    Set Range Number Filter    ${request}    2    4
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=5    tp-ref_count=5
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=5
+    ...    tp-ref_count=5
     #Remove an underlay filtered termination point
     Delete Underlay Termination Point    openflow-topo:1    of-node:3    tp:3:2
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=4    tp-ref_count=4
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=4
+    ...    tp-ref_count=4
     #Remove an underlay filtered termination point
     Delete Underlay Termination Point    openflow-topo:1    of-node:3    tp:3:1
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=5    supporting-node_count=5
-    ...    node-ref_count=5    tp_count=3    tp-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=5
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    tp_count=3
+    ...    tp-ref_count=3
 
 Filtration Range Number Link Removal NT
     [Documentation]    Test processing of link removal using filtration operation on NT model
     #Create the original topology
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    link    network-topo:1
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    network-topology-model
+    ...    link
+    ...    network-topo:1
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${IGP_LINK_METRIC}
     ${request}    Set Range Number Filter    ${request}    11    13
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=3    link-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=3
+    ...    link-ref_count=3
     #Remove an underlay filtered link, expecting removal of the overlay link
     Delete Underlay Link    network-topo:1    link:1:3
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=2    link-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=2
+    ...    link-ref_count=2
 
 Filtration Range Number Link Removal Inventory
     [Documentation]    Test processing of link removal using filtration operation on Inventory model
     #Create the original topology
-    ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    link    openflow-topo:3
+    ${request}    Prepare Filtration Topology Request
+    ...    ${FILTRATION_NT}
+    ...    opendaylight-inventory-model
+    ...    link
+    ...    openflow-topo:3
     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${IGP_LINK_METRIC}
     ${request}    Set Range Number Filter    ${request}    14    15
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=2    link-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=2
+    ...    link-ref_count=2
     #Remove an underlay filtered link, expecting removal of the overlay link
     Delete Underlay Link    openflow-topo:3    link:14:12
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    link_count=1    link-ref_count=1
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    link_count=1
+    ...    link-ref_count=1
 
 Unification Filtration Node Removal Inside NT
     [Documentation]    Test processing of node removal using unification with filtration operation on Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Filtration Inside Topology Request    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}    ${model}    node    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    network-topo:4
+    ${request}    Prepare Unification Filtration Inside Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    ${ISIS_NODE_TE_ROUTER_ID_IPV4}
+    ...    network-topo:4
     ${request}    Insert Filter With ID    ${request}    ${FILTER_IPV4}    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Set IPV4 Filter    ${request}    192.168.2.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     #Remove an underlay aggregated node, preserving the overlay node
     Delete Underlay Node    network-topo:4    bgp:20
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=2
-    ...    node-ref_count=2    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=2
+    ...    node-ref_count=2
+    ...    tp_count=0
+    ...    tp-ref_count=0
     #Remove an underlay aggregated node, expecting removal of the overlay node
     Delete Underlay Node    network-topo:4    bgp:18
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=1    supporting-node_count=1
-    ...    node-ref_count=1    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=1
+    ...    supporting-node_count=1
+    ...    node-ref_count=1
+    ...    tp_count=0
+    ...    tp-ref_count=0
 
 Unification Filtration Node Removal Inside Inventory
     [Documentation]    Test processing of node removal using unification with filtration operation on Inventory model
     ${model}    Set Variable    opendaylight-inventory-model
-    ${request}    Prepare Unification Filtration Inside Topology Request    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}    ${model}    node    ${OPENFLOW_NODE_IP_ADDRESS}    openflow-topo:4
+    ${request}    Prepare Unification Filtration Inside Topology Request
+    ...    ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    ${OPENFLOW_NODE_IP_ADDRESS}
+    ...    openflow-topo:4
     ${request}    Insert Filter With ID    ${request}    ${FILTER_IPV4}    ${OPENFLOW_NODE_IP_ADDRESS}    1
     ${request}    Insert Apply Filters    ${request}    1    1
     ${request}    Set IPV4 Filter    ${request}    192.168.2.1/24
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=4
-    ...    node-ref_count=4    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    tp_count=0
+    ...    tp-ref_count=0
     #Remove an underlay aggregated node, preserving the overlay node
     Delete Underlay Node    openflow-topo:4    of-node:17
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=2    supporting-node_count=3
-    ...    node-ref_count=3    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=2
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    tp_count=0
+    ...    tp-ref_count=0
     #Remove an underlay aggregated node, expecting removal of the overlay node
     Delete Underlay Node    openflow-topo:4    of-node:18
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=1    supporting-node_count=2
-    ...    node-ref_count=2    tp_count=0    tp-ref_count=0
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=1
+    ...    supporting-node_count=2
+    ...    node-ref_count=2
+    ...    tp_count=0
+    ...    tp-ref_count=0
 
 Link Computation Aggregation Inside Node Removal NT
     [Documentation]    Test processing of node removal using unification with link computation operation on Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Inside Topology Request    ${UNIFICATION_NT_AGGREGATE_INSIDE}    ${model}    node    network-topo:6
+    ${request}    Prepare Unification Inside Topology Request
+    ...    ${UNIFICATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    network-topo:6
     ${request}    Insert Target Field    ${request}    0    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
-    ${request}    Insert Link Computation Inside    ${request}    ${LINK_COMPUTATION_INSIDE}    n:network-topology-model    network-topo:6
+    ${request}    Insert Link Computation Inside
+    ...    ${request}
+    ...    ${LINK_COMPUTATION_INSIDE}
+    ...    n:network-topology-model
+    ...    network-topo:6
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=5
-    ...    node-ref_count=5    link_count=4    link-ref_count=4
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    link_count=4
+    ...    link-ref_count=4
     Delete Underlay Node    network-topo:6    bgp:26
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=4
-    ...    node-ref_count=4    link_count=3    link-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=4
+    ...    node-ref_count=4
+    ...    link_count=3
+    ...    link-ref_count=3
     Delete Underlay Node    network-topo:6    bgp:28
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=3    supporting-node_count=3
-    ...    node-ref_count=3    link_count=2    link-ref_count=2
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=3
+    ...    supporting-node_count=3
+    ...    node-ref_count=3
+    ...    link_count=2
+    ...    link-ref_count=2
 
 Link Computation Aggregation Inside Link Removal NT
     [Documentation]    Test processing of link removal using unification with link computation operation on Network Topology model
     ${model}    Set Variable    network-topology-model
-    ${request}    Prepare Unification Inside Topology Request    ${UNIFICATION_NT_AGGREGATE_INSIDE}    ${model}    node    network-topo:6
+    ${request}    Prepare Unification Inside Topology Request
+    ...    ${UNIFICATION_NT_AGGREGATE_INSIDE}
+    ...    ${model}
+    ...    node
+    ...    network-topo:6
     ${request}    Insert Target Field    ${request}    0    ${ISIS_NODE_TE_ROUTER_ID_IPV4}    0
-    ${request}    Insert Link Computation Inside    ${request}    ${LINK_COMPUTATION_INSIDE}    n:network-topology-model    network-topo:6
+    ${request}    Insert Link Computation Inside
+    ...    ${request}
+    ...    ${LINK_COMPUTATION_INSIDE}
+    ...    n:network-topology-model
+    ...    network-topo:6
     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=5
-    ...    node-ref_count=5    link_count=4    link-ref_count=4
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    link_count=4
+    ...    link-ref_count=4
     Delete Underlay Link    network-topo:6    link:26:28
-    ${resp}    Wait Until Keyword Succeeds    3x    1s    Output Topo Should Be Complete    node_count=4    supporting-node_count=5
-    ...    node-ref_count=5    link_count=3    link-ref_count=3
+    ${resp}    Wait Until Keyword Succeeds
+    ...    3x
+    ...    1s
+    ...    Output Topo Should Be Complete
+    ...    node_count=4
+    ...    supporting-node_count=5
+    ...    node-ref_count=5
+    ...    link_count=3
+    ...    link-ref_count=3
index 3939c2e744ad26bcbd4e87bb67bcb9075e69507b..6a0ee9ca05224e36683c29ccf8820d235bee8fee 100644 (file)
@@ -1,28 +1,54 @@
 *** Settings ***
-Documentation     Test suite for Cassandra DataStore PortStats Verification
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           RequestsLibrary
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Cassandra DataStore PortStats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             RequestsLibrary
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{INTERFACE_METRICS}    TransmittedPackets    TransmittedBytes    TransmitErrors    TransmitDrops    ReceivedPackets    ReceivedBytes    ReceiveOverRunError
-...               ReceiveFrameError    ReceiveErrors    ReceiveDrops    ReceiveCrcError    CollisionCount
-${root_path}      flow-capable-node-connector-statistics
-@{xpath}          ${root_path}/packets/transmitted    ${root_path}/bytes/transmitted    ${root_path}/transmit-errors    ${root_path}/transmit-drops    ${root_path}/packets/received    ${root_path}/bytes/received    ${root_path}/receive-over-run-error
-...               ${root_path}/receive-frame-error    ${root_path}/receive-errors    ${root_path}/receive-drops    ${root_path}/receive-crc-error    ${root_path}/collision-count
-@{CATEGORY}       FlowStats    FlowTableStats    PortStats    QueueStats
-${TSDR_PORTSTATS}    tsdr:list PortStats
-${metric_path}    metric_path
-${metric_val}     metric_val
+@{INTERFACE_METRICS}
+...                     TransmittedPackets
+...                     TransmittedBytes
+...                     TransmitErrors
+...                     TransmitDrops
+...                     ReceivedPackets
+...                     ReceivedBytes
+...                     ReceiveOverRunError
+...                     ReceiveFrameError
+...                     ReceiveErrors
+...                     ReceiveDrops
+...                     ReceiveCrcError
+...                     CollisionCount
+${root_path}            flow-capable-node-connector-statistics
+@{xpath}
+...                     ${root_path}/packets/transmitted
+...                     ${root_path}/bytes/transmitted
+...                     ${root_path}/transmit-errors
+...                     ${root_path}/transmit-drops
+...                     ${root_path}/packets/received
+...                     ${root_path}/bytes/received
+...                     ${root_path}/receive-over-run-error
+...                     ${root_path}/receive-frame-error
+...                     ${root_path}/receive-errors
+...                     ${root_path}/receive-drops
+...                     ${root_path}/receive-crc-error
+...                     ${root_path}/collision-count
+@{CATEGORY}             FlowStats    FlowTableStats    PortStats    QueueStats
+${TSDR_PORTSTATS}       tsdr:list PortStats
+${metric_path}          metric_path
+${metric_val}           metric_val
 @{xml_list}
 @{tsdr_list}
 
+
 *** Test Cases ***
 Verification of TSDR Cassandra Feature Installation
     [Documentation]    Install and Verify the TSDR Cassandra Features
@@ -44,7 +70,9 @@ Storing Statistics from Openflow REST
         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:2    ${item}
         Append To List    ${xml_list}    ${ret_val}
         ${ret_val}=    Set Variable    -1
-        ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:LOCAL    ${item}
+        ${ret_val}=    Get Stats XML
+        ...    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:LOCAL
+        ...    ${item}
         Append To List    ${xml_list}    ${ret_val}
         ${ret_val}=    Set Variable    -1
         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:1    ${item}
@@ -56,7 +84,9 @@ Storing Statistics from Openflow REST
         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:3    ${item}
         Append To List    ${xml_list}    ${ret_val}
         ${ret_val}=    Set Variable    -1
-        ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:LOCAL    ${item}
+        ${ret_val}=    Get Stats XML
+        ...    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:LOCAL
+        ...    ${item}
         Append To List    ${xml_list}    ${ret_val}
         ${ret_val}=    Set Variable    -1
         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:1    ${item}
@@ -65,7 +95,9 @@ Storing Statistics from Openflow REST
         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:2    ${item}
         Append To List    ${xml_list}    ${ret_val}
         ${ret_val}=    Set Variable    -1
-        ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:LOCAL    ${item}
+        ${ret_val}=    Get Stats XML
+        ...    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:LOCAL
+        ...    ${item}
         Append To List    ${xml_list}    ${ret_val}
         ${ret_val}=    Set Variable    -1
     END
@@ -75,25 +107,35 @@ Verification of InterfaceMetrics-Attributes on Cassandra Client
     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
     Copy TSDR tables
     FOR    ${list}    IN    @{INTERFACE_METRICS}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:1 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:1,NodeConnector:openflow:1:1
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:1 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:1,NodeConnector:openflow:1:1
         Append To List    ${tsdr_list}    ${ret_val1}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:1 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:1,NodeConnector:openflow:1:2
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:1 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:1,NodeConnector:openflow:1:2
         Append To List    ${tsdr_list}    ${ret_val1}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:1 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:1,NodeConnector:openflow:1:LOCAL
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:1 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:1,NodeConnector:openflow:1:LOCAL
         Append To List    ${tsdr_list}    ${ret_val1}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:1
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:1
         Append To List    ${tsdr_list}    ${ret_val1}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:2
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:2
         Append To List    ${tsdr_list}    ${ret_val1}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:3
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:3
         Append To List    ${tsdr_list}    ${ret_val1}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:LOCAL
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:LOCAL
         Append To List    ${tsdr_list}    ${ret_val1}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:3 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:3,NodeConnector:openflow:3:1
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:3 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:3,NodeConnector:openflow:3:1
         Append To List    ${tsdr_list}    ${ret_val1}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:3 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:3,NodeConnector:openflow:3:2
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:3 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:3,NodeConnector:openflow:3:2
         Append To List    ${tsdr_list}    ${ret_val1}
-        ${ret_val1}=    Extract From DB Table    grep NID=openflow:3 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:3,NodeConnector:openflow:3:LOCAL
+        ${ret_val1}=    Extract From DB Table
+        ...    grep NID=openflow:3 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:3,NodeConnector:openflow:3:LOCAL
         Append To List    ${tsdr_list}    ${ret_val1}
     END
 
@@ -103,10 +145,11 @@ Comparing Mertics
         Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    20
     END
 
+
 *** Keywords ***
 Extract From DB Table
-    [Arguments]    ${pattern}
     [Documentation]    Extract from metricpath table and return the value
+    [Arguments]    ${pattern}
     ${ret_val1}=    Set Variable    -100
     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    ${pattern}
-    [Return]    ${ret_val1}
+    RETURN    ${ret_val1}
index e21c44bb81d392d3d493ea1c194c351f9c2e7164..de9822e4d5bb67d61ddf400b9931b81578246c23 100644 (file)
@@ -1,20 +1,23 @@
 *** Settings ***
-Documentation     Test suite for Cassandra DataStore Flow Stats Verification
-Suite Setup       Initialize the Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Cassandra DataStore Flow Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Initialize the Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{FLOW_METRICS}    PacketCount    ByteCount
-${TSDR_FLOWSTATS}    tsdr:list FlowStats
-${packet_count}    flow/flow-statistics/packet-count
-${byte_count}     flow/flow-statistics/byte-count
+@{FLOW_METRICS}         PacketCount    ByteCount
+${TSDR_FLOWSTATS}       tsdr:list FlowStats
+${packet_count}         flow/flow-statistics/packet-count
+${byte_count}           flow/flow-statistics/byte-count
 @{tsdr_op1}
 @{tsdr_op2}
 @{tsdr_op3}
@@ -25,6 +28,7 @@ ${byte_count}     flow/flow-statistics/byte-count
 @{tsdr_op2_bc}
 @{tsdr_op3_bc}
 
+
 *** Test Cases ***
 Verification of TSDR Cassandra Feature Installation
     [Documentation]    Install and Verify the TSDR Cassandra Features
@@ -42,15 +46,27 @@ Getting all Tables from Openflow Plugin
     Set Suite Variable    @{openflow_1}
     Set Suite Variable    @{openflow_2}
     Set Suite Variable    @{openflow_3}
-    @{openflow_1_packetcount}=    Return all XML matches    ${OPERATIONAL_NODES_API}/node/openflow:1/table/0/    ${packet_count}
-    @{openflow_2_packetcount}=    Return all XML matches    ${OPERATIONAL_NODES_API}/node/openflow:2/table/0/    ${packet_count}
-    @{openflow_3_packetcount}=    Return all XML matches    ${OPERATIONAL_NODES_API}/node/openflow:3/table/0/    ${packet_count}
+    @{openflow_1_packetcount}=    Return all XML matches
+    ...    ${OPERATIONAL_NODES_API}/node/openflow:1/table/0/
+    ...    ${packet_count}
+    @{openflow_2_packetcount}=    Return all XML matches
+    ...    ${OPERATIONAL_NODES_API}/node/openflow:2/table/0/
+    ...    ${packet_count}
+    @{openflow_3_packetcount}=    Return all XML matches
+    ...    ${OPERATIONAL_NODES_API}/node/openflow:3/table/0/
+    ...    ${packet_count}
     Set Suite Variable    @{openflow_1_packetcount}
     Set Suite Variable    @{openflow_2_packetcount}
     Set Suite Variable    @{openflow_3_packetcount}
-    @{openflow_1_bytecount}=    Return all XML matches    ${OPERATIONAL_NODES_API}/node/openflow:1/table/0/    ${byte_count}
-    @{openflow_2_bytecount}=    Return all XML matches    ${OPERATIONAL_NODES_API}/node/openflow:2/table/0/    ${byte_count}
-    @{openflow_3_bytecount}=    Return all XML matches    ${OPERATIONAL_NODES_API}/node/openflow:3/table/0/    ${byte_count}
+    @{openflow_1_bytecount}=    Return all XML matches
+    ...    ${OPERATIONAL_NODES_API}/node/openflow:1/table/0/
+    ...    ${byte_count}
+    @{openflow_2_bytecount}=    Return all XML matches
+    ...    ${OPERATIONAL_NODES_API}/node/openflow:2/table/0/
+    ...    ${byte_count}
+    @{openflow_3_bytecount}=    Return all XML matches
+    ...    ${OPERATIONAL_NODES_API}/node/openflow:3/table/0/
+    ...    ${byte_count}
     Set Suite Variable    @{openflow_1_bytecount}
     Set Suite Variable    @{openflow_2_bytecount}
     Set Suite Variable    @{openflow_3_bytecount}
@@ -59,27 +75,33 @@ Verification of FlowStats-Attributes on Cassandra Data Store
     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
     Copy TSDR tables
     FOR    ${flow}    IN    @{openflow_1}
-        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:1 | grep DC=FLOWSTATS | grep MN=PacketCount | grep -F 'RK=Node:openflow:1,Table:0,Flow:${flow}'
+        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+        ...    grep NID=openflow:1 | grep DC=FLOWSTATS | grep MN=PacketCount | grep -F 'RK=Node:openflow:1,Table:0,Flow:${flow}'
         Append To List    ${tsdr_op1_pc}    ${ret_val1}
     END
     FOR    ${flow}    IN    @{openflow_2}
-        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=FLOWSTATS | grep MN=PacketCount | grep -F 'RK=Node:openflow:2,Table:0,Flow:${flow}'
+        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+        ...    grep NID=openflow:2 | grep DC=FLOWSTATS | grep MN=PacketCount | grep -F 'RK=Node:openflow:2,Table:0,Flow:${flow}'
         Append To List    ${tsdr_op2_pc}    ${ret_val1}
     END
     FOR    ${flow}    IN    @{openflow_3}
-        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:3 | grep DC=FLOWSTATS | grep MN=PacketCount | grep -F 'RK=Node:openflow:3,Table:0,Flow:${flow}'
+        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+        ...    grep NID=openflow:3 | grep DC=FLOWSTATS | grep MN=PacketCount | grep -F 'RK=Node:openflow:3,Table:0,Flow:${flow}'
         Append To List    ${tsdr_op3_pc}    ${ret_val1}
     END
     FOR    ${flow}    IN    @{openflow_1}
-        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:1 | grep DC=FLOWSTATS | grep MN=ByteCount | grep -F 'RK=Node:openflow:1,Table:0,Flow:${flow}'
+        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+        ...    grep NID=openflow:1 | grep DC=FLOWSTATS | grep MN=ByteCount | grep -F 'RK=Node:openflow:1,Table:0,Flow:${flow}'
         Append To List    ${tsdr_op1_bc}    ${ret_val1}
     END
     FOR    ${flow}    IN    @{openflow_2}
-        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=FLOWSTATS | grep MN=ByteCount | grep -F 'RK=Node:openflow:2,Table:0,Flow:${flow}'
+        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+        ...    grep NID=openflow:2 | grep DC=FLOWSTATS | grep MN=ByteCount | grep -F 'RK=Node:openflow:2,Table:0,Flow:${flow}'
         Append To List    ${tsdr_op2_bc}    ${ret_val1}
     END
     FOR    ${flow}    IN    @{openflow_3}
-        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:3 | grep DC=FLOWSTATS | grep MN=ByteCount | grep -F 'RK=Node:openflow:3,Table:0,Flow:${flow}'
+        ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+        ...    grep NID=openflow:3 | grep DC=FLOWSTATS | grep MN=ByteCount | grep -F 'RK=Node:openflow:3,Table:0,Flow:${flow}'
         Append To List    ${tsdr_op3_bc}    ${ret_val1}
     END
     Set Suite Variable    @{tsdr_op1_pc}
@@ -113,6 +135,7 @@ Comparing Byte Count Metrics
         Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    20
     END
 
+
 *** Keywords ***
 Initialize the Tsdr Suite
     Initialize Cassandra Tables Metricval
index 297a27b18fa717b4bd7c82a05fba7a134b3eb7f8..d455d33f28decb7e479928d8c907b0d8de31512d 100644 (file)
@@ -1,27 +1,31 @@
 *** Settings ***
-Documentation     Test suite for Cassandra DataStore Flow Table Stats Verification
-Suite Setup       Initialize the Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Cassandra DataStore Flow Table Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Initialize the Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-${TSDR_FLOWTABLE_STATS}    tsdr:list FlowTableStats
+${TSDR_FLOWTABLE_STATS}         tsdr:list FlowTableStats
 @{tsdr_pl}
 @{tsdr_af}
 @{tsdr_pm}
-${packetlookup}    flow-table-statistics/packets-looked-up
-${activeflows}    flow-table-statistics/active-flows
-${packetmatched}    flow-table-statistics/packets-matched
+${packetlookup}                 flow-table-statistics/packets-looked-up
+${activeflows}                  flow-table-statistics/active-flows
+${packetmatched}                flow-table-statistics/packets-matched
 @{openflow_packetlookup}
 @{openflow_activeflows}
 @{openflow_packetmatched}
 
+
 *** Test Cases ***
 Verification of TSDR Cassandra Feature Installation
     [Documentation]    Install and Verify the TSDR Cassandra Features
@@ -60,23 +64,32 @@ Getting all Tables from Openflow Plugin
 Verification of FlowStats-Attributes on Cassandra Data Store
     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
     Copy TSDR tables
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:1 | grep DC=FLOWTABLESTATS | grep MN=PacketLookup | grep RK=Node:openflow:1,Table:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:1 | grep DC=FLOWTABLESTATS | grep MN=PacketLookup | grep RK=Node:openflow:1,Table:0
     Append To List    ${tsdr_pl}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=FLOWTABLESTATS | grep MN=PacketLookup | grep RK=Node:openflow:2,Table:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=FLOWTABLESTATS | grep MN=PacketLookup | grep RK=Node:openflow:2,Table:0
     Append To List    ${tsdr_pl}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:3 | grep DC=FLOWTABLESTATS | grep MN=PacketLookup | grep RK=Node:openflow:3,Table:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:3 | grep DC=FLOWTABLESTATS | grep MN=PacketLookup | grep RK=Node:openflow:3,Table:0
     Append To List    ${tsdr_pl}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:1 | grep DC=FLOWTABLESTATS | grep MN=ActiveFlows | grep RK=Node:openflow:1,Table:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:1 | grep DC=FLOWTABLESTATS | grep MN=ActiveFlows | grep RK=Node:openflow:1,Table:0
     Append To List    ${tsdr_af}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=FLOWTABLESTATS | grep MN=ActiveFlows | grep RK=Node:openflow:2,Table:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=FLOWTABLESTATS | grep MN=ActiveFlows | grep RK=Node:openflow:2,Table:0
     Append To List    ${tsdr_af}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:3 | grep DC=FLOWTABLESTATS | grep MN=ActiveFlows | grep RK=Node:openflow:3,Table:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:3 | grep DC=FLOWTABLESTATS | grep MN=ActiveFlows | grep RK=Node:openflow:3,Table:0
     Append To List    ${tsdr_af}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:1 | grep DC=FLOWTABLESTATS | grep MN=PacketMatch | grep RK=Node:openflow:1,Table:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:1 | grep DC=FLOWTABLESTATS | grep MN=PacketMatch | grep RK=Node:openflow:1,Table:0
     Append To List    ${tsdr_pm}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=FLOWTABLESTATS | grep MN=PacketMatch | grep RK=Node:openflow:2,Table:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=FLOWTABLESTATS | grep MN=PacketMatch | grep RK=Node:openflow:2,Table:0
     Append To List    ${tsdr_pm}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:3 | grep DC=FLOWTABLESTATS | grep MN=PacketMatch | grep RK=Node:openflow:3,Table:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:3 | grep DC=FLOWTABLESTATS | grep MN=PacketMatch | grep RK=Node:openflow:3,Table:0
     Append To List    ${tsdr_pm}    ${ret_val1}
 
 Comparing Flow Table Metrics
@@ -91,6 +104,7 @@ Comparing Flow Table Metrics
         Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    5
     END
 
+
 *** Keywords ***
 Initialize the Tsdr Suite
     COMMENT    Initialize the Cassandra for TSDR
index 4b9d2b9e6456078a3f81169917cca27fb0b7a542..4845cd0aebcdb75033546b96f08e672880325f77 100644 (file)
@@ -1,30 +1,34 @@
 *** Settings ***
-Documentation     Test suite for Cassandra DataStore Queue Stats Verification
-Suite Setup       Initialize Cassandra Tables Metricval
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Cassandra DataStore Queue Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Initialize Cassandra Tables Metricval
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{QUEUE_METRICS}    TransmittedPackets    TransmittedBytes    TransmissionErrors
-${TSDR_QUEUESTATS}    tsdr:list QueueStats
-${QUERY_HEAD}     ${OPERATIONAL_NODES_API}/node
-${query_head1}    ${QUERY_HEAD}/openflow:2/node-connector/openflow:2:2/queue/
+@{QUEUE_METRICS}            TransmittedPackets    TransmittedBytes    TransmissionErrors
+${TSDR_QUEUESTATS}          tsdr:list QueueStats
+${QUERY_HEAD}               ${OPERATIONAL_NODES_API}/node
+${query_head1}              ${QUERY_HEAD}/openflow:2/node-connector/openflow:2:2/queue/
 @{tsdr_q0}
 @{tsdr_q2}
 @{tsdr_q1}
-${transmittedpackets}    flow-capable-node-connector-queue-statistics/transmitted-packets
-${transmittedbytes}    flow-capable-node-connector-queue-statistics/transmitted-bytes
-${transmittederrors}    flow-capable-node-connector-queue-statistics/transmission-errors
+${transmittedpackets}       flow-capable-node-connector-queue-statistics/transmitted-packets
+${transmittedbytes}         flow-capable-node-connector-queue-statistics/transmitted-bytes
+${transmittederrors}        flow-capable-node-connector-queue-statistics/transmission-errors
 @{openflow_q0}
 @{openflow_q2}
 @{openflow_q1}
 
+
 *** Test Cases ***
 Verification of TSDR Cassandra Feature Installation
     [Documentation]    Install and Verify the TSDR Cassandra Features
@@ -64,22 +68,31 @@ Getting all Tables from Openflow Plugin
 Verification of FlowStats-Attributes on Cassandra Data Store
     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
     Copy TSDR tables
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmissionErrors | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmissionErrors | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:0
     Append To List    ${tsdr_q0}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedPackets | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedPackets | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:0
     Append To List    ${tsdr_q0}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedBytes | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:0
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedBytes | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:0
     Append To List    ${tsdr_q0}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmissionErrors | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:1
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmissionErrors | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:1
     Append To List    ${tsdr_q1}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedPackets | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:1
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedPackets | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:1
     Append To List    ${tsdr_q1}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedBytes | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:1
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmissionErrors | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:2
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedBytes | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:1
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmissionErrors | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:2
     Append To List    ${tsdr_q2}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedPackets | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:2
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedPackets | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:2
     Append To List    ${tsdr_q2}    ${ret_val1}
-    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedBytes | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:2
+    ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client
+    ...    grep NID=openflow:2 | grep DC=QUEUESTATS | grep MN=TransmittedBytes | grep RK=Node:openflow:2,NodeConnector:openflow:2:2,Queue:2
     Append To List    ${tsdr_q2}    ${ret_val1}
 
 Comparing Queue Metrics
@@ -94,7 +107,8 @@ Comparing Queue Metrics
         Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    20
     END
 
-*** Keyword ***
+
+*** Keywords ***
 Configuration of Queue on Switch
     [Documentation]    Queue configuration on openvswitch
     Configure the Queue on Switch    s2-eth2
index 4fcd17f8d65caae93e1b53859a617d9facd9a6e2..ee2ac2f93f4cded49e283c8c0fcdde4b2e2d6e50 100644 (file)
@@ -1,12 +1,14 @@
 *** Settings ***
-Documentation     Test suite for Cassandra DataStore Syslog Verification
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Cassandra DataStore Syslog Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
 
 *** Test Cases ***
 Verification of TSDR Cassandra Feature Installation
index 9a0f10afb5391ba27ad14fde2f079f472d603762..6a0d37dc457a1568025b76a52a2df89e8708ebb0 100644 (file)
@@ -1,27 +1,31 @@
 *** Settings ***
-Documentation     Test suite for Cassandra DataStore Netflow Stats Verification
-Suite Setup       Initialize Netflow
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Cassandra DataStore Netflow Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Initialize Netflow
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-${IP_1}           10.0.0.1
-${IP_2}           10.0.0.2
-${NODE_ID}        127.0.0.1
-${engine_type}    11
-${engine_id}      11
-${nexthop}        0
-${port}           0
-${prot}           1
-${int1}           1
-${int2}           2
-${version}        5
+${IP_1}             10.0.0.1
+${IP_2}             10.0.0.2
+${NODE_ID}          127.0.0.1
+${engine_type}      11
+${engine_id}        11
+${nexthop}          0
+${port}             0
+${prot}             1
+${int1}             1
+${int2}             2
+${version}          5
+
 
 *** Test Cases ***
 Verifying TSDR Data Store For Netflow Entries
@@ -70,6 +74,7 @@ Verifying TSDR Data Store For Netflow Entries
     Should Contain    ${netflow}    dstMask=0
     Should Contain    ${netflow}    srcMask=0
 
+
 *** Keywords ***
 Initialize Netflow
     [Documentation]    Initialize Netflow setup and start collecting the netflow samples.
index a61751229136e15272bd839f91f1611d9e227e4a..43129d95a9b6e0a7dca9ad188bde3ee32086b63f 100644 (file)
@@ -1,26 +1,30 @@
 *** Settings ***
-Documentation     Test suite for ElasticSearch DataStore PortStats Verification
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           RequestsLibrary
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Resource          ../../../variables/Variables.robot
+Documentation       Test suite for ElasticSearch DataStore PortStats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             RequestsLibrary
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Resource            ../../../variables/Variables.robot
+
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
 @{tsdr_pl}
 @{tsdr_af}
 @{tsdr_pm}
-${packetlookup}    flow-table-statistics/packets-looked-up
-${activeflows}    flow-table-statistics/active-flows
-${packetmatched}    flow-table-statistics/packets-matched
+${packetlookup}                 flow-table-statistics/packets-looked-up
+${activeflows}                  flow-table-statistics/active-flows
+${packetmatched}                flow-table-statistics/packets-matched
 @{openflow_packetlookup}
 @{openflow_activeflows}
 @{openflow_packetmatched}
 
+
 *** Test Cases ***
 Verification of TSDR ElasticSearch Feature Installation
     [Documentation]    Install and Verify the Elastic Search Features
@@ -43,6 +47,7 @@ Comparing Flow Table Metrics
     Should Be Equal As Strings    ${tsdr_af}    ${openflow_activeflows}
     Should Be Equal As Strings    ${tsdr_pm}    ${openflow_packetmatched}
 
+
 *** Keywords ***
 Getting all Tables from Openflow Plugin
     [Documentation]    Getting Flow Table Stats Values from Openflow plugin
index a81ca1d98e9bcb7a759e83e2e93e6f56e52b63c1..e891fb5f49c4f4215dc322c322b78ef496d9af68 100644 (file)
@@ -1,20 +1,35 @@
 *** Settings ***
-Documentation     Test suite for H2 DataStore InterfaceMetrics Verification
-Suite Setup       Start Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for H2 DataStore InterfaceMetrics Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Start Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{INTERFACE_METRICS}    TransmittedPackets    TransmittedBytes    TransmitErrors    TransmitDrops    ReceivedPackets    ReceivedBytes    ReceiveOverRunError
-...               ReceiveFrameError    ReceiveErrors    ReceiveDrops    ReceiveCrcError    CollisionCount
-@{CATEGORY}       FlowGroupStats    FlowMeterStats    FlowStats    FlowTableStats    PortStats    QueueStats
-${TSDR_PORTSTATS}    tsdr:list PortStats
+@{INTERFACE_METRICS}
+...                     TransmittedPackets
+...                     TransmittedBytes
+...                     TransmitErrors
+...                     TransmitDrops
+...                     ReceivedPackets
+...                     ReceivedBytes
+...                     ReceiveOverRunError
+...                     ReceiveFrameError
+...                     ReceiveErrors
+...                     ReceiveDrops
+...                     ReceiveCrcError
+...                     CollisionCount
+@{CATEGORY}             FlowGroupStats    FlowMeterStats    FlowStats    FlowTableStats    PortStats    QueueStats
+${TSDR_PORTSTATS}       tsdr:list PortStats
+
 
 *** Test Cases ***
 Verification of TSDR H2 Feature Installation
@@ -25,7 +40,12 @@ Verification of TSDR H2 Feature Installation
     Verify Feature Is Installed    odl-tsdr-all
     Verify Feature Is Installed    odl-tsdr-H2-persistence
     Verify Feature Is Installed    odl-tsdr-core
-    Wait Until Keyword Succeeds    120s    1s    Verify the Metric is Collected?    log:display | grep "TSDR H2"    TSDR H2
+    Wait Until Keyword Succeeds
+    ...    120s
+    ...    1s
+    ...    Verify the Metric is Collected?
+    ...    log:display | grep "TSDR H2"
+    ...    TSDR H2
 
 Verification TSDR Command is exist in Help
     [Documentation]    Verify the TSDR List command on Help
index b55411a7da66a20cb0c27b8c080ff38494db4b2a..f6681e72d7b42ba193fd2d5d207cd148677b769a 100644 (file)
@@ -1,18 +1,22 @@
 *** Settings ***
-Documentation     Test suite for H2 DataStore Flow Metrics Verification
-Suite Setup       Start Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for H2 DataStore Flow Metrics Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Start Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{FLOW_METRICS}    PacketCount    ByteCount
-${TSDR_FLOWSTATS}    tsdr:list FlowStats
+@{FLOW_METRICS}         PacketCount    ByteCount
+${TSDR_FLOWSTATS}       tsdr:list FlowStats
+
 
 *** Test Cases ***
 Verification of TSDR FlowMetrics
index 505de3f11d71b4892f2693c5be681204c853765c..7924c1778c05c0c8523c9274faeea59d3f4ca08d 100644 (file)
@@ -1,24 +1,37 @@
 *** Settings ***
-Documentation     Test suite for H2 DataStore Flow Table Metrics Verification
-Suite Setup       Start Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for H2 DataStore Flow Table Metrics Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Start Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{FLOWTABLE_METRICS}    ActiveFlows    PacketLookup    PacketMatch
-${TSDR_FLOWTABLE_STATS}    tsdr:list FlowTableStats
+@{FLOWTABLE_METRICS}        ActiveFlows    PacketLookup    PacketMatch
+${TSDR_FLOWTABLE_STATS}     tsdr:list FlowTableStats
+
 
 *** Test Cases ***
 Verification of TSDR FlowTableStats
     [Documentation]    Verify the TSDR FlowiTableStats
-    Wait Until Keyword Succeeds    60s    1s    Verify the Metric is Collected?    ${TSDR_FLOWTABLE_STATS}| grep ActiveFlow    FLOWTABLESTATS
-    ${output}=    Issue Command On Karaf Console    ${TSDR_FLOWTABLE_STATS}| grep openflow:1 | head    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    180
+    Wait Until Keyword Succeeds
+    ...    60s
+    ...    1s
+    ...    Verify the Metric is Collected?
+    ...    ${TSDR_FLOWTABLE_STATS}| grep ActiveFlow
+    ...    FLOWTABLESTATS
+    ${output}=    Issue Command On Karaf Console
+    ...    ${TSDR_FLOWTABLE_STATS}| grep openflow:1 | head
+    ...    ${ODL_SYSTEM_IP}
+    ...    ${KARAF_SHELL_PORT}
+    ...    180
     FOR    ${list}    IN    @{FLOWTABLE_METRICS}
         Should Contain    ${output}    ${list}
     END
index d33b259fc5ebd1355b75e3f0d171a6cf5e60c783..c57fb48f21dab896a1ce945e262170574bf671ce 100644 (file)
@@ -1,25 +1,33 @@
 *** Settings ***
-Documentation     Test suite for H2 DataStore Queue Metrics Verification
-Suite Setup       Run Keywords    Start Tsdr Suite    Configuration of Queue on Switch
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for H2 DataStore Queue Metrics Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Run Keywords    Start Tsdr Suite    Configuration of Queue on Switch
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{QUEUE_METRICS}    TransmittedPackets    TransmittedBytes    TransmissionErrors
-${TSDR_QUEUE_STATS}    tsdr:list QueueStats
-@{CMD_LIST}       FlowGroupStats    FlowMeterStats    FlowStats    FlowTableStats    PortStats    QueueStats
+@{QUEUE_METRICS}        TransmittedPackets    TransmittedBytes    TransmissionErrors
+${TSDR_QUEUE_STATS}     tsdr:list QueueStats
+@{CMD_LIST}             FlowGroupStats    FlowMeterStats    FlowStats    FlowTableStats    PortStats    QueueStats
+
 
 *** Test Cases ***
 Verify the Queue Stats attributes exist thru Karaf console
     [Documentation]    Verify the QueueMetrics attributes exist on Karaf Console
     Wait Until Keyword Succeeds    60s    1s    Verify the Metric is Collected?    ${TSDR_QUEUE_STATS}    Transmitted
-    ${output}=    Issue Command On Karaf Console    ${TSDR_QUEUE_STATS}    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    30
+    ${output}=    Issue Command On Karaf Console
+    ...    ${TSDR_QUEUE_STATS}
+    ...    ${ODL_SYSTEM_IP}
+    ...    ${KARAF_SHELL_PORT}
+    ...    30
     FOR    ${list}    IN    @{QUEUE_METRICS}
         Should Contain    ${output}    ${list}
     END
@@ -43,7 +51,8 @@ Verify tsdr:purgeall command
         Should not Contain    ${out}    ${list}
     END
 
-*** Keyword ***
+
+*** Keywords ***
 Configuration of Queue on Switch
     [Documentation]    Queue configuration on openvswitch
     Configure the Queue on Switch    s2-eth2
index eb3df2ac64c552624ee6b1c38e53baf379116da2..ffd50b222cc11b7f8ef2bd83647ba6a374f685e4 100644 (file)
@@ -1,25 +1,33 @@
 *** Settings ***
-Documentation     Test suite for H2 DataStore FlowGroup Stats Verification
-Suite Setup       Run Keywords    Start TSDR suite with CPqD Switch    Configuration of FlowGroup on Switch
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for H2 DataStore FlowGroup Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Run Keywords    Start TSDR suite with CPqD Switch    Configuration of FlowGroup on Switch
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{FLOWGROUP_METRICS}    ByteCount    PacketCount    RefCount
-${TSDR_FLOWGROUPSTATS}    tsdr:list FlowGroupStats
-@{FLOWGROUP_HEADER}    MetricName    MetricValue    MetricCategory    MetricDetails
+@{FLOWGROUP_METRICS}        ByteCount    PacketCount    RefCount
+${TSDR_FLOWGROUPSTATS}      tsdr:list FlowGroupStats
+@{FLOWGROUP_HEADER}         MetricName    MetricValue    MetricCategory    MetricDetails
+
 
 *** Test Cases ***
 Verify the FlowGroup Stats attributes exist thru Karaf console
     [Documentation]    Verify the FlowGroupStats attributes exist on Karaf Console
     Wait Until Keyword Succeeds    120s    1s    Verify the Metric is Collected?    ${TSDR_FLOWGROUPSTATS}    ByteCount
-    ${output}=    Issue Command On Karaf Console    ${TSDR_FLOWGROUPSTATS}    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    30
+    ${output}=    Issue Command On Karaf Console
+    ...    ${TSDR_FLOWGROUPSTATS}
+    ...    ${ODL_SYSTEM_IP}
+    ...    ${KARAF_SHELL_PORT}
+    ...    30
     FOR    ${list}    IN    @{FLOWGROUP_METRICS}
         Should Contain    ${output}    ${list}
     END
@@ -42,13 +50,16 @@ Verify FlowGroupStats-Attributes on H2 Datastore using JDBC Client
         Should Contain    ${output}    ${list}
     END
 
-*** Keyword ***
+
+*** Keywords ***
 Start TSDR suite with CPqD Switch
     Start Tsdr Suite    user
 
 Configuration of FlowGroup on Switch
     [Documentation]    FlowGroup configuration on CPqD
     Run Command On Remote System    ${TOOLS_SYSTEM_IP}    sudo dpctl unix:/tmp/s1 group-mod cmd=add,group=1,type=all
-    Run Command On Remote System    ${TOOLS_SYSTEM_IP}    sudo dpctl unix:/tmp/s1 flow-mod table=0,cmd=add eth_type=0x800,eth_src=00:01:02:03:04:05 apply:group=1
+    Run Command On Remote System
+    ...    ${TOOLS_SYSTEM_IP}
+    ...    sudo dpctl unix:/tmp/s1 flow-mod table=0,cmd=add eth_type=0x800,eth_src=00:01:02:03:04:05 apply:group=1
     Run Command On Remote System    ${TOOLS_SYSTEM_IP}    sudo dpctl unix:/tmp/s1 ping 10
     Run Command On Remote System    ${TOOLS_SYSTEM_IP}    sudo dpctl unix:/tmp/s2 ping 10
index d38a0ec4728b1fa5cb367100415d65930b6aaa08..efe6d15afc8a21c2f006f458b7fde9a47deac2d8 100644 (file)
@@ -1,25 +1,38 @@
 *** Settings ***
-Documentation     Test suite for H2 DataStore FlowMeter Stats Verification
-Suite Setup       Run Keywords    Start TSDR suite with CPqD Switch    Configuration of FlowMeter on Switch
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for H2 DataStore FlowMeter Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Run Keywords    Start TSDR suite with CPqD Switch    Configuration of FlowMeter on Switch
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{FLOWMETER_METRICS}    ByteInCount    PacketInCount    FlowCount
-${TSDR_FLOWMETERSTATS}    tsdr:list FlowMeterStats
-@{FLOWMETER_HEADER}    MetricName    MetricValue    MetricCategory    MetricDetails
+@{FLOWMETER_METRICS}        ByteInCount    PacketInCount    FlowCount
+${TSDR_FLOWMETERSTATS}      tsdr:list FlowMeterStats
+@{FLOWMETER_HEADER}         MetricName    MetricValue    MetricCategory    MetricDetails
+
 
 *** Test Cases ***
 Verify the FlowMeter Stats attributes exist thru Karaf console
     [Documentation]    Verify the FlowMeterStats attributes exist on Karaf Console
-    Wait Until Keyword Succeeds    120s    1s    Verify the Metric is Collected?    ${TSDR_FLOWMETERSTATS}    ByteInCount
-    ${output}=    Issue Command On Karaf Console    ${TSDR_FLOWMETERSTATS}    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    30
+    Wait Until Keyword Succeeds
+    ...    120s
+    ...    1s
+    ...    Verify the Metric is Collected?
+    ...    ${TSDR_FLOWMETERSTATS}
+    ...    ByteInCount
+    ${output}=    Issue Command On Karaf Console
+    ...    ${TSDR_FLOWMETERSTATS}
+    ...    ${ODL_SYSTEM_IP}
+    ...    ${KARAF_SHELL_PORT}
+    ...    30
     FOR    ${list}    IN    @{FLOWMETER_METRICS}
         Should Contain    ${output}    ${list}
     END
@@ -54,13 +67,18 @@ Verification TSDR Command shouldnot exist in help
     ${output}=    Issue Command On Karaf Console    tsdr\t    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}
     Should not Contain    ${output}    tsdr:list
 
-*** Keyword ***
+
+*** Keywords ***
 Start TSDR suite with CPqD Switch
     Start Tsdr Suite    user
 
 Configuration of FlowMeter on Switch
     [Documentation]    FlowMeter configuration on CPqD
-    Run Command On Remote System    ${TOOLS_SYSTEM_IP}    sudo dpctl unix:/tmp/s1 meter-mod cmd=add,flags=1,meter=1 drop:rate=100
-    Run Command On Remote System    ${TOOLS_SYSTEM_IP}    sudo dpctl unix:/tmp/s1 flow-mod table=0,cmd=add in_port=1 meter:1 apply:output=2
+    Run Command On Remote System
+    ...    ${TOOLS_SYSTEM_IP}
+    ...    sudo dpctl unix:/tmp/s1 meter-mod cmd=add,flags=1,meter=1 drop:rate=100
+    Run Command On Remote System
+    ...    ${TOOLS_SYSTEM_IP}
+    ...    sudo dpctl unix:/tmp/s1 flow-mod table=0,cmd=add in_port=1 meter:1 apply:output=2
     Run Command On Remote System    ${TOOLS_SYSTEM_IP}    sudo dpctl unix:/tmp/s1 ping 10
     Run Command On Remote System    ${TOOLS_SYSTEM_IP}    sudo dpctl unix:/tmp/s2 ping 10
index acfbf45b8169e6d3f8bb4f44f4e87652360de76f..06ce821789dcde0566bead1713b6353d36c12233 100644 (file)
@@ -1,22 +1,37 @@
 *** Settings ***
-Documentation     Test suite for Hbase DataStore PortStats Verification
-Suite Setup       Initialize the Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Metadata          https://bugs.opendaylight.org/show_bug.cgi?id=5068    ${EMPTY}
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           RequestsLibrary
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/CompareStream.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Hbase DataStore PortStats Verification
+Metadata            https://bugs.opendaylight.org/show_bug.cgi?id=5068    ${EMPTY}
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             RequestsLibrary
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/CompareStream.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Initialize the Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{INTERFACE_METRICS}    TransmittedPackets    TransmittedBytes    TransmitErrors    TransmitDrops    ReceivedPackets    ReceivedBytes    ReceiveOverRunError
-...               ReceiveFrameError    ReceiveErrors    ReceiveDrops    ReceiveCrcError    CollisionCount
-&{HEADERS_QUERY}    Content-Type=application/json    Content-Type=application/json
+@{INTERFACE_METRICS}
+...                     TransmittedPackets
+...                     TransmittedBytes
+...                     TransmitErrors
+...                     TransmitDrops
+...                     ReceivedPackets
+...                     ReceivedBytes
+...                     ReceiveOverRunError
+...                     ReceiveFrameError
+...                     ReceiveErrors
+...                     ReceiveDrops
+...                     ReceiveCrcError
+...                     CollisionCount
+&{HEADERS_QUERY}        Content-Type=application/json    Content-Type=application/json
+
 
 *** Test Cases ***
 Init Variables
@@ -63,6 +78,7 @@ Verify Configuration Interval-change
     Wait Until Keyword Succeeds    5x    3 sec    Verify TSDR Configuration Interval    ${default_poll}
     [Teardown]    Report_Failure_Due_To_Bug    5068
 
+
 *** Keywords ***
 Init Variables Master
     [Documentation]    Sets variables specific to latest(master) version
@@ -70,7 +86,9 @@ Init Variables Master
     ...    QUEUESTATS
     Set Suite Variable    ${TSDR_PORTSTATS}    tsdr:list PORTSTATS
     Set Suite Variable    ${CONFIG_INTERVAL}    /restconf/config/tsdr-openflow-statistics-collector:TSDROSCConfig
-    Set Suite Variable    ${OPER_INTERVAL}    /restconf/operations/tsdr-openflow-statistics-collector:setPollingInterval
+    Set Suite Variable
+    ...    ${OPER_INTERVAL}
+    ...    /restconf/operations/tsdr-openflow-statistics-collector:setPollingInterval
     Set Suite Variable    ${default_poll}    15000
     set Suite Variable    ${non_default_poll}    20000
     set Suite Variable    ${node_connector}    Node:openflow:1,NodeConnector:1
@@ -82,17 +100,17 @@ Initialize the Tsdr Suite
     Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_QUERY}
 
 Verify TSDR Configuration Interval
-    [Arguments]    ${interval}
     [Documentation]    Verify Configuration interval of TSDR Collection
-    ${resp}    RequestsLibrary.Get Request    session    ${CONFIG_INTERVAL}
+    [Arguments]    ${interval}
+    ${resp}=    RequestsLibrary.Get Request    session    ${CONFIG_INTERVAL}
     Should Be Equal As Strings    ${resp.status_code}    200
     Should Contain    ${resp.content}    ${interval}
 
 Post TSDR Configuration Interval
-    [Arguments]    ${interval}
     [Documentation]    Configuration TSDR collection interval ${interval}
-    ${p1}    Create Dictionary    interval=${interval}
-    ${p2}    Create Dictionary    input=${p1}
+    [Arguments]    ${interval}
+    ${p1}=    Create Dictionary    interval=${interval}
+    ${p2}=    Create Dictionary    input=${p1}
     ${p2_json}=    json.dumps    ${p2}
-    ${resp}    RequestsLibrary.Post Request    session    ${OPER_INTERVAL}    data=${p2_json}
+    ${resp}=    RequestsLibrary.Post Request    session    ${OPER_INTERVAL}    data=${p2_json}
     Should Be Equal As Strings    ${resp.status_code}    200
index 1ab9f624b01d4da31c3bbac611466d62266d484e..9eba602eb218e02127e34b0657227b84f4ffa46a 100644 (file)
@@ -1,18 +1,22 @@
 *** Settings ***
-Documentation     Test suite for Hbase DataStore Flow Stats Verification
-Suite Setup       Start Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/CompareStream.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Hbase DataStore Flow Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/CompareStream.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Start Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{FLOW_METRICS}    PacketCount    ByteCount
+@{FLOW_METRICS}     PacketCount    ByteCount
+
 
 *** Test Cases ***
 Init Variables
@@ -43,6 +47,7 @@ Verification of FlowMetrics-BytesCount on HBase Client
     Should Contain    ${Line1}    ByteCount
     Verify the Metrics Attributes on Hbase Client    ByteCount    ${node_connector}    ${flowstats}
 
+
 *** Keywords ***
 Init Variables Master
     [Documentation]    Sets variables specific to latest(master) version
index 5a2922fd307055a9a0015c64ca21be8696715e26..9c064fbd6f02c723479162c8940bbddbfcf76ff1 100644 (file)
@@ -1,18 +1,22 @@
 *** Settings ***
-Documentation     Test suite for Hbase DataStore Flow Table Stats Verification
-Suite Setup       Start Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/CompareStream.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Hbase DataStore Flow Table Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/CompareStream.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Start Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-${TSDR_FLOWTABLE_STATS}    tsdr:list FLOWTABLESTATS
+${TSDR_FLOWTABLE_STATS}     tsdr:list FLOWTABLESTATS
+
 
 *** Test Cases ***
 Init Variables
@@ -22,7 +26,11 @@ Init Variables
 Verification of TSDR FlowTableMetrics
     [Documentation]    Verify the TSDR FlowTableMetrics
     Wait Until Keyword Succeeds    120s    1s    Verify the Metric is Collected?    ${TSDR_FLOWTABLE_STATS}    openflow
-    ${output}=    Issue Command On Karaf Console    ${TSDR_FLOWTABLE_STATS}    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    30
+    ${output}=    Issue Command On Karaf Console
+    ...    ${TSDR_FLOWTABLE_STATS}
+    ...    ${ODL_SYSTEM_IP}
+    ...    ${KARAF_SHELL_PORT}
+    ...    30
     Should Contain    ${output}    openflow
 
 Verification of FlowTableMetrics on Karaf Console
@@ -43,6 +51,7 @@ Verification of FlowTableMetrics-PacketLookup on HBase Client
     [Documentation]    Verify the FlowTableMetrics has been updated on HBase Datastore
     Verify the Metrics Attributes on Hbase Client    PacketLookup    ${node_connector}    ${flowtablestats}
 
+
 *** Keywords ***
 Init Variables Master
     [Documentation]    Sets variables specific to latest(master) version
index d95f09f62e7ef85dfc6f3f2761319ad33347abfc..bff172f01541e7eecc2fa65e6c650c2d3c0e157f 100644 (file)
@@ -1,19 +1,23 @@
 *** Settings ***
-Documentation     Test suite for Hbase DataStore Queue Stats Verification
-Suite Setup       Run Keywords    Start Tsdr Suite    Configuration of Queue on Switch
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/CompareStream.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Hbase DataStore Queue Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/CompareStream.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Run Keywords    Start Tsdr Suite    Configuration of Queue on Switch
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
 @{QUEUE_METRICS}    TransmittedPackets    TransmittedBytes    TransmissionErrors
 
+
 *** Test Cases ***
 Init Variables
     [Documentation]    Initialize ODL version specific variables using resource CompareStream.
@@ -45,6 +49,7 @@ Verification of QueueMetrics-TransmissionErrors on HBase Client
     [Documentation]    Verify the QueueMetrics has been updated on HBase Datastore
     Verify the Metrics Attributes on Hbase Client    TransmissionErrors    ${node_connector}    ${queuestats}
 
+
 *** Keywords ***
 Configuration of Queue on Switch
     [Documentation]    Queue configuration on openvswitch
index 0fb69ceca5a34f9c3d29cc73cc64d0e452990a66..e398c331ff5df82d3361d96f4f065fcee148be0c 100644 (file)
@@ -1,12 +1,14 @@
 *** Settings ***
-Documentation     Test suite for HBase Syslog Verification
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for HBase Syslog Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
 
 *** Test Cases ***
 Verification of TSDR HBase Feature Installation
index 5f9a7571da270d60f101476622a2d8ec609fd911..b580f43f8fdb89935e4e395e153711a0f9ce1b4b 100644 (file)
@@ -1,32 +1,37 @@
 *** Settings ***
-Documentation     Test suite for Hbase DataStore Netflow Stats Verification
-Suite Setup       Initialize Netflow
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for Hbase DataStore Netflow Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Initialize Netflow
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-${IP_1}           10.0.0.1
-${IP_2}           10.0.0.2
-${NODE_ID}        127.0.0.1
-${engine_type}    11
-${engine_id}      11
-${nextHop}        0
-${port}           0
-${protocol}       1
-${int1}           1
-${int2}           2
-${version}        5
+${IP_1}             10.0.0.1
+${IP_2}             10.0.0.2
+${NODE_ID}          127.0.0.1
+${engine_type}      11
+${engine_id}        11
+${nextHop}          0
+${port}             0
+${protocol}         1
+${int1}             1
+${int2}             2
+${version}          5
+
 
 *** Test Cases ***
 Verification of Full Record Text for Netflow Dumps
     [Documentation]    Verify the Netflow Record Text Hbase client
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1' , LIMIT => 10, FILTER => "ValueFilter( =, 'regexstring:srcAddr=${IP_2}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1' , LIMIT => 10, FILTER => "ValueFilter( =, 'regexstring:srcAddr=${IP_2}' )" }
     Should Contain    ${out}    srcAddr=${IP_2}
     Should Contain    ${out}    dstAddr=${IP_1}
     Should Contain    ${out}    srcPort=${port}
@@ -36,7 +41,8 @@ Verification of Full Record Text for Netflow Dumps
     Should Contain    ${out}    engine_id
     Should Contain    ${out}    input=${int2}
     Should Contain    ${out}    output=${int1}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1' , LIMIT => 10, FILTER => "ValueFilter( =, 'regexstring:srcAddr=${IP_1}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1' , LIMIT => 10, FILTER => "ValueFilter( =, 'regexstring:srcAddr=${IP_1}' )" }
     Should Contain    ${out}    srcAddr=${IP_1}
     Should Contain    ${out}    dstAddr=${IP_2}
     Should Contain    ${out}    srcPort=${port}
@@ -59,31 +65,43 @@ Verification of Full Record Text for Netflow Dumps
 
 Verification of Metric Record for Netflow Dumps
     [Documentation]    Verify the Netflow Metric Record Hbase client
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:dstAddr' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${IP_1}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:dstAddr' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${IP_1}' )" }
     Should Contain    ${out}    value=${IP_1}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:srcAddr' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${IP_1}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:srcAddr' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${IP_1}' )" }
     Should Contain    ${out}    value=${IP_1}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:dstAddr' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${IP_2}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:dstAddr' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${IP_2}' )" }
     Should Contain    ${out}    value=${IP_2}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:srcAddr' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${IP_2}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:srcAddr' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${IP_2}' )" }
     Should Contain    ${out}    value=${IP_2}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:input' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int1}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:input' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int1}' )" }
     Should Contain    ${out}    value=${int1}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:output' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int2}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:output' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int2}' )" }
     Should Contain    ${out}    value=${int2}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:input' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int2}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:input' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int2}' )" }
     Should Contain    ${out}    value=${int2}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:output' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int1}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:output' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${int1}' )" }
     Should Contain    ${out}    value=${int1}
     ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:flowDuration' , LIMIT => 10}
     Should Contain    ${out}    flowDuration
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:nextHop' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${nextHop}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:nextHop' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${nextHop}' )" }
     Should Contain    ${out}    value=${nextHop}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:version' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${version}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:version' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${version}' )" }
     Should Contain    ${out}    value=${version}
-    ${out}=    Query the Data from HBaseClient    scan 'NETFLOW',{ COLUMNS => 'c1:protocol' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${protocol}' )" }
+    ${out}=    Query the Data from HBaseClient
+    ...    scan 'NETFLOW',{ COLUMNS => 'c1:protocol' , LIMIT => 10, FILTER => "ValueFilter( =, 'binaryprefix:${protocol}' )" }
     Should Contain    ${out}    value=${protocol}
 
+
 *** Keywords ***
 Initialize Netflow
     [Documentation]    Initialize Netflow setup and start collecting the netflow samples.
index a53a4d1dc966b3209febc2e25a13f52007f23299..9c10b66ae96e235efd26a77a47cd48ab083b28a9 100644 (file)
@@ -1,19 +1,34 @@
 *** Settings ***
-Documentation     Test suite for HSQLDB DataStore InterfaceMetrics Verification
-Suite Setup       Start Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/CompareStream.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for HSQLDB DataStore InterfaceMetrics Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/CompareStream.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Start Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{INTERFACE_METRICS}    TransmittedPackets    TransmittedBytes    TransmitErrors    TransmitDrops    ReceivedPackets    ReceivedBytes    ReceiveOverRunError
-...               ReceiveFrameError    ReceiveErrors    ReceiveDrops    ReceiveCrcError    CollisionCount
+@{INTERFACE_METRICS}
+...                     TransmittedPackets
+...                     TransmittedBytes
+...                     TransmitErrors
+...                     TransmitDrops
+...                     ReceivedPackets
+...                     ReceivedBytes
+...                     ReceiveOverRunError
+...                     ReceiveFrameError
+...                     ReceiveErrors
+...                     ReceiveDrops
+...                     ReceiveCrcError
+...                     CollisionCount
+
 
 *** Test Cases ***
 Init Variables
@@ -23,7 +38,12 @@ Init Variables
 Verification of TSDR HSQLDB Feature Installation
     [Documentation]    Install and Verify the TSDR HSQLDB Datastore and JDBC
     COMMENT    Install a Feature    odl-tsdr-hsqldb    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    60
-    COMMENT    Install a Feature    odl-tsdr-openflow-statistics-collector    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    60
+    COMMENT
+    ...    Install a Feature
+    ...    odl-tsdr-openflow-statistics-collector
+    ...    ${ODL_SYSTEM_IP}
+    ...    ${KARAF_SHELL_PORT}
+    ...    60
     Verify Feature Is Installed    ${HSQLDB_INSTALL}
     Verify Feature Is Installed    odl-tsdr-core
 
@@ -45,6 +65,7 @@ Verify PortStats On Karaf console
         Should Contain    ${output}    ${list}
     END
 
+
 *** Keywords ***
 Init Variables Master
     [Documentation]    Sets variables specific to latest(master) version
index 5713e4c84d3aad6279d65ae12d0a16a4e8c82bcf..e63ea933cc1391c3e57ac76911eb4872ada72c1e 100644 (file)
@@ -1,18 +1,22 @@
 *** Settings ***
-Documentation     Test suite for HSQLDB DataStore Flow Metrics Verification
-Suite Setup       Start Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/CompareStream.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for HSQLDB DataStore Flow Metrics Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/CompareStream.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Start Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-@{FLOW_METRICS}    PacketCount    ByteCount
+@{FLOW_METRICS}     PacketCount    ByteCount
+
 
 *** Test Cases ***
 Init Variables
@@ -27,6 +31,7 @@ Verification of TSDR FlowMetrics
         Should Contain    ${output}    ${list}
     END
 
+
 *** Keywords ***
 Init Variables Master
     [Documentation]    Sets variables specific to latest(master) version
index f78bdcbbea24eecbc20682dfb5975e7060c1da3d..935c06f3c65df40e297eda23b92a74d9fafa2fb2 100644 (file)
@@ -1,19 +1,23 @@
 *** Settings ***
-Documentation     Test suite for HSQLDB DataStore Flow Table Metrics Verification
-Suite Setup       Start Tsdr Suite
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/CompareStream.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for HSQLDB DataStore Flow Table Metrics Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/CompareStream.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Start Tsdr Suite
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
 @{FLOWTABLE_METRICS}    ActiveFlows    PacketLookup    PacketMatch
 
+
 *** Test Cases ***
 Init Variables
     [Documentation]    Initialize ODL version specific variables
@@ -21,12 +25,22 @@ Init Variables
 
 Verification of TSDR FLOWTABLESTATS
     [Documentation]    Verify the TSDR FlowiTableStats
-    Wait Until Keyword Succeeds    60s    1s    Verify the Metric is Collected?    ${TSDR_FLOWTABLE_STATS}| grep ActiveFlow | grep openflow:1    FLOWTABLESTATS
-    ${output}=    Issue Command On Karaf Console    ${TSDR_FLOWTABLE_STATS}| grep openflow:1 | head    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    180
+    Wait Until Keyword Succeeds
+    ...    60s
+    ...    1s
+    ...    Verify the Metric is Collected?
+    ...    ${TSDR_FLOWTABLE_STATS}| grep ActiveFlow | grep openflow:1
+    ...    FLOWTABLESTATS
+    ${output}=    Issue Command On Karaf Console
+    ...    ${TSDR_FLOWTABLE_STATS}| grep openflow:1 | head
+    ...    ${ODL_SYSTEM_IP}
+    ...    ${KARAF_SHELL_PORT}
+    ...    180
     FOR    ${list}    IN    @{FLOWTABLE_METRICS}
         Should Contain    ${output}    ${list}
     END
 
+
 *** Keywords ***
 Init Variables Master
     [Documentation]    Sets variables specific to latest(master) version
index 69e0de9f41a116ecca97a7a8742c0bb6bd7f2b5b..80777e1fb1ed77ecb1e2ea8e39e426163f63e596 100644 (file)
@@ -1,19 +1,23 @@
 *** Settings ***
-Documentation     Test suite for HSQLDB DataStore Queue Metrics Verification
-Suite Setup       Run Keywords    Start Tsdr Suite    Configuration of Queue on Switch
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/CompareStream.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for HSQLDB DataStore Queue Metrics Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/CompareStream.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Run Keywords    Start Tsdr Suite    Configuration of Queue on Switch
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
 @{QUEUE_METRICS}    TransmittedPackets    TransmittedBytes    TransmissionErrors
 
+
 *** Test Cases ***
 Init Variables
     [Documentation]    Initialize ODL version specific variables
@@ -22,12 +26,17 @@ Init Variables
 Verify the QueueStats attributes exist thru Karaf console
     [Documentation]    Verify the QueueMetrics attributes exist on Karaf Console
     Wait Until Keyword Succeeds    60s    1s    Verify the Metric is Collected?    ${TSDR_QUEUE_STATS}    Transmitted
-    ${output}=    Issue Command On Karaf Console    ${TSDR_QUEUE_STATS}    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    30
+    ${output}=    Issue Command On Karaf Console
+    ...    ${TSDR_QUEUE_STATS}
+    ...    ${ODL_SYSTEM_IP}
+    ...    ${KARAF_SHELL_PORT}
+    ...    30
     FOR    ${list}    IN    @{QUEUE_METRICS}
         Should Contain    ${output}    ${list}
     END
 
-*** Keyword ***
+
+*** Keywords ***
 Configuration of Queue on Switch
     [Documentation]    Queue configuration on openvswitch
     Configure the Queue on Switch    s2-eth2
index d06003e9aa65afee2f906a18508bf5cb2da733c3..01aed232f1c073bd67fae5c47137b69c59f6e468 100644 (file)
@@ -1,12 +1,14 @@
 *** Settings ***
-Documentation     Test suite for HSQLDB DataStore Syslog Stats Verification
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for HSQLDB DataStore Syslog Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
 
 *** Test Cases ***
 Verification of TSDR HSQLDB Feature Installation
index 448f1f332b4a730c35e01c3f0d83d811142b588f..deb1a48d50689fee609f4c965f743cc9769f8f8d 100644 (file)
@@ -1,27 +1,31 @@
 *** Settings ***
-Documentation     Test suite for HSQLDB DataStore NetFlow Stats Verification
-Suite Setup       Initialize Netflow
-Suite Teardown    Stop Tsdr Suite
-Library           SSHLibrary
-Library           Collections
-Library           String
-Library           ../../../libraries/Common.py
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/TsdrUtils.robot
-Variables         ../../../variables/Variables.py
+Documentation       Test suite for HSQLDB DataStore NetFlow Stats Verification
+
+Library             SSHLibrary
+Library             Collections
+Library             String
+Library             ../../../libraries/Common.py
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/TsdrUtils.robot
+Variables           ../../../variables/Variables.py
+
+Suite Setup         Initialize Netflow
+Suite Teardown      Stop Tsdr Suite
+
 
 *** Variables ***
-${IP_1}           10.0.0.1
-${IP_2}           10.0.0.2
-${NODE_ID}        127.0.0.1
-${engine_type}    11
-${engine_id}      11
-${nexthop}        0
-${port}           0
-${prot}           1
-${int1}           1
-${int2}           2
-${version}        5
+${IP_1}             10.0.0.1
+${IP_2}             10.0.0.2
+${NODE_ID}          127.0.0.1
+${engine_type}      11
+${engine_id}        11
+${nexthop}          0
+${port}             0
+${prot}             1
+${int1}             1
+${int2}             2
+${version}          5
+
 
 *** Test Cases ***
 Verification of Full Record Text for Netflow Dumps
@@ -58,6 +62,7 @@ Verification of Full Record Text for Netflow Dumps
     Should Contain    ${out}    dstMask=0
     Should Contain    ${out}    srcMask=0
 
+
 *** Keywords ***
 Initialize Netflow
     [Documentation]    Initialize Mininet topology and check if netflow data is getting collected