Removed code for no more active genius project.
JIRA: INTTEST-140
Change-Id: Ia509dbd4c6faa5361c161c015adffbc70bb607f7
Signed-off-by: Oleksandr Zharov <oleksandr.zharov@pantheon.tech>
+++ /dev/null
-*** Settings ***
-Documentation This suite is a common keywords file for genius project.
-
-Library Collections
-Library OperatingSystem
-Library RequestsLibrary
-Library SSHLibrary
-Library string
-Resource ClusterManagement.robot
-Resource DataModels.robot
-Resource KarafKeywords.robot
-Resource ODLTools.robot
-Resource OVSDB.robot
-Resource ToolsSystem.robot
-Resource Utils.robot
-Resource VpnOperations.robot
-Resource ../variables/Variables.robot
-Resource ../variables/netvirt/Variables.robot
-
-
-*** Variables ***
-@{itm_created} TZA
-${genius_config_dir} ${CURDIR}/../variables/genius
-${Bridge} ${INTEGRATION_BRIDGE}
-${DEFAULT_MONITORING_INTERVAL} Tunnel Monitoring Interval (for VXLAN tunnels): 1000
-@{GENIUS_DIAG_SERVICES} OPENFLOW IFM ITM DATASTORE OVSDB
-${gateway_ip} 0.0.0.0
-${port_name} br-int-eth1
-${VLAN} 100
-${NO_VLAN} 0
-${DEFAULT_TRANSPORT_ZONE} default-transport-zone
-${SET_LOCAL_IP} sudo ovs-vsctl set O . other_config:local_ip=
-${REMOVE_LOCAL_IP} sudo ovs-vsctl remove O . other_config local_ip
-${odl_stream_check } ${Stream_dict}[${ODL_STREAM}] <= ${Stream_dict}[neon]
-
-
-*** Keywords ***
-Genius Suite Setup
- [Documentation] Create Rest Session to http://${ODL_SYSTEM_IP}:${RESTCONFPORT}
- Genius.Start Suite
- RequestsLibrary.Create Session
- ... session
- ... http://${ODL_SYSTEM_IP}:${RESTCONFPORT}
- ... auth=${AUTH}
- ... headers=${HEADERS}
- ... timeout=5
-
-Genius Suite Teardown
- [Documentation] Delete all sessions
- RequestsLibrary.Delete All Sessions
- Genius.Stop Suite
-
-Start Suite
- [Documentation] Initial setup for Genius test suites
- Wait Until Keyword Succeeds
- ... 60
- ... 2
- ... ClusterManagement.Check Status Of Services Is OPERATIONAL
- ... @{GENIUS_DIAG_SERVICES}
- KarafKeywords.Setup_Karaf_Keywords
- ToolsSystem.Get Tools System Nodes Data
- ${karaf_debug_enabled} = BuiltIn.Get_Variable_Value ${KARAF_DEBUG} ${False}
- IF ${karaf_debug_enabled}
- KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set DEBUG org.opendaylight.genius
- END
- Genius.Set Switch Configuration
- ${check} = BuiltIn.Wait Until Keyword Succeeds
- ... 30
- ... 10
- ... Check Port Status Is ESTABLISHED
- ... ${ODL_OF_PORT_6653}
- ... @{TOOLS_SYSTEM_ALL_IPS}
- ${check} = BuiltIn.Wait Until Keyword Succeeds
- ... 30
- ... 10
- ... Check Port Status Is ESTABLISHED
- ... ${OVSDBPORT}
- ... @{TOOLS_SYSTEM_ALL_IPS}
- Genius.Build Dpn List
- @{SWITCH_DATA} = Collections.Combine Lists ${DPN_ID_LIST} ${TOOLS_SYSTEM_ALL_IPS}
- BuiltIn.Set Suite Variable @{SWITCH_DATA}
- ${substr} = Should Match Regexp ${TOOLS_SYSTEM_1_IP} [0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\.
- ${SUBNET} = Catenate ${substr}0
- BuiltIn.Set Suite Variable ${SUBNET}
-
-Stop Suite
- [Documentation] stops all connections and deletes all the bridges available on OVS
- FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
- SSHLibrary.Switch Connection ${TOOLS_SYSTEM_ALL_CONN_IDS}[${tool_system_index}]
- SSHLibrary.Execute Command sudo ovs-vsctl del-br ${Bridge}
- SSHLibrary.Execute Command sudo ovs-vsctl del-manager
- SSHLibrary.Write exit
- SSHLibrary.Close Connection
- END
-
-Check Port Status Is ESTABLISHED
- [Documentation] This keyword will check whether ports are established or not on OVS
- [Arguments] ${port} @{tools_ips}
- FOR ${tools_ip} IN @{tools_ips}
- ${check_establishment} = Utils.Run Command On Remote System And Log
- ... ${tools_ip}
- ... netstat -anp | grep ${port}
- BuiltIn.Should Contain ${check_establishment} ESTABLISHED
- END
- RETURN ${check_establishment}
-
-Create Vteps
- [Documentation] This keyword creates VTEPs between OVS
- [Arguments] ${vlan_id} ${gateway_ip}
- ${body} = Genius.Set Json ${vlan_id} ${gateway_ip} ${SUBNET} @{TOOLS_SYSTEM_ALL_IPS}
- ${resp} = RequestsLibrary.Put Request
- ... session
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/TZA
- ... data=${body}
- BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
-
-Set Json
- [Documentation] Sets Json with the values passed for it.
- [Arguments] ${vlan} ${gateway_ip} ${subnet} @{tools_ips}
- IF ${odl_stream_check }
- ${body} = OperatingSystem.Get File ${genius_config_dir}/Itm_creation_no_vlan_below_sodium.json
- ELSE
- ${body} = OperatingSystem.Get File ${genius_config_dir}/Itm_creation_no_vlan_sodium_and_above.json
- END
- IF ${odl_stream_check }
- ${body} = String.Replace String ${body} 1.1.1.1 ${subnet}
- ELSE
- ${body} = BuiltIn.Set Variable ${body}
- END
- IF ${odl_stream_check }
- ${body} = String.Replace String ${body} "vlan-id": 0 "vlan-id": ${vlan}
- ELSE
- ${body} = BuiltIn.Set Variable ${body}
- END
- IF ${odl_stream_check }
- ${body} = String.Replace String ${body} "gateway-ip": "0.0.0.0" "gateway-ip": "${gateway_ip}"
- ELSE
- ${body} = BuiltIn.Set Variable ${body}
- END
- FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
- ${body} = String.Replace String
- ... ${body}
- ... "dpn-id": 10${tool_system_index}
- ... "dpn-id": ${DPN_ID_LIST[${tool_system_index}]}
- ${body} = String.Replace String
- ... ${body}
- ... "ip-address": "${tool_system_index+2}.${tool_system_index+2}.${tool_system_index+2}.${tool_system_index+2}"
- ... "ip-address": "${tools_ips}[${tool_system_index}]"
- END
- BuiltIn.Log ${body}
- RETURN ${body} # returns complete json that has been updated
-
-Build Dpn List
- [Documentation] This keyword builds the list of DPN ids after configuring OVS bridges on each of the TOOLS_SYSTEM_IPs.
- @{DPN_ID_LIST} = BuiltIn.Create List
- FOR ${tools_ip} IN @{TOOLS_SYSTEM_ALL_IPS}
- ${output} = Utils.Run Command On Remote System And Log
- ... ${tools_ip}
- ... sudo ovs-ofctl show -O Openflow13 ${Bridge} | head -1 | awk -F "dpid:" '{ print $2 }'
- ${dpn_id} = Utils.Run Command On Remote System And Log ${tools_ip} echo \$\(\(16\#${output}\)\)
- Collections.Append To List ${DPN_ID_LIST} ${dpn_id}
- END
- BuiltIn.Set Suite Variable @{DPN_ID_LIST}
-
-BFD Suite Teardown
- [Documentation] Run at end of BFD suite
- Genius.Delete All Vteps
- Genius.Stop Suite
-
-Delete All Vteps
- [Documentation] This will delete vtep.
- ${resp} = RequestsLibrary.Delete Request session ${CONFIG_API}/itm:transport-zones/
- BuiltIn.Should Be Equal As Strings ${resp.status_code} 200
- BuiltIn.Wait Until Keyword Succeeds 30 5 Genius.Verify Tunnel Delete on DS tun
-
-Genius Test Setup
- [Documentation] Genius test case setup
- BuiltIn.Run Keyword And Ignore Error KarafKeywords.Log_Testcase_Start_To_Controller_Karaf
-
-Genius Test Teardown
- [Arguments] ${data_models} ${test_name}=${SUITE_NAME}.${TEST_NAME} ${fail}=${FAIL_ON_EXCEPTIONS}
- FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
- OVSDB.Get DumpFlows And Ovsconfig ${TOOLS_SYSTEM_ALL_CONN_IDS}[${tool_system_index}] ${Bridge}
- END
- BuiltIn.Run Keyword And Ignore Error DataModels.Get Model Dump ${ODL_SYSTEM_IP} ${data_models}
- KarafKeywords.Fail If Exceptions Found During Test ${test_name} fail=${fail}
- ODLTools.Get All test_name=${test_name}
-
-Genius Suite Debugs
- [Arguments] ${data_models}
- Genius.Genius Test Teardown ${data_models} test_name=${SUITE_NAME} fail=False
-
-ITM Direct Tunnels Start Suite
- [Documentation] start suite for itm scalability
- ClusterManagement.ClusterManagement_Setup
- ClusterManagement.Stop_Members_From_List_Or_All
- FOR ${controller_index} IN RANGE ${NUM_ODL_SYSTEM}
- Utils.Run Command On Remote System And Log
- ... ${ODL_SYSTEM_${controller_index+1}_IP}
- ... sed -i -- 's/<itm-direct-tunnels>false/<itm-direct-tunnels>true/g' ${GENIUS_IFM_CONFIG_FLAG}
- END
- ClusterManagement.Start_Members_From_List_Or_All
- Genius.Genius Suite Setup
-
-ITM Direct Tunnels Stop Suite
- [Documentation] Stop suite for ITM Direct Tunnels.
- FOR ${controller_index} IN RANGE ${NUM_ODL_SYSTEM}
- Utils.Run Command On Remote System And Log
- ... ${ODL_SYSTEM_${controller_index+1}_IP}
- ... sed -i -- 's/<itm-direct-tunnels>true/<itm-direct-tunnels>false/g' ${GENIUS_IFM_CONFIG_FLAG}
- END
- Genius.Genius Suite Teardown
-
-Ovs Interface Verification
- [Documentation] Checks whether the created Interface is seen on OVS or not.
- FOR ${tools_ip} IN @{TOOLS_SYSTEM_ALL_IPS}
- Genius.Ovs Verification For Each Dpn ${tools_ip} ${TOOLS_SYSTEM_ALL_IPS}
- END
-
-Get ITM
- [Documentation] It returns the created ITM Transport zone with the passed values during the creation is done.
- [Arguments] ${itm_created[0]} ${switch_data}=${SWITCH_DATA}
- Collections.Append To List ${switch_data} ${itm_created[0]}
- Utils.Check For Elements At URI ${TUNNEL_TRANSPORTZONE}/transport-zone/${itm_created[0]} ${switch_data}
-
-Check Tunnel Delete On OVS
- [Documentation] Verifies the Tunnel is deleted from OVS.
- [Arguments] ${tunnel_list}
- FOR ${tools_ip} IN @{TOOLS_SYSTEM_ALL_IPS}
- ${output} = Utils.Run Command On Remote System ${tools_ip} sudo ovs-vsctl show
- Genius.Verify Deleted Tunnels on OVS ${tunnel_list} ${output}
- END
-
-Check Table0 Entry In a Dpn
- [Documentation] Checks the Table 0 entry in the OVS when flows are dumped.
- [Arguments] ${tools_ip} ${bridgename} ${port_numbers}
- ${check} = Utils.Run Command On Remote System And Log
- ... ${tools_ip}
- ... sudo ovs-ofctl -OOpenFlow13 dump-flows ${bridgename}
- ${num_ports} = BuiltIn.Get Length ${port_numbers}
- FOR ${port_index} IN RANGE ${num_ports}
- BuiltIn.Should Contain ${check} in_port=${port_numbers}[${port_index}]
- END
-
-Verify Tunnel Status As Up
- [Documentation] Verify that the number of tunnels are UP
- [Arguments] ${no_of_switches}=${NUM_TOOLS_SYSTEM}
- ${no_of_tunnels} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW_STATE}
- ${lines_of_state_up} = String.Get Lines Containing String ${no_of_tunnels} ${STATE_UP}
- ${actual_tunnel_count} = String.Get Line Count ${lines_of_state_up}
- ${expected_tunnel_count} = BuiltIn.Evaluate ${no_of_switches}*(${no_of_switches}-1)
- BuiltIn.Should Be Equal As Strings ${actual_tunnel_count} ${expected_tunnel_count}
-
-Verify Tunnel Status
- [Documentation] Verifies if all tunnels in the input, has the expected status(UP/DOWN/UNKNOWN)
- [Arguments] ${tunnel_status} ${tunnel_names}
- ${tep_result} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW_STATE}
- ${number_of_tunnels} = BuiltIn.Get Length ${tunnel_names}
- FOR ${each_tunnel} IN RANGE ${number_of_tunnels}
- ${tunnel} = Collections.Get From List ${tunnel_names} ${each_tunnel}
- ${tep_output} = String.Get Lines Containing String ${tep_result} ${tunnel}
- BuiltIn.Should Contain ${tep_output} ${tunnel_status}
- END
-
-Get Tunnels On OVS
- [Documentation] Retrieves the list of tunnel ports present on OVS
- [Arguments] ${connection_id}
- SSHLibrary.Switch Connection ${connection_id}
- ${ovs_result} = Utils.Write Commands Until Expected Prompt
- ... sudo ovs-vsctl show
- ... ${DEFAULT_LINUX_PROMPT_STRICT}
- @{tunnel_names} = BuiltIn.Create List
- ${tunnels} = String.Get Lines Matching Regexp ${ovs_result} Interface "tun.*" True
- @{tunnels_list} = String.Split To Lines ${tunnels}
- FOR ${tun} IN @{tunnels_list}
- ${tun_list} = Get Regexp Matches ${tun} tun.*\\w
- Collections.Append To List ${tunnel_names} @{tun_list}
- END
- ${items_in_list} = BuiltIn.Get Length ${tunnel_names}
- RETURN @{tunnel_names}
-
-Get Tunnel
- [Documentation] This keyword returns tunnel interface name between source DPN and destination DPN.
- ... Statements are executed depending on whether it is itm tunnel state(default) or dpn tep state.
- [Arguments] ${src} ${dst} ${type} ${config_api_type}=${EMPTY}
- IF '${config_api_type}' == '${EMPTY}'
- ${resp} = RequestsLibrary.Get Request
- ... session
- ... ${CONFIG_API}/itm-state:tunnel-list/internal-tunnel/${src}/${dst}/${type}/
- ELSE
- ${resp} = RequestsLibrary.Get Request
- ... session
- ... ${CONFIG_API}/itm-state:dpn-teps-state/dpns-teps/${src}/remote-dpns/${dst}/
- END
- BuiltIn.Should Be Equal As Strings ${resp.status_code} ${RESP_CODE}
- BuiltIn.Log ${resp.text}
- ${respjson} = RequestsLibrary.To Json ${resp.text} pretty_print=True
- ${json} = Utils.Json Parse From String ${resp.text}
- BuiltIn.Should Contain ${resp.text} ${dst}
- IF '${config_api_type}' == '${EMPTY}'
- BuiltIn.Should Contain ${resp.text} ${src}
- END
- IF "tunnel-interface-names" in "${json}"
- ${tunnel_interface_name} = Genius.Get Tunnel Interface Name
- ... ${json["internal-tunnel"][0]}
- ... tunnel-interface-names
- ELSE
- ${tunnel_interface_name} = Set Variable ${None}
- END
- IF '${config_api_type}' != '${EMPTY}'
- ${tunnel_name_output} ${tunnel_name} = BuiltIn.Should Match Regexp
- ... ${resp.text}
- ... "tunnel-name":"(tun[\\w\\d]+)"
- ELSE
- ${tunnel_name_output} ${tunnel_name} = Set Variable ${None} ${None}
- END
- ${tunnel} = BuiltIn.Set Variable If
- ... '${config_api_type}' == '${EMPTY}'
- ... ${tunnel_interface_name}
- ... ${tunnel_name}
- RETURN ${tunnel}
-
-Get Tunnel Interface Name
- [Documentation] This keyword extracts tunnel interface name from json given as input.
- [Arguments] ${json} ${expected_tunnel_interface_name}
- ${tunnels} = Collections.Get From Dictionary ${json} ${expected_tunnel_interface_name}
- RETURN ${tunnels[0]}
-
-Verify Tunnel Delete on DS
- [Documentation] This keyword confirms that specified tunnel is not present by giving command from karaf console.
- [Arguments] ${tunnel}
- ${output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW_STATE}
- BuiltIn.Should Not Contain ${output} ${tunnel}
-
-SRM Start Suite
- [Documentation] Start suite for service recovery.
- Genius Suite Setup
- Genius.Create Vteps ${NO_VLAN} ${gateway_ip}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s Genius.Verify Tunnel Status As Up
- Genius.Genius Suite Debugs ${data_models}
-
-SRM Stop Suite
- [Documentation] Stop suite for service recovery.
- Genius.Delete All Vteps
- Genius.Genius Suite Debugs ${data_models}
- Genius.Genius Suite Teardown
-
-Verify Tunnel Monitoring Status
- [Arguments] ${tunnel_monitor_status}
- ${output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
- BuiltIn.Should Contain ${output} ${tunnel_monitor_status}
-
-Set Switch Configuration
- [Documentation] This keyword will set manager,controller,tap port,bridge on each OVS
- FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
- SSHLibrary.Switch Connection ${TOOLS_SYSTEM_ALL_CONN_IDS}[${tool_system_index}]
- SSHLibrary.Login With Public Key ${TOOLS_SYSTEM_USER} ${USER_HOME}/.ssh/${SSH_KEY} any
- SSHLibrary.Execute Command sudo ovs-vsctl add-br ${Bridge}
- SSHLibrary.Execute Command sudo ovs-vsctl set bridge ${Bridge} protocols=OpenFlow13
- SSHLibrary.Execute Command sudo ovs-vsctl set-controller ${Bridge} tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT_6653}
- SSHLibrary.Execute Command sudo ifconfig ${Bridge} up
- SSHLibrary.Execute Command
- ... sudo ovs-vsctl add-port ${Bridge} tap${tool_system_index}ed70586-6c -- set Interface tap${tool_system_index}ed70586-6c type=tap
- SSHLibrary.Execute Command sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT}
- SSHLibrary.Execute Command sudo ovs-vsctl show
- END
-
-Ovs Verification For Each Dpn
- [Documentation] This keyword will verify whether local and remote ip are present on the tunnels available on OVS
- [Arguments] ${tools_system_ip} ${tools_ips}
- ${ovs_output} = Utils.Run Command On Remote System And Log ${tools_system_ip} sudo ovs-vsctl show
- @{updated_tools_ip_list} = BuiltIn.Create List @{tools_ips}
- Collections.Remove Values From List ${updated_tools_ip_list} ${tools_system_ip}
- BuiltIn.Log Many @{updated_tools_ip_list}
- ${num_tool_ips} = BuiltIn.Get Length ${updated_tools_ip_list}
- FOR ${num} IN RANGE ${num_tool_ips}
- ${tools_ip} = Collections.Get From List ${updated_tools_ip_list} ${num}
- BuiltIn.Should Contain ${ovs_output} ${tools_ip}
- END
-
-Get Tunnels List
- [Documentation] The keyword fetches the list of operational tunnels from ODL
- ${no_of_tunnels} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW_STATE}
- ${tunnels} = String.Get Regexp Matches ${no_of_tunnels} tun[\\w\\d]+
- BuiltIn.Log ${tunnels}
- RETURN ${tunnels}
-
-Verify Table0 Entry After fetching Port Number
- [Documentation] This keyword will get the port number and checks the table0 entry for each dpn
- FOR ${tools_ip} IN @{TOOLS_SYSTEM_ALL_IPS}
- ${check} = Utils.Run Command On Remote System And Log
- ... ${tools_ip}
- ... sudo ovs-ofctl -O OpenFlow13 show ${Bridge}
- ${port_numbers} = String.Get Regexp Matches ${check} (\\d+).tun.* 1
- Genius.Check Table0 Entry In a Dpn ${tools_ip} ${Bridge} ${port_numbers}
- END
-
-Verify Deleted Tunnels On OVS
- [Documentation] This will verify whether tunnel is deleted.
- [Arguments] ${tunnel_list} ${resp_data}
- BuiltIn.Log ${resp_data}
- FOR ${tunnel} IN @{tunnel_list}
- BuiltIn.Should Not Contain ${resp_data} ${tunnel}
- END
-
-Verify Response Code Of Dpn End Point Config API
- [Documentation] This keyword will verify response code from itm-state: dpn endpoints config api for each dpn
- [Arguments] ${dpn_list}=${DPN_ID_LIST}
- FOR ${dpn} IN @{dpn_list}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 5
- ... Utils.Get Data From URI
- ... session
- ... ${CONFIG_API}/itm-state:dpn-endpoints/DPN-TEPs-info/${dpn}/
- END
-
-Get Tunnel Between DPNs
- [Documentation] This keyword will Get All the Tunnels available on DPN's
- [Arguments] ${tunnel_type} ${config_api_type} ${src_dpn_id} @{dst_dpn_ids}
- FOR ${dst_dpn_id} IN @{dst_dpn_ids}
- ${tunnel} = BuiltIn.Wait Until Keyword Succeeds 30 10 Genius.Get Tunnel ${src_dpn_id}
- ... ${dst_dpn_id} ${tunnel_type} ${config_api_type}
- END
-
-Update Dpn id List And Get Tunnels
- [Documentation] Update the exisisting dpn id list to form different combination of dpn ids such that tunnel formation between all dpns is verified.
- [Arguments] ${tunnel_type} ${config_api_type}=${EMPTY} ${dpn_ids}=${DPN_ID_LIST}
- FOR ${dpn_id} IN @{dpn_ids}
- @{dpn_ids_updated} = BuiltIn.Create List @{dpn_ids}
- Collections.Remove Values From List ${dpn_ids_updated} ${dpn_id}
- BuiltIn.Log Many ${dpn_ids_updated}
- Genius.Get Tunnel Between DPNs ${tunnel_type} ${config_api_type} ${dpn_id} @{dpn_ids_updated}
- END
+++ /dev/null
-genius-upstream.txt
\ No newline at end of file
+++ /dev/null
-genius-upstream.txt
\ No newline at end of file
+++ /dev/null
-genius-upstream.txt
\ No newline at end of file
+++ /dev/null
-# Place the scripts in run order:
-integration/test/csit/scripts/set_unique_node_uuid.sh
+++ /dev/null
-genius-upstream.txt
\ No newline at end of file
+++ /dev/null
-*** Settings ***
-Documentation Test Suite for BFD tunnel monitoring
-
-Library OperatingSystem
-Library String
-Library RequestsLibrary
-Library Collections
-Library SSHLibrary
-Resource ../../libraries/DataModels.robot
-Resource ../../libraries/Genius.robot
-Resource ../../libraries/KarafKeywords.robot
-Resource ../../libraries/OVSDB.robot
-Resource ../../libraries/ToolsSystem.robot
-Resource ../../libraries/Utils.robot
-Resource ../../libraries/VpnOperations.robot
-Resource ../../variables/netvirt/Variables.robot
-Resource ../../variables/Variables.robot
-Resource ../../libraries/CompareStream.robot
-Variables ../../variables/genius/Modules.py
-
-Suite Setup Genius Suite Setup
-Suite Teardown BFD Suite Teardown
-Test Setup Genius Test Setup
-Test Teardown Genius Test Teardown ${data_models}
-
-
-*** Variables ***
-${TUNNEL_MONITOR_ON} Tunnel Monitoring (for VXLAN tunnels): On
-${DEFAULT_MONITORING_INTERVAL} Tunnel Monitoring Interval (for VXLAN tunnels): 1000
-${TUNNEL_MONITOR_OFF} Tunnel Monitoring (for VXLAN tunnels): Off
-${INTERVAL_5000} {"tunnel-monitor-interval":{"interval":5000}}
-${ENABLE_MONITORING}
-... {"tunnel-monitor-params":{"enabled":true,"monitor-protocol":"odl-interface:tunnel-monitoring-type-bfd"}}
-${DISABLE_MONITORING}
-... {"tunnel-monitor-params":{"enabled":"false","monitor-protocol":"odl-interface:tunnel-monitoring-type-bfd"}}
-${TUNNEL_MONI_PARAMS_TRUE} true
-${TUNNEL_MONI_PARAMS_FALSE} false
-${INTERFACE_DS_MONI_FALSE} "odl-interface:monitor-enabled": false
-${INTERFACE_DS_MONI_TRUE} "odl-interface:monitor-enabled": true
-${INTERFACE_DS_MONI_INT_1000} "odl-interface:monitor-interval": 1000
-${INTERFACE_DS_MONI_INT_5000} "odl-interface:monitor-interval": 5000
-${TUNNEL_MONI_PROTO} tunnel-monitoring-type-bfd
-
-
-*** Test Cases ***
-BFD_TC00 Create ITM between DPNs
- [Documentation] Create ITM between DPNs
- Genius.Create Vteps ${NO_VLAN} ${gateway_ip}
- BuiltIn.Wait Until Keyword Succeeds 30s 5s Genius.Verify Tunnel Status As Up
-
-BFD_TC01 Verify default BFD monitoring status on Controller
- [Documentation] Verify the default value of BFD monitoring \ on the Controller
- BuiltIn.Wait Until Keyword Succeeds
- ... 10s
- ... 2s
- ... Genius.Verify Tunnel Monitoring Status
- ... ${TUNNEL_MONITOR_OFF}
- BuiltIn.Wait Until Keyword Succeeds
- ... 10s
- ... 2s
- ... Verify Config Ietf Interface Output
- ... ${INTERFACE_DS_MONI_FALSE}
- ... ${INTERFACE_DS_MONI_INT_1000}
- ... ${TUNNEL_MONI_PROTO}
-
-BFD_TC02 Enable BFD Monitoring And Verify On Controller
- [Documentation] Enable BFD monitoring in branches greater than neon and verify that BFD is enabled in the controller.
- Enable BFD And Verify ${INTERFACE_DS_MONI_INT_1000}
-
-BFD_TC03 Verify that BFD tunnel monitoring interval is set with appropriate default value i.e.,1000
- [Documentation] This will verify BFD tunnel monitoring default interval
- ${output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
- ${tunnel_monitoring} = String.Get Lines Containing String ${output} Tunnel Monitoring Interval
- BuiltIn.Should Be Equal ${tunnel_monitoring} ${DEFAULT_MONITORING_INTERVAL}
- BuiltIn.Wait Until Keyword Succeeds
- ... 10s
- ... 2s
- ... Verify Config Ietf Interface Output
- ... ${INTERFACE_DS_MONI_TRUE}
- ... ${INTERFACE_DS_MONI_INT_1000}
- ... ${TUNNEL_MONI_PROTO}
-
-BFD_TC04 Verify that in controller tunnel status is up when ITM tunnel interface is brought up.
- [Documentation] Verify that in controller tunnel status is up when ITM tunnel interface is brought up.
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Genius.Verify Tunnel Monitoring Status ${TUNNEL_MONITOR_ON}
- BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status As Up
- BuiltIn.Wait Until Keyword Succeeds
- ... 10s
- ... 2s
- ... Verify Config Ietf Interface Output
- ... ${INTERFACE_DS_MONI_TRUE}
- ... ${INTERFACE_DS_MONI_INT_1000}
- ... ${TUNNEL_MONI_PROTO}
-
-BFD_TC05 Verify BFD tunnel monitoring interval can be changed.
- [Documentation] Verify BFD tunnel monitoring interval can be changed.
- ${oper_int} = RequestsLibrary.Put Request
- ... session
- ... ${CONFIG_API}/itm-config:tunnel-monitor-interval/
- ... data=${INTERVAL_5000}
- ${Bfd_updated_value} = BuiltIn.Create List 5000
- Wait Until Keyword Succeeds
- ... 30s
- ... 10s
- ... Utils.Check For Elements At URI
- ... ${OPERATIONAL_API}/itm-config:tunnel-monitor-interval/
- ... ${Bfd_updated_value}
- Wait Until Keyword Succeeds
- ... 30s
- ... 10s
- ... Utils.Check For Elements At URI
- ... ${CONFIG_API}/itm-config:tunnel-monitor-interval/
- ... ${Bfd_updated_value}
- Wait Until Keyword Succeeds
- ... 10s
- ... 2s
- ... Verify Config Ietf Interface Output
- ... ${INTERFACE_DS_MONI_TRUE}
- ... ${INTERFACE_DS_MONI_INT_5000}
- ... ${TUNNEL_MONI_PROTO}
- FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
- ${tun_names} = Genius.Get Tunnels On OVS ${TOOLS_SYSTEM_ALL_CONN_IDS[${tool_system_index}]}
- Verify ovs-vsctl Output For Each Tunnel ${tun_names} ${tool_system_index}
- END
-
-BFD_TC06 Verify that the tunnel state goes to UNKNOWN when DPN is disconnected
- [Documentation] Verify that the tunnel state goes to UNKNOWN when DPN is disconnected
- ToolsSystem.Run Command On All Tools Systems sudo ovs-vsctl del-controller ${Bridge}
- BuiltIn.Wait Until Keyword Succeeds 10s 1s VpnOperations.Verify Tunnel Status as UNKNOWN
- BuiltIn.Wait Until Keyword Succeeds
- ... 10s
- ... 2s
- ... Verify Config Ietf Interface Output
- ... ${INTERFACE_DS_MONI_TRUE}
- ... ${INTERFACE_DS_MONI_INT_5000}
- ... ${TUNNEL_MONI_PROTO}
- ToolsSystem.Run Command On All Tools Systems
- ... sudo ovs-vsctl set-controller ${Bridge} tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT}
- BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status As Up
- BuiltIn.Wait Until Keyword Succeeds
- ... 10s
- ... 2s
- ... Verify Config Ietf Interface Output
- ... ${INTERFACE_DS_MONI_TRUE}
- ... ${INTERFACE_DS_MONI_INT_5000}
- ... ${TUNNEL_MONI_PROTO}
-
-BFD_TC07 Set BFD monitoring To Default Value
- [Documentation] Disable BFD monitoring(setting it to default value) and verify that BFD is disabled on the controller.
- Disable BFD And Verify
-
-
-*** Keywords ***
-Verify Config Ietf Interface Output
- [Documentation] This keyword will get request from config ietf interface and verifies state, interval and proto are present
- [Arguments] ${state} ${interval} ${proto}
- ${int_resp} = RequestsLibrary.Get Request session ${CONFIG_API}/ietf-interfaces:interfaces/
- ${respjson} = RequestsLibrary.To Json ${int_resp.content} pretty_print=True
- BuiltIn.Should Contain ${respjson} ${state}
- BuiltIn.Should Contain ${respjson} ${interval}
- BuiltIn.Should Contain ${respjson} ${proto}
-
-Ovs Tunnel Get
- [Documentation] This keyword will return the tunnel name on OVS
- [Arguments] ${tools_ip}
- ${list_interface} = Utils.Run Command On Remote System ${tools_ip} sudo ovs-vsctl list interface
- ${tun_line} = ${tun_name} = BuiltIn.Should Match Regexp ${list_interface} name\\s+: "(tun.*)"
- BuiltIn.Log ${tun_name}
- BuiltIn.Should Not Be Empty ${tun_name}
- RETURN ${tun_name}
-
-Verify Tunnel Monitoring Params
- [Documentation] This keyword will verify the tunnel monitoring is true or false
- [Arguments] ${flag}
- @{checklist} = BuiltIn.Create List ${flag}
- Utils.Check For Elements At URI ${OPERATIONAL_API}/itm-config:tunnel-monitor-params/ ${checklist}
-
-Enable BFD And Verify
- [Documentation] Enable BFD Monitoring And Verify On Controller.
- [Arguments] ${interface_ds_moni_int}
- ${resp} = RequestsLibrary.Put Request
- ... session
- ... ${CONFIG_API}/itm-config:tunnel-monitor-params/
- ... data=${ENABLE_MONITORING}
- BuiltIn.Should Be Equal As Strings ${resp.status_code} 201
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Tunnel Monitoring Params ${TUNNEL_MONI_PARAMS_TRUE}
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Genius.Verify Tunnel Monitoring Status ${TUNNEL_MONITOR_ON}
- BuiltIn.Wait Until Keyword Succeeds
- ... 10s
- ... 2s
- ... Verify Config Ietf Interface Output
- ... ${INTERFACE_DS_MONI_TRUE}
- ... ${interface_ds_moni_int}
- ... ${TUNNEL_MONI_PROTO}
- BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status As Up
-
-Disable BFD And Verify
- [Documentation] Disable BFD Monitoring And Verify On Controller.
- ${resp} = RequestsLibrary.Put Request
- ... session
- ... ${CONFIG_API}/itm-config:tunnel-monitor-params/
- ... data=${DISABLE_MONITORING}
- BuiltIn.Should Be Equal As Strings ${resp.status_code} 200
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Verify Tunnel Monitoring Params ${TUNNEL_MONI_PARAMS_FALSE}
- BuiltIn.Wait Until Keyword Succeeds 10s 2s Genius.Verify Tunnel Monitoring Status ${TUNNEL_MONITOR_OFF}
- BuiltIn.Wait Until Keyword Succeeds
- ... 10s
- ... 2s
- ... Verify Config Ietf Interface Output
- ... ${INTERFACE_DS_MONI_FALSE}
- ... ${INTERFACE_DS_MONI_INT_5000}
- ... ${TUNNEL_MONI_PROTO}
- BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status As Up
-
-Verify ovs-vsctl Output For Each Tunnel
- [Arguments] ${tun_names} ${tool_system_index}
- ${no of tunnels} = BuiltIn.Get Length ${tun_names}
- FOR ${each_tun} IN RANGE ${no of tunnels}
- ${tun} = Collections.Get From List ${tun_names} ${each_tun}
- BuiltIn.Wait Until Keyword Succeeds
- ... 20
- ... 5
- ... OVSDB.Verify Ovs-vsctl Output
- ... list interface ${tun}
- ... 5000
- ... ovs_system=${TOOLS_SYSTEM_ALL_IPS}[${tool_system_index}]
- END
+++ /dev/null
-*** Settings ***
-Documentation Test Suite for ITM
-
-Library Collections
-Library OperatingSystem
-Library RequestsLibrary
-Library String
-Resource ../../libraries/DataModels.robot
-Resource ../../libraries/Genius.robot
-Resource ../../libraries/KarafKeywords.robot
-Resource ../../libraries/ToolsSystem.robot
-Resource ../../libraries/Utils.robot
-Resource ../../variables/netvirt/Variables.robot
-Resource ../../variables/Variables.robot
-Variables ../../variables/genius/Modules.py
-
-Suite Setup Genius Suite Setup
-Suite Teardown Genius Suite Teardown
-Test Setup Genius Test Setup
-Test Teardown Genius Test Teardown ${data_models}
-
-
-*** Variables ***
-${gateway_regex_IPV4} [0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\.
-${gateway_regex_IPV6}
-... [0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:
-
-
-*** Test Cases ***
-Create and Verify VTEP -No Vlan
- [Documentation] This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs without VLAN and Gateway configured in Json.
- Genius.Create Vteps ${NO_VLAN} ${gateway_ip}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Get ITM ${itm_created[0]}
- ${type} = BuiltIn.Set Variable odl-interface:tunnel-type-vxlan
- Genius.Update Dpn id list and get tunnels ${type}
- Genius.Verify Response Code Of Dpn Endpointconfig API
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Ovs Interface Verification
- BuiltIn.Wait Until Keyword Succeeds 60 5 Genius.Verify Tunnel Status As Up
- Verify Network Topology
- Verify Ietf Interface State
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Verify Table0 Entry After fetching Port Number
- ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_NODES_API}
- ${respjson} = RequestsLibrary.To Json ${resp.content} pretty_print=True
- BuiltIn.Log ${respjson}
- BuiltIn.Should Be Equal As Strings ${resp.status_code} 200
-
-Delete and Verify VTEP -No Vlan
- [Documentation] This Delete testcase , deletes the ITM tunnel created between 2 dpns.
- ${tunnel_list} = Genius.Get Tunnels List
- FOR ${dpn_id} IN @{DPN_ID_LIST}
- CompareStream.Run_Keyword_If_Less_Than_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${SUBNET}%2F16/vteps/${dpn_id}/${port_name}
- CompareStream.Run_Keyword_If_At_Least_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/vteps/${dpn_id}
- END
- ${output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
- BuiltIn.Should Not Contain ${output} ${itm_created[0]}
- Utils.Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
- ${resp} = Utils.Get Data From URI session ${CONFIG_API}/itm:transport-zones/
- BuiltIn.Should Not Contain ${resp} = ${itm_created[0]}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... Genius.Verify Deleted Tunnels On OVS
- ... ${tunnel_list}
- ... ${resp}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${tunnel_list}
-
-Create and Verify VTEP IPv6 - No Vlan
- [Documentation] This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs without VLAN and Gateway configured in Json.
- ${gateway_ip} = BuiltIn.Set Variable ::
- Build Tools System IPV6 List
- Create Vteps IPv6 ${NO_VLAN} ${gateway_ip} ${TOOLS_SYSTEM_IPV6_LIST}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Get ITM IPV6 ${itm_created[0]}
- ${type} = BuiltIn.Set Variable odl-interface:tunnel-type-vxlan
- Genius.Update Dpn id list and get tunnels ${type}
- FOR ${dpn} IN @{DPN_ID_LIST}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 5
- ... Utils.Get Data From URI
- ... session
- ... ${CONFIG_API}/itm-state:dpn-endpoints/DPN-TEPs-info/${dpn}/
- ... headers=${ACCEPT_XML}
- END
- BuiltIn.Wait Until Keyword Succeeds 40 10 OVS Verification Between IPV6
- @{all_tunnels} = BuiltIn.Create List
- FOR ${conn_id} IN @{TOOLS_SYSTEM_ALL_CONN_IDS}
- ${tun_names} = Genius.Get Tunnels On OVS ${conn_id}
- Collections.Append To List ${all_tunnels} @{tun_names}
- END
- @{network_topology_list} = BuiltIn.Create List @{all_tunnels}
- @{network_topology_list} = Collections.Append To List ${network_topology_list} ${Bridge}
- ${resp} = BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... Get Network Topology with Tunnel
- ... ${OPERATIONAL_TOPO_API}
- ... ${network_topology_list}
-
-Delete and Verify VTEP IPv6 -No Vlan
- [Documentation] This Delete testcase , deletes the ITM tunnel created between 2 dpns.
- ${type} = BuiltIn.Set Variable odl-interface:tunnel-type-vxlan
- ${tunnel_list} = Genius.Get Tunnels List
- FOR ${dpn_id} IN @{DPN_ID_LIST}
- CompareStream.Run_Keyword_If_Less_Than_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${SUBNET_IPV6}%2F16/vteps/${dpn_id}/${port_name}
- CompareStream.Run_Keyword_If_At_Least_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/vteps/${dpn_id}
- END
- ${output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
- BuiltIn.Should Not Contain ${output} ${itm_created[0]}
- BuiltIn.Run Keyword And Ignore Error
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
- ${resp} = Utils.Get Data From URI session ${CONFIG_API}/itm:transport-zones/
- BuiltIn.Should Not Contain ${resp} ${itm_created[0]}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... Genius.Verify Deleted Tunnels On OVS
- ... ${tunnel_list}
- ... ${resp}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${tunnel_list}
-
-Create and Verify VTEP-Vlan
- [Documentation] This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs with VLAN and without Gateway configured in Json.
- Genius.Create Vteps ${VLAN} ${gateway_ip}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Get ITM ${itm_created[0]}
- ${type} = BuiltIn.Set Variable odl-interface:tunnel-type-vxlan
- Genius.Update Dpn id list and get tunnels ${type}
- Genius.Verify Response Code Of Dpn Endpointconfig API
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Ovs Interface Verification
- Verify Network Topology
- Verify Ietf Interface State
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Verify Table0 Entry After fetching Port Number
-
-Delete and Verify VTEP -Vlan
- [Documentation] This Delete testcase , deletes the ITM tunnel created between 2 dpns.
- ${type} = BuiltIn.Set Variable odl-interface:tunnel-type-vxlan
- ${tunnel_list} = Genius.Get Tunnels List
- FOR ${dpn_id} IN @{DPN_ID_LIST}
- CompareStream.Run_Keyword_If_Less_Than_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${SUBNET}%2F16/vteps/${dpn_id}/${port_name}
- CompareStream.Run_Keyword_If_At_Least_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/vteps/${dpn_id}
- END
- ${output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
- BuiltIn.Should Not Contain ${output} ${itm_created[0]}
- Utils.Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
- ${resp} = Utils.Get Data From URI session ${CONFIG_API}/itm:transport-zones/
- BuiltIn.Should Not Contain ${resp} ${itm_created[0]}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... Genius.Verify Deleted Tunnels On OVS
- ... ${tunnel_list}
- ... ${resp}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${tunnel_list}
-
-Create VTEP - Vlan and Gateway
- [Documentation] This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs with VLAN and Gateway configured in Json.
- ${substr} = BuiltIn.Should Match Regexp ${TOOLS_SYSTEM_IP} ${gateway_regex_IPV4}
- ${gateway_ip} = BuiltIn.Catenate ${substr}1
- Genius.Create Vteps ${VLAN} ${gateway_ip}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Get ITM ${itm_created[0]}
- ${type} = BuiltIn.Set Variable odl-interface:tunnel-type-vxlan
- Genius.Update Dpn id list and get tunnels ${type}
- ${tunnel-type} = BuiltIn.Set Variable type: vxlan
- Genius.Verify Response Code Of Dpn Endpointconfig API
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Ovs Interface Verification
- BuiltIn.Wait Until Keyword Succeeds 60 5 Genius.Verify Tunnel Status As Up
- Verify Network Topology
- Verify Ietf Interface State
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Verify Table0 Entry After fetching Port Number
-
-Delete VTEP -Vlan and gateway
- [Documentation] This testcase deletes the ITM tunnel created between 2 dpns.
- ${type} = BuiltIn.Set Variable odl-interface:tunnel-type-vxlan
- ${tunnel_list} = Genius.Get Tunnels List
- FOR ${dpn_id} IN @{DPN_ID_LIST}
- CompareStream.Run_Keyword_If_Less_Than_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${SUBNET}%2F16/vteps/${dpn_id}/${port_name}
- CompareStream.Run_Keyword_If_At_Least_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/vteps/${dpn_id}
- END
- ${output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
- BuiltIn.Should Not Contain ${output} ${itm_created[0]}
- Utils.Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
- ${resp} = Utils.Get Data From URI session ${CONFIG_API}/itm:transport-zones/
- BuiltIn.Should Not Contain ${resp} ${itm_created[0]}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... Genius.Verify Deleted Tunnels On OVS
- ... ${tunnel_list}
- ... ${resp}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${tunnel_list}
-
-
-*** Keywords ***
-Create Vteps IPv6
- [Documentation] This keyword creates VTEPs between IPV6 ip's
- [Arguments] ${vlan} ${gateway_ip} ${tools_ips}
- ${substr} = BuiltIn.Should Match Regexp ${tools_ips}[0] ${gateway_regex_IPV6}
- ${SUBNET_IPV6} = BuiltIn.Catenate ${substr}0
- BuiltIn.Set Suite Variable ${SUBNET_IPV6}
- ${body} = Genius.Set Json ${vlan} ${gateway_ip} ${SUBNET_IPV6} @{TOOLS_SYSTEM_IPV6_LIST}
- Utils.Post Log Check ${CONFIG_API}/itm:transport-zones/ ${body} status_codes=${204}
-
-Get Network Topology with Tunnel
- [Documentation] Returns the Network topology with Tunnel info in it.
- [Arguments] ${url} ${network_topology_list}
- Utils.Check For Elements At URI ${url} ${network_topology_list}
-
-Get ITM IPV6
- [Documentation] It returns the created ITM Transport zone with the passed values during the creation is done.
- [Arguments] ${itm_created[0]}
- @{Itm-no-vlan} = Collections.Combine Lists ${TOOLS_SYSTEM_IPV6_LIST} ${DPN_ID_LIST}
- Collections.Append To List ${Itm-no-vlan} ${itm_created[0]}
- Utils.Check For Elements At URI
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}
- ... ${Itm-no-vlan}
-
-OVS Verification Between IPV6
- [Documentation] This keyword will verify tunnels available on ovs
- FOR ${tools_ip} IN @{TOOLS_SYSTEM_ALL_IPS}
- Genius.Ovs Verification For Each Dpn ${tools_ip} ${TOOLS_SYSTEM_IPV6_LIST}
- END
-
-Verify Network Topology
- [Documentation] This keyword will verify whether all tunnels and bridges are populated in network topology
- ${all_tunnels} = Genius.Get Tunnels List
- @{network_topology_list} = BuiltIn.Create List
- @{network_topology_list} = Collections.Append To List ${network_topology_list} ${Bridge}
- @{network_topology_list} = Collections.Combine Lists ${network_topology_list} ${all_tunnels}
- ${resp} = BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... Get Network Topology with Tunnel
- ... ${OPERATIONAL_TOPO_API}
- ... ${network_topology_list}
-
-Verify Ietf Interface State
- Utils.Check For Elements At URI
- ... ${OPERATIONAL_API}/ietf-interfaces:interfaces-state/
- ... ${DPN_ID_LIST}
- ... session
- ... True
- ${all_tunnels} = Genius.Get Tunnels List
- Utils.Check For Elements At URI
- ... ${OPERATIONAL_API}/ietf-interfaces:interfaces-state/
- ... ${all_tunnels}
- ... session
- ... True
-
-Build Tools System IPV6 List
- [Documentation] Create a list of tools system ips with IPV6.
- @{TOOLS_SYSTEM_IPV6_LIST} = BuiltIn.Create List
- FOR ${tool_system_index} IN RANGE ${NUM_TOOLS_SYSTEM}
- Collections.Append To List ${TOOLS_SYSTEM_IPV6_LIST} fd96:2a25:4ad3:3c7d:0:0:${tool_system_index}:1000
- END
- BuiltIn.Set Suite Variable @{TOOLS_SYSTEM_IPV6_LIST}
+++ /dev/null
-*** Settings ***
-Documentation Test Suite for IdManager
-
-Library OperatingSystem
-Library String
-Library RequestsLibrary
-Library Collections
-Library re
-Variables ../../variables/genius/Modules.py
-Resource ../../libraries/DataModels.robot
-Resource ../../libraries/Utils.robot
-Resource ../../libraries/Genius.robot
-Resource ../../variables/Variables.robot
-
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} timeout=5
-Suite Teardown Delete All Sessions
-Test Setup Genius Test Setup
-Test Teardown Get Model Dump ${ODL_SYSTEM_IP} ${idmanager_data_models}
-
-
-*** Variables ***
-${genius_config_dir} ${CURDIR}/../../variables/genius
-${pool-name} test-pool
-@{test_keys} test-key1 test-key2 test-key3
-${create_json} createIdpool.json
-${allocaterange_json} allocateIdRange.json
-${OPERATIONS_API} /restconf/operations
-
-
-*** Test Cases ***
-Create ID pool in range 10:20
- [Documentation] This testcase creates Id pool in range 10 to 20.
- Utils.Post Elements To URI From File
- ... ${OPERATIONS_API}/id-manager:createIdPool
- ... ${genius_config_dir}/${create_json}
- @{poolrange} = BuiltIn.Create list ${pool-name} 10 20
- Utils.Check For Elements At URI ${CONFIG_API}/id-manager:id-pools/id-pool/${pool-name}/ ${poolrange}
- @{availiable_pool} = BuiltIn.Create list 10 20 10
- Utils.Check For Elements At URI
- ... ${CONFIG_API}/id-manager:id-pools/id-pool/${pool-name}/available-ids-holder/
- ... ${availiable_pool}
-
-Allocate Ids from pool created within size as 5
- [Documentation] This testcase allocated IDs of specified size for the pool created in 1st testcase.
- ${body} = OperatingSystem.Get File ${genius_config_dir}/${allocaterange_json}
- ${body} = String.Replace string ${body} test-key ${test_keys[0]}
- BuiltIn.Log ${body}
- Utils.Post Elements To URI ${OPERATIONS_API}/id-manager:allocateIdRange ${body}
- get Id pool
-
-Neg_Allocate ids of size 10 from the same pool
- [Documentation] This is a Negative testcase where when trying to allocate Id range out of the availiable IDs we have, the IDs are not allocated.
- ${pool-name} = BuiltIn.Set Variable test-pool
- ${body} = OperatingSystem.Get File ${genius_config_dir}/${allocaterange_json}
- ${body} = String.Replace String ${body} 5 6
- ${body} = String.Replace String ${body} test-key ${test_keys[1]}
- BuiltIn.Log ${body}
- ${resp} = RequestsLibrary.Post Request
- ... session
- ... ${OPERATIONS_API}/id-manager:allocateIdRange
- ... data=${body}
- BuiltIn.Log ${resp.content}
- BuiltIn.Should Be Equal As Strings ${resp.status_code} 500
-
-Allocate IDs of size 3 from the pool
- [Documentation] This testcase allocates 3 Ids from the created pool in test case 1
- ${body} = OperatingSystem.Get File ${genius_config_dir}/${allocaterange_json}
- ${body} = String.Replace string ${body} test-key ${test_keys[2]}
- ${body} = String.Replace string ${body} 5 3
- BuiltIn.Log ${body}
- Utils.Post Elements To URI ${OPERATIONS_API}/id-manager:allocateIdRange ${body}
- ${get_resp} = RequestsLibrary.Get Request
- ... session
- ... ${CONFIG_API}/id-manager:id-pools/id-pool/${pool-name}/available-ids-holder/
- ${respjson} = RequestsLibrary.To Json ${get_resp.content} pretty_print=True
- BuiltIn.Log ${respjson}
- BuiltIn.Should Contain ${get_resp.text} 17
- BuiltIn.Should Be Equal As Strings ${get_resp.status_code} 200
-
-Release a block of IDs allocated using releaseIds RPC
- [Documentation] This testcase Releases the block of Ids by using the key which is sent in json.
- ${body} = OperatingSystem.Get File ${genius_config_dir}/releaseIds.json
- BuiltIn.Log ${body}
- ${body} = String.Replace String ${body} test-key ${test_keys[2]}
- Utils.Post Elements To URI ${OPERATIONS_API}/id-manager:releaseId ${body}
- ${get_resp} = RequestsLibrary.Get Request session ${CONFIG_API}/id-manager:id-pools/id-pool/${pool-name}/
- ${respjson} = RequestsLibrary.To Json ${get_resp.text} pretty_print=True
- BuiltIn.Log ${respjson}
- BuiltIn.Should Be Equal As Strings ${get_resp.status_code} 200
- ${child-pool-name} = BuiltIn.Should Match Regexp ${get_resp.text} ${pool-name}\.[-]?[0-9]+
- BuiltIn.Log ${child-pool-name}
- ${get_releasedIds} = RequestsLibrary.Get Request
- ... session
- ... ${CONFIG_API}/id-manager:id-pools/id-pool/${child-pool-name}/released-ids-holder/
- ${respjson} = RequestsLibrary.To Json ${get_releasedIds.text} pretty_print=True
- BuiltIn.Log ${respjson}
- Should Be Equal As Strings ${get_releasedIds.status_code} 200
- @{released_ids} = re.Findall <id>[0-9]+ ${get_releasedIds.text}
- BuiltIn.Log ${released_ids}
-
-Delete the ID Pool using deleteIdPool RPC
- [Documentation] This testcase deletes the ID pool craeted in the 1st testcase.
- ${body} = OperatingSystem.Get File ${genius_config_dir}/deleteIdPool.json
- ${body} = String.Replace String ${body} poolname ${pool-name}
- BuiltIn.Log ${body}
- Utils.Post Elements To URI ${OPERATIONS_API}/id-manager:deleteIdPool ${body}
- Utils.No Content From URI session ${CONFIG_API}/id-manager:id-pools/id-pool/${pool-name}/
-
-
-*** Keywords ***
-get Id pool
- [Documentation] This keyword checks the created ID pool by doing GET.
- ${get_resp} = RequestsLibrary.Get Request
- ... session
- ... ${CONFIG_API}/id-manager:id-pools/id-pool/${pool-name}/available-ids-holder/
- ${respjson} = RequestsLibrary.To Json ${get_resp.content} pretty_print=True
- BuiltIn.Log ${respjson}
- BuiltIn.Should Contain ${get_resp.text} 14
- BuiltIn.Should Be Equal As Strings ${get_resp.status_code} 200
+++ /dev/null
-*** Settings ***
-Documentation This test suite is to by-pass interface manager and create/delete the tunnels between the switches directly inorder for ITM to scale and build mesh among more number of switches.
-
-Library Collections
-Library OperatingSystem
-Library RequestsLibrary
-Library String
-Resource ../../libraries/ClusterManagement.robot
-Resource ../../libraries/DataModels.robot
-Resource ../../libraries/Genius.robot
-Resource ../../libraries/KarafKeywords.robot
-Resource ../../variables/netvirt/Variables.robot
-Resource ../../libraries/OVSDB.robot
-Resource ../../libraries/ToolsSystem.robot
-Resource ../../libraries/Utils.robot
-Resource ../../libraries/VpnOperations.robot
-Resource ../../variables/Variables.robot
-Variables ../../variables/genius/Modules.py
-
-Suite Setup ITM Direct Tunnels Start Suite
-Suite Teardown ITM Direct Tunnels Stop Suite
-Test Setup Genius Test Setup
-Test Teardown Genius Test Teardown ${data_models}
-
-
-*** Test Cases ***
-Create and Verify VTEP
- [Documentation] This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs
- Genius.Create Vteps ${NO_VLAN} ${gateway_ip}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Get ITM ${itm_created[0]}
- ${type} = BuiltIn.Set Variable odl-interface:tunnel-type-vxlan
- Genius.Update Dpn id list and get tunnels ${type} dpn-teps-state
- Genius.Verify Response Code Of Dpn Endpointconfig API
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Ovs Interface Verification
- ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_API}/itm-state:tunnels_state/
- BuiltIn.Should Be Equal As Strings ${resp.status_code} 200
- BuiltIn.Wait Until Keyword Succeeds 60 5 Genius.Verify Tunnel Status As Up
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Verify Table0 Entry After fetching Port Number
-
-Verify VTEP After Restarting OVS
- [Documentation] Verify Testcase, Verifying tunnel state by restarting OVS
- BuiltIn.Wait Until Keyword Succeeds 20 2 Genius.Verify Tunnel Status As Up
- OVSDB.Restart OVSDB ${TOOLS_SYSTEM_IP}
-
-Verify VTEP After Restarting Controller
- [Documentation] Verify Testcase, Verifying tunnel state by restarting CONTROLLER
- BuiltIn.Wait Until Keyword Succeeds 30 3 Genius.Verify Tunnel Status As Up
- ClusterManagement.Stop_Members_From_List_Or_All
- ClusterManagement.Start_Members_From_List_Or_All
- BuiltIn.Wait Until Keyword Succeeds
- ... 60
- ... 3
- ... ClusterManagement.Check Status Of Services Is OPERATIONAL
- ... @{GENIUS_DIAG_SERVICES}
- BuiltIn.Wait Until Keyword Succeeds 30 3 Genius.Verify Tunnel Status As Up
-
-Verify Tunnels By Enabling/Disabling BFD
- [Documentation] Verify tunnel creation by enabling and disabling BFD one after another with respect to the branch in such a way default value is retained at last.
- Verify Tunnels By Enabling BFD
- Verify Tunnels By Disabling BFD
-
-Delete and Verify VTEP
- [Documentation] This Delete testcase , deletes the ITM tunnel created between 2 dpns.
- ${tunnel_list} = Genius.Get Tunnels List
- FOR ${dpn_id} IN @{DPN_ID_LIST}
- CompareStream.Run_Keyword_If_Less_Than_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${SUBNET}%2F16/vteps/${dpn_id}/${port_name}
- CompareStream.Run_Keyword_If_At_Least_Sodium
- ... Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/vteps/${dpn_id}
- END
- ${output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
- BuiltIn.Should Not Contain ${output} ${itm_created[0]}
- Utils.Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
- ${resp} = Utils.Get Data From URI session ${CONFIG_API}/itm:transport-zones/
- BuiltIn.Should Not Contain ${resp} ${itm_created[0]}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... Genius.Verify Deleted Tunnels On OVS
- ... ${tunnel_list}
- ... ${resp}
- BuiltIn.Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${tunnel_list}
-
-
-*** Keywords ***
-Enable_Tunnel_Monitoring
- [Documentation] In this we will enable tunnel monitoring by tep:enable command running in karaf console
- KarafKeywords.Issue_Command_On_Karaf_Console tep:enable-tunnel-monitor true
-
-Verify Tunnel State After OVS Restart
- [Documentation] In this we will Verify Tunnel State by Stopping/Starting Switch
- [Arguments] ${TOOLS_SYSTEM_IP}
- OVSDB.Stop OVS ${TOOLS_SYSTEM_IP}
- BuiltIn.Wait Until Keyword Succeeds 2min 20 sec Verify Tunnel Down
- OVSDB.Start OVS ${TOOLS_SYSTEM_IP}
- BuiltIn.Wait Until Keyword Succeeds 2min 20 sec Genius.Verify Tunnel Status As Up
-
-Verify Tunnel Down
- [Documentation] In this we will check whether tunnel is in down or not
- ${output} = KarafKeywords.Issue_Command_On_Karaf_Console ${TEP_SHOW_STATE}
- BuiltIn.Should Contain ${output} DOWN
-
-Disable_Tunnel_Monitoring
- [Documentation] In this we will disable tunnel monitoring by tep:enable command running in karaf console
- KarafKeywords.Issue_Command_On_Karaf_Console tep:enable-tunnel-monitor false
-
-Verify Tunnels By Enabling BFD
- [Documentation] Verify tunnel creation by enabling BFD monitoring.
- ${result} = BuiltIn.Run Keyword And Return Status
- ... Genius.Verify Tunnel Monitoring Status
- ... ${TUNNEL_MONITOR_ON}
- IF '${result}' == 'False' Enable_Tunnel_monitoring
- FOR ${tools_ip} IN @{TOOLS_SYSTEM_ALL_IPS}
- Verify Tunnel State After OVS Restart ${tools_ip}
- END
-
-Verify Tunnels By Disabling BFD
- [Documentation] Verify tunnel creation by disabling BFD monitoring.
- ${result} = Run Keyword And Return Status Genius.Verify Tunnel Monitoring Status ${TUNNEL_MONITOR_ON}
- IF '${result}' == 'True' Disable_Tunnel_Monitoring
- ${tunnels_on_OVS} = Genius.Get Tunnels On OVS ${TOOLS_SYSTEM_ALL_CONN_IDS[0]}
- OVSDB.Stop OVS ${TOOLS_SYSTEM_IP}
- BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status UNKNOWN ${tunnels_on_OVS}
- OVSDB.Start OVS ${TOOLS_SYSTEM_IP}
- BuiltIn.Wait Until Keyword Succeeds 10s 1s Genius.Verify Tunnel Status As Up
+++ /dev/null
-*** Settings ***
-Documentation Test suite to validate ITM VTEP auto-configuration functionality in openstack integrated environment.
-
-Library OperatingSystem
-Library RequestsLibrary
-Library SSHLibrary
-Library String
-Resource ../../libraries/Genius.robot
-Resource ../../libraries/KarafKeywords.robot
-Resource ../../libraries/OVSDB.robot
-Resource ../../libraries/OvsManager.robot
-Resource ../../libraries/Utils.robot
-Resource ../../libraries/VpnOperations.robot
-Resource ../../variables/netvirt/Variables.robot
-Resource ../../variables/Variables.robot
-Variables ../../variables/genius/Modules.py
-
-Suite Setup BuiltIn.Run Keywords Genius.Genius Suite Setup
-... AND OvsManager.Verify Ovs Version Greater Than Or Equal To ${OVS_VERSION} @{TOOLS_SYSTEM_ALL_IPS}
-Suite Teardown Genius.Genius Suite Teardown
-Test Setup Genius Test Setup
-Test Teardown Genius Test Teardown ${data_models}
-
-
-*** Variables ***
-${CHANGE_TRANSPORT_ZONE} sudo ovs-vsctl set O . external_ids:transport-zone
-${TZA_JSON} ${GENIUS_VAR_DIR}/Itm_Auto_Tunnel_Create.json
-${DELETE_TRANSPORT_ZONE} sudo ovs-vsctl remove O . external_ids transport-zone
-${GET_EXTERNAL_IDS} sudo ovsdb-client dump -f list Open_vSwitch | grep external_ids
-${GET_NETWORK_TOPOLOGY_URL} ${OPERATIONAL_API}/network-topology:network-topology/topology/ovsdb:1/
-${OVS_VERSION} 2.5
-${SHOW_OTHER_CONFIG} sudo ovsdb-client dump -f list Open_vSwitch | grep other_config
-${STATUS_CHECK} DOWN
-${TRANSPORT_ZONE} TZA
-${TRANSPORTZONE_POST_URL} ${CONFIG_API}/itm:transport-zones
-
-
-*** Test Cases ***
-Verify TEP in controller and transport zone in OVSDB table of compute nodes
- [Documentation] Set local ip in compute nodes and verify default transport zone tunnels are up in controller
- @{LOCAL_IPS} = BuiltIn.Create List
- FOR ${ip} IN @{TOOLS_SYSTEM_ALL_IPS}
- ${localip} = Utils.Run Command On Remote System ${ip} ${SET_LOCAL_IP}${ip}
- END
- FOR ${node_ip} IN @{TOOLS_SYSTEM_ALL_IPS}
- ${ip} = OvsManager.Get OVS Local Ip ${node_ip}
- Collections.Append To List ${LOCAL_IPS} ${ip}
- END
- BuiltIn.Set Suite Variable @{LOCAL_IPS}
- BuiltIn.Wait Until Keyword Succeeds 3x 10 sec Genius.Verify Tunnel Status as Up
-
-Verify TEPs with transport zone configured from OVS will be added to corresponding transport zone
- [Documentation] To Verify transport zone name change in external id field of ovsdb and check status when moved from tep nohosted zone to TZA
- Change Transport Zone In Compute ${TOOLS_SYSTEM_1_IP} ${TRANSPORT_ZONE}
- ${get_nohosted_data} = BuiltIn.Wait Until Keyword Succeeds
- ... 3x
- ... 10 sec
- ... Utils.Get Data From URI
- ... session
- ... ${TEP_NOT_HOSTED_ZONE_URL}
- BuiltIn.Should Contain ${get_nohosted_data} ${TRANSPORT_ZONE}
- BuiltIn.Should Contain ${get_nohosted_data} ${DPN_ID_LIST}[0]
- Utils.Post Elements To URI From File ${TRANSPORTZONE_POST_URL} ${TZA_JSON}
- FOR ${node_number} IN RANGE 2 ${NUM_TOOLS_SYSTEM}+1
- Change Transport Zone In Compute ${TOOLS_SYSTEM_${node_number}_IP} ${TRANSPORT_ZONE}
- END
- FOR ${node} IN @{TOOLS_SYSTEM_ALL_IPS}
- ${output} = Utils.Run Command On Remote System ${node} ${GET_EXTERNAL_IDS}
- BuiltIn.Should Contain ${output} ${TRANSPORT_ZONE}
- END
- ${get_hosted_data} = BuiltIn.Wait Until Keyword Succeeds
- ... 3x
- ... 10 sec
- ... Utils.Get Data From URI
- ... session
- ... ${TRANSPORT_ZONE_ENDPOINT_URL}/${TRANSPORT_ZONE}
- BuiltIn.Should Contain ${get_hosted_data} ${TRANSPORT_ZONE}
- BuiltIn.Should Contain ${get_hosted_data} ${DPN_ID_LIST}[0]
- BuiltIn.Wait Until Keyword Succeeds 3x 10 sec Genius.Verify Tunnel Status as Up
-
-Verify other-config-key and transport zone value in controller operational datastore
- [Documentation] validate local_ip and transport-zone value from controller datastore and Verify value of external-id-key with transport_zone in Controller operational datastore
- ${controller-data} = Utils.Get Data From URI session ${GET_NETWORK_TOPOLOGY_URL}
- FOR ${node_ip} IN @{LOCAL_IPS}
- BuiltIn.Should Contain ${controller-data} "other-config-value":"${node_ip}"
- END
- BuiltIn.Should Contain ${controller-data} "external-id-value":"${TRANSPORT_ZONE}"
-
-Delete transport zone on OVS and check ovsdb update to controller
- [Documentation] To verify transport zone moves to default zone after deleting zone name in compute nodes
- FOR ${node} IN @{TOOLS_SYSTEM_ALL_IPS}
- Utils.Run Command On Remote System ${node} ${DELETE_TRANSPORT_ZONE}
- END
- ${tep_show_output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
- BuiltIn.Should Contain ${tep_show_output} ${DEFAULT_TRANSPORT_ZONE}
- BuiltIn.Wait Until Keyword Succeeds 3x 10 sec Genius.Verify Tunnel Status as Up
- VpnOperations.ITM Delete Tunnel ${TRANSPORT_ZONE}
-
-
-*** Keywords ***
-Change Transport Zone In Compute
- [Documentation] Change transport zone in Compute and verify its configuration
- [Arguments] ${compute_ip} ${zone_name}
- Utils.Run Command On Remote System ${compute_ip} ${CHANGE_TRANSPORT_ZONE}=${zone_name}
- ${output} = Utils.Run Command On Remote System ${compute_ip} ${GET_EXTERNAL_IDS}
- BuiltIn.Should Contain ${output} ${zone_name}
+++ /dev/null
-*** Settings ***
-Documentation Test Suite for Interface manager
-
-Library Collections
-Library OperatingSystem
-Library RequestsLibrary
-Library String
-Resource ../../libraries/DataModels.robot
-Resource ../../libraries/Genius.robot
-Resource ../../libraries/Utils.robot
-Resource ../../variables/Variables.robot
-Variables ../../variables/genius/Modules.py
-
-Suite Setup Genius Suite Setup
-Suite Teardown Genius Suite Teardown
-Test Setup Genius Test Setup
-Test Teardown Genius Test Teardown ${data_models}
-
-
-*** Variables ***
-${interface_name} l2vlan-trunk
-${trunk_json} l2vlan.json
-${trunk_member_json} l2vlan_member.json
-
-
-*** Test Cases ***
-Create l2vlan transparent interface
- [Documentation] This testcase creates a l2vlan transparent interface between 2 dpns.
- Create Interface ${trunk_json} transparent
- @{l2vlan} = BuiltIn.Create List l2vlan-trunk l2vlan transparent l2vlan true
- Utils.Check For Elements At URI ${CONFIG_API}/ietf-interfaces:interfaces/ ${l2vlan}
- BuiltIn.Wait Until Keyword Succeeds 50 5 get operational interface ${interface_name}
- BuiltIn.Wait Until Keyword Succeeds 40 10 table0 entry ${TOOLS_SYSTEM_1_IP}
-
-Delete l2vlan transparent interface
- [Documentation] This testcase deletes the l2vlan transparent interface created between 2 dpns.
- Utils.Remove All Elements At URI And Verify ${CONFIG_API}/ietf-interfaces:interfaces/
- Utils.No Content From URI session ${OPERATIONAL_API}/ietf-interfaces:interfaces/
- BuiltIn.Wait Until Keyword Succeeds 30 10 no table0 entry
-
-Create l2vlan trunk interface
- [Documentation] This testcase creates a l2vlan trunk interface between 2 DPNs.
- Create Interface ${trunk_json} trunk
- @{l2vlan} = BuiltIn.Create list l2vlan-trunk l2vlan trunk tap0ed70586-6c true
- Utils.Check For Elements At URI ${CONFIG_API}/ietf-interfaces:interfaces/ ${l2vlan}
- BuiltIn.Wait Until Keyword Succeeds 50 5 get operational interface ${interface_name}
- BuiltIn.Wait Until Keyword Succeeds 30 10 table0 entry ${TOOLS_SYSTEM_1_IP}
-
-Create l2vlan Trunk member interface
- [Documentation] This testcase creates a l2vlan Trunk member interface for the l2vlan trunk interface created in 1st testcase.
- ${body} = OperatingSystem.Get File ${genius_config_dir}/l2vlan_member.json
- ${post_resp} = RequestsLibrary.Post Request
- ... session
- ... ${CONFIG_API}/ietf-interfaces:interfaces/
- ... data=${body}
- BuiltIn.Should Be Equal As Strings ${post_resp.status_code} 204
- @{l2vlan} = create list l2vlan-trunk1 l2vlan trunk-member 1000 l2vlan-trunk
- ... true
- Utils.Check For Elements At URI ${CONFIG_API}/ietf-interfaces:interfaces/ ${l2vlan}
- BuiltIn.Wait Until Keyword Succeeds 10 5 get operational interface ${l2vlan[0]}
- BuiltIn.Wait Until Keyword Succeeds 40 10 ovs check for member interface creation ${TOOLS_SYSTEM_1_IP}
-
-Bind service on Interface
- [Documentation] This testcase binds service to the interface created .
- ${body} = OperatingSystem.Get File ${genius_config_dir}/bind_service.json
- ${body} = String.Replace string ${body} service1 VPN
- ${body} = String.Replace string ${body} service2 elan
- BuiltIn.Log ${body}
- ${service_mode} = BuiltIn.Set Variable interface-service-bindings:service-mode-ingress
- ${post_resp} = RequestsLibrary.Post Request
- ... session
- ... ${CONFIG_API}/interface-service-bindings:service-bindings/services-info/${interface_name}/${service_mode}/
- ... data=${body}
- BuiltIn.Should Be Equal As Strings ${post_resp.status_code} 204
- @{bind_array} = BuiltIn.Create List 2 3 VPN elan 50
- ... 21
- Utils.Check For Elements At URI
- ... ${CONFIG_API}/interface-service-bindings:service-bindings/services-info/${interface_name}/${service_mode}/
- ... ${bind_array}
- BuiltIn.Wait Until Keyword Succeeds 40 10 table entry
-
-unbind service on interface
- [Documentation] This testcase Unbinds the service which is binded by the 3rd testcase.
- ${service-priority-1} = BuiltIn.Set Variable 3
- ${service-priority-2} = BuiltIn.Set Variable 4
- ${service_mode} = BuiltIn.Set Variable interface-service-bindings:service-mode-ingress
- Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/interface-service-bindings:service-bindings/services-info/${interface_name}/${service_mode}/bound-services/${service-priority-1}/
- ${table-id} = BuiltIn.Set Variable 21
- BuiltIn.Wait Until Keyword Succeeds 10 2 no goto_table entry ${table-id}
- Utils.Remove All Elements At URI And Verify
- ... ${CONFIG_API}/interface-service-bindings:service-bindings/services-info/${interface_name}/${service_mode}/bound-services/${service-priority-2}/
- Utils.No Content From URI
- ... session
- ... ${CONFIG_API}/interface-service-bindings:service-bindings/services-info/${interface_name}/${service_mode}/bound-services/${service-priority-2}/
- ${table-id} = BuiltIn.Set Variable 50
- BuiltIn.Wait Until Keyword Succeeds 10 2 no goto_table entry ${table-id}
-
-Delete l2vlan trunk interface
- [Documentation] Deletion of l2vlan trunk interface is done.
- Utils.Remove All Elements At URI And Verify ${CONFIG_API}/ietf-interfaces:interfaces/
- Utils.No Content From URI session ${OPERATIONAL_API}/ietf-interfaces:interfaces/
- BuiltIn.Wait Until Keyword Succeeds 30 10 no table0 entry
-
-
-*** Keywords ***
-get operational interface
- [Documentation] checks operational status of the interface.
- [Arguments] ${interface_name}
- ${get_oper_resp} = RequestsLibrary.Get Request
- ... session
- ... ${OPERATIONAL_API}/ietf-interfaces:interfaces-state/interface/${interface_name}/
- ${respjson} = RequestsLibrary.To Json ${get_oper_resp.content} pretty_print=True
- BuiltIn.Log ${respjson}
- BuiltIn.Should Be Equal As Strings ${get_oper_resp.status_code} 200
- BuiltIn.Should Not Contain ${get_oper_resp.text} down
- BuiltIn.Should Contain ${get_oper_resp.text} up up
-
-table entry
- [Documentation] Checks for tables entry wrt the service the Interface is binded.
- ${result} = Utils.Run Command On Remote System
- ... ${TOOLS_SYSTEM_1_IP}
- ... sudo ovs-ofctl -O OpenFlow13 dump-flows ${Bridge}
- BuiltIn.Should Contain ${result} table=17
- BuiltIn.Should Contain ${result} goto_table:21
- BuiltIn.Should Contain ${result} goto_table:50
-
-no table0 entry
- [Documentation] After Deleting trunk interface, checking for absence of table 0 in the flow dumps
- ${ovs-check} = Utils.Run Command On Remote System
- ... ${TOOLS_SYSTEM_1_IP}
- ... sudo ovs-ofctl -O OpenFlow13 dump-flows ${Bridge}
- BuiltIn.Should Not Contain ${ovs-check} table=0
- BuiltIn.Should Not Contain ${ovs-check} goto_table:17
-
-no goto_table entry
- [Documentation] Checks for absence of no goto_table after unbinding the service on the interface.
- [Arguments] ${table-id}
- ${ovs-check1} = Utils.Run Command On Remote System
- ... ${TOOLS_SYSTEM_1_IP}
- ... sudo ovs-ofctl -O OpenFlow13 dump-flows ${Bridge}
- BuiltIn.Should Not Contain ${ovs-check1} goto_table:${table-id}
-
-table0 entry
- [Documentation] After Creating the trunk interface , checking for table 0 entry exist in the flow dumps
- [Arguments] ${tools_ip}
- ${ovs-check} = Utils.Run Command On Remote System
- ... ${tools_ip}
- ... sudo ovs-ofctl -O OpenFlow13 dump-flows ${Bridge}
- BuiltIn.Should Contain ${ovs-check} table=0
-
-ovs check for member interface creation
- [Documentation] This keyword verifies the member interface created on OVS by checking the table0 ,vlan and action=pop_vlan entries
- [Arguments] ${tools_ip}
- ${ovs-check} = Utils.Run Command On Remote System
- ... ${tools_ip}
- ... sudo ovs-ofctl -O OpenFlow13 dump-flows ${Bridge}
- BuiltIn.Should Contain ${ovs-check} table=0
- BuiltIn.Should Contain ${ovs-check} dl_vlan=1000
- BuiltIn.Should Contain ${ovs-check} actions=pop_vlan
-
-Create Interface
- [Documentation] Creates an trunk/transparent interface based on input provided to the json body
- [Arguments] ${json_file} ${interface_mode}
- ${body} = OperatingSystem.Get File ${genius_config_dir}/${json_file}
- ${body} = String.Replace String ${body} "l2vlan-mode":"trunk" "l2vlan-mode":"${interface_mode}"
- ${post_resp} = RequestsLibrary.Post Request
- ... session
- ... ${CONFIG_API}/ietf-interfaces:interfaces/
- ... data=${body}
- BuiltIn.Should Be Equal As Strings ${post_resp.status_code} 204
+++ /dev/null
-*** Settings ***
-Documentation This test suite is to verify working of OF based Tunnels
-
-Library Collections
-Library OperatingSystem
-Library RequestsLibrary
-Library SSHLibrary
-Library String
-Resource ../../libraries/ClusterManagement.robot
-Resource ../../libraries/DataModels.robot
-Resource ../../libraries/Genius.robot
-Resource ../../libraries/KarafKeywords.robot
-Resource ../../libraries/ODLTools.robot
-Resource ../../libraries/OVSDB.robot
-Resource ../../libraries/Utils.robot
-Resource ../../libraries/VpnOperations.robot
-Resource ../../variables/Variables.robot
-Variables ../../variables/genius/Modules.py
-Resource ../../variables/netvirt/Variables.robot
-
-Suite Setup OF Tunnels Start Suite
-Suite Teardown OF Tunnels Stop Suite
-Test Setup Genius Test Setup
-Test Teardown Genius Test Teardown ${data_models}
-
-
-*** Variables ***
-${FLOWS_FILTER_TABLE0} | grep table=0
-${FLOWS_FILTER_TABLE95} | grep table=95
-
-
-*** Test Cases ***
-Create and Verify OFT TEPs
- [Documentation] Create TEPs set to use OF based Tunnels and verify.
- CompareStream.Run_Keyword_If_Less_Than_Sodium
- ... BuiltIn.Pass Execution
- ... Test case valid only for versions Sodium and above
- OFT Create Vteps using Auto Tunnels @{TOOLS_SYSTEM_ALL_IPS}
- OFT Verify Vteps Created ${DPN_ID_LIST} ${TOOLS_SYSTEM_ALL_IPS}
-
-Delete and Verify OFT TEPs
- [Documentation] Delete TEPs set to use OF based Tunnels and verify.
- CompareStream.Run_Keyword_If_Less_Than_Sodium
- ... BuiltIn.Pass Execution
- ... Test case valid only for versions Sodium and above
- OFT Delete Vteps using Auto Tunnels @{TOOLS_SYSTEM_ALL_IPS}
- OFT Verify Vteps Deleted ${DPN_ID_LIST} ${TOOLS_SYSTEM_ALL_IPS}
- BuiltIn.Wait Until Keyword Succeeds
- ... 60
- ... 5
- ... Utils.No Content From URI
- ... session
- ... ${OPERATIONAL_API}/itm-state:tunnels_state
-
-Create and Verify single OFT TEPs
- [Documentation] Create single TEPs set to use OF based Tunnels and verify.
- CompareStream.Run_Keyword_If_Less_Than_Sodium
- ... BuiltIn.Pass Execution
- ... Test case valid only for versions Sodium and above
- ${tools_ips} = BuiltIn.Create List @{TOOLS_SYSTEM_ALL_IPS}
- Collections.Remove From List ${tools_ips} -1
- ${dpn_ids} = BuiltIn.CreateList @{DPN_ID_LIST}
- Collections.Remove From List ${dpn_ids} -1
- OFT Create Vteps using Auto Tunnels @{tools_ips}
- OFT Verify Vteps Created ${dpn_ids} ${tools_ips}
- OFT Create Vteps using Auto Tunnels ${TOOLS_SYSTEM_ALL_IPS}[-1]
- OFT Verify Vteps Created ${DPN_ID_LIST} ${TOOLS_SYSTEM_ALL_IPS}
-
-Delete and Verify single OFT TEPs
- [Documentation] Delete single TEPs set to use OF based Tunnels and verify.
- CompareStream.Run_Keyword_If_Less_Than_Sodium
- ... BuiltIn.Pass Execution
- ... Test case valid only for versions Sodium and above
- ${deleted_tools_ip_list} = BuiltIn.Set Variable ${TOOLS_SYSTEM_ALL_IPS}[0]
- OFT Delete Vteps using Auto Tunnels ${deleted_tools_ip_list}
- ${deleted_tools_ip_list} = BuiltIn.CreateList ${TOOLS_SYSTEM_ALL_IPS}[0]
- ${deleted_dpn_id_list} = BuiltIn.CreateList ${DPN_ID_LIST}[0]
- OFT Verify Vteps Deleted ${deleted_dpn_id_list} ${deleted_tools_ip_list}
-
-
-*** Keywords ***
-OFT Create Vteps using Auto Tunnels
- [Documentation] Create VTEPs for selected tools systems in ODL using Auto Tunnels.
- [Arguments] @{tools_ip_list}
- FOR ${tools_ip} IN @{tools_ip_list}
- Utils.Run Command On Remote System And Log ${tools_ip} ${SET_LOCAL_IP}${tools_ip}
- END
-
-OFT Verify Vteps Created
- [Documentation] Verify if OFT VTEPs are created successfully or not for given Tools IPs and DPN-IDs.
- [Arguments] ${dpn_id_list} ${tools_ip_list}
- ${switch_data} = BuiltIn.Create List @{dpn_id_list} @{tools_ip_list}
- BuiltIn.Wait Until Keyword Succeeds 60 5 Genius.Get ITM ${DEFAULT_TRANSPORT_ZONE} ${switch_data}
- ${tep_show_output} = BuiltIn.Wait Until Keyword Succeeds
- ... 60
- ... 5
- ... KarafKeywords.Issue Command On Karaf Console
- ... ${TEP_SHOW}
- BuiltIn.Should Contain Any ${tep_show_output} ${DEFAULT_TRANSPORT_ZONE} VXLAN @{switch_data}
- BuiltIn.Wait Until Keyword Succeeds
- ... 60
- ... 5
- ... Genius.Update Dpn id List And Get Tunnels
- ... odl-interface:tunnel-type-vxlan
- ... dpn-teps-state
- ... ${dpn_id_list}
- BuiltIn.Wait Until Keyword Succeeds
- ... 60
- ... 5
- ... Genius.Verify Response Code Of Dpn End Point Config API
- ... ${dpn_id_list}
- ${num_switches} = BuiltIn.Get Length ${dpn_id_list}
- BuiltIn.Wait Until Keyword Succeeds 60 5 Genius.Verify Tunnel Status As Up ${num_switches}
- BuiltIn.Wait Until Keyword Succeeds 40 10 OFT OVS Verify Tunnels Created @{tools_ip_list}
- ${tools_system_len} = BuiltIn.Get Length ${tools_ip_list}
- FOR ${tools_system_index} IN RANGE ${tools_system_len}
- ${tun_ip_list} = BuiltIn.CreateList @{tools_ip_list}
- Collections.Remove From List ${tun_ip_list} ${tools_system_index}
- ${ports_output} = Utils.Run Command On Remote System And Log
- ... ${tools_ip_list}[${tools_system_index}]
- ... sudo ovs-ofctl -Oopenflow13 dump-ports-desc ${Bridge}
- ${port_numbers} = String.Get Regexp Matches ${ports_output} (\\d+).of.* ${1}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... OFT OVS Verify Ingress Flows Created per Switch
- ... ${tools_ip_list}[${tools_system_index}]
- ... ${tun_ip_list}
- ... ${port_numbers}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... OFT OVS Verify Egress Flows Created per Switch
- ... ${tools_ip_list}[${tools_system_index}]
- ... ${tun_ip_list}
- ... ${port_numbers}
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... OFT OVS Verify Ingress Flows Created per Switch
- ... ${tools_ip_list}[${tools_system_index}]
- ... ${tun_ip_list}
- ... ${port_numbers}
- END
-
-OFT OVS Verify Tunnels Created
- [Documentation] Verify if tunnels are created in OVS for selected tools systems.
- [Arguments] @{tools_ip_list}
- FOR ${tools_ip} IN @{tools_ip_list}
- ${output} = Utils.Run Command On Remote System And Log ${tools_ip} sudo ovs-vsctl show
- BuiltIn.Should Contain X Times ${output} local_ip="${tools_ip}", remote_ip=flow ${1}
- END
-
-OFT OVS Verify Ingress Flows Created per Switch
- [Documentation] Verify if Ingress flow rules are created in OVS for a given switch.
- [Arguments] ${tools_ip} ${tun_src_list} ${port_numbers}
- ${flows_table0_output} = Utils.Run Command On Remote System And Log
- ... ${tools_ip}
- ... sudo ovs-ofctl -OOpenFlow13 dump-flows ${Bridge} ${FLOWS_FILTER_TABLE0}
- BuiltIn.Should Not Contain ${flows_table0_output} tun_src=${tools_ip},
- FOR ${tun_src} IN @{tun_src_list}
- BuiltIn.Should Contain ${flows_table0_output} tun_src=${tun_src},
- END
- FOR ${port_number} IN @{port_numbers}
- BuiltIn.Should Contain ${flows_table0_output} in_port=${port_number}
- END
-
-OFT OVS Verify Egress Flows Created per Switch
- [Documentation] Verify if Egress flow rules are created in OVS for a given switch.
- [Arguments] ${tools_ip} ${tun_dst_list} ${port_numbers}
- ${flows_table95_output} = Utils.Run Command On Remote System And Log
- ... ${tools_ip}
- ... sudo ovs-ofctl -OOpenFlow13 dump-flows ${Bridge} ${FLOWS_FILTER_TABLE95}
- FOR ${tun_dst} IN @{tun_dst_list}
- ${tun_dst_hex} = BuiltIn.Evaluate
- ... hex(struct.unpack('!I',socket.inet_aton('${tun_dst}'))[0])
- ... modules=socket,struct
- BuiltIn.Should Contain ${flows_table95_output} load:${tun_dst_hex}->NXM_NX_TUN_IPV4_DST[]
- END
- FOR ${port_number} IN @{port_numbers}
- BuiltIn.Should Contain ${flows_table95_output} output:${port_number}
- END
-
-OFT Delete Vteps using Auto Tunnels
- [Documentation] Delete VTEPs for selected tools systems in ODL using Auto Tunnel.
- [Arguments] @{tools_ip_list}
- FOR ${tools_ip} IN @{tools_ip_list}
- Utils.Run Command On Remote System And Log ${tools_ip} ${REMOVE_LOCAL_IP}
- END
-
-OFT Verify Vteps Deleted
- [Documentation] Verify if OFT Vteps are created successfully or not for given Tools IPs and DPN-IDs.
- [Arguments] ${dpn_id_list} ${tools_ip_list}
- ${deleted_tep_len} = BuiltIn.Get Length ${dpn_id_list}
- ${existing_tep_len} = BuiltIn.Evaluate ${NUM_TOOLS_SYSTEM}-${deleted_tep_len}
- IF ${existing_tep_len} > 0
- BuiltIn.Wait Until Keyword Succeeds 60 5 Genius.Verify Tunnel Status As Up ${existing_tep_len}
- END
- ${tep_show_output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
- ${tep_show_state_output} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW_STATE}
- FOR ${tools_system_index} IN RANGE ${deleted_tep_len}
- ${tep_show_state_output_1} = KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW_STATE}
- BuiltIn.Log ${tools_ip_list}[${tools_system_index}]
- BuiltIn.Should Not Contain ${tep_show_output} ${tools_ip_list}[${tools_system_index}]
- BuiltIn.Should Not Contain ${tep_show_state_output} ${tools_ip_list}[${tools_system_index}]
- BuiltIn.Wait Until Keyword Succeeds
- ... 60
- ... 5
- ... Utils.No Content From URI
- ... session
- ... ${CONFIG_API}/itm-state:dpn-endpoints/DPN-TEPs-info/${dpn_id_list}[${tools_system_index}]/
- ${dst_dpn_id_list} = BuiltIn.Create List @{DPN_ID_LIST}
- Collections.Remove From List ${dst_dpn_id_list} ${tools_system_index}
- BuiltIn.Wait Until Keyword Succeeds
- ... 60
- ... 5
- ... OFT Verify Vteps Deleted at Dpn Teps State per Interface
- ... ${dpn_id_list}[${tools_system_index}]
- ... ${dst_dpn_id_list}
- ${ovs_vsctl_output} = BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... Utils.Run Command On Remote System And Log
- ... ${tools_ip_list}[${tools_system_index}]
- ... sudo ovs-vsctl show
- BuiltIn.Should Not Contain ${ovs_vsctl_output} remote_ip=flow
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... OFT OVS Verify Ingress Flows Deleted per Switch
- ... ${tools_ip_list}[${tools_system_index}]
- BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 10
- ... OFT OVS Verify Egress Flows Deleted per Switch
- ... ${tools_ip_list}[${tools_system_index}]
- END
-
-OFT Verify Vteps Deleted at Dpn Teps State per Interface
- [Documentation] Verify if vteps are deleted for all src-dst intf pair at dpn-teps-state in ODL for a given src intf.
- [Arguments] ${src_dpn_id} ${dst_dpn_id_list}
- FOR ${dst_dpn_id} IN @{dst_dpn_id_list}
- ${status} = BuiltIn.Run Keyword And Return Status
- ... Genius.Get Tunnel
- ... ${src_dpn_id}
- ... ${dst_dpn_id}
- ... odl-interface:tunnel-type-vxlan
- ... dpn-teps-state
- BuiltIn.Should Be True ${status} == ${False}
- END
-
-OFT OVS Verify Ingress Flows Deleted per Switch
- [Documentation] Verify if Ingress flow rules are deleted in OVS for a given switch.
- [Arguments] ${tools_ip}
- ${flows_table0_output} = Utils.Run Command On Remote System And Log
- ... ${tools_ip}
- ... sudo ovs-ofctl -OOpenFlow13 dump-flows ${Bridge} ${FLOWS_FILTER_TABLE0}
- BuiltIn.Should Not Contain ${flows_table0_output} tun_src=
-
-OFT OVS Verify Egress Flows Deleted per Switch
- [Documentation] Verify if Egress flow rules are deleted in OVS for a given switch.
- [Arguments] ${tools_ip}
- ${flows_table95_output} = Utils.Run Command On Remote System And Log
- ... ${tools_ip}
- ... sudo ovs-ofctl -OOpenFlow13 dump-flows ${Bridge} ${FLOWS_FILTER_TABLE95}
- BuiltIn.Should Not Contain ${flows_table95_output} output:
-
-OF Tunnels Start Suite
- [Documentation] Start suite for OF Tunnels.
- ClusterManagement.ClusterManagement_Setup
- ClusterManagement.Stop_Members_From_List_Or_All
- FOR ${controller_index} IN RANGE ${NUM_ODL_SYSTEM}
- Run Command On Remote System And Log
- ... ${ODL_SYSTEM_${controller_index+1}_IP}
- ... sed -i -- 's/<itm-direct-tunnels>false/<itm-direct-tunnels>true/g' ${GENIUS_IFM_CONFIG_FLAG}
- Run Command On Remote System And Log
- ... ${ODL_SYSTEM_${controller_index+1}_IP}
- ... sed -i -- 's/<use-of-tunnels>false/<use-of-tunnels>true/g' ${GENIUS_ITM_CONFIG_FLAG}
- END
- ClusterManagement.Start_Members_From_List_Or_All
- Genius Suite Setup
-
-OF Tunnels Stop Suite
- [Documentation] Stop suite for OF Tunnels.
- FOR ${controller_index} IN RANGE ${NUM_ODL_SYSTEM}
- Run Command On Remote System And Log
- ... ${ODL_SYSTEM_${controller_index+1}_IP}
- ... sed -i -- 's/<itm-direct-tunnels>true/<itm-direct-tunnels>false/g' ${GENIUS_IFM_CONFIG_FLAG}
- Run Command On Remote System And Log
- ... ${ODL_SYSTEM_${controller_index+1}_IP}
- ... sed -i -- 's/<itm-of-tunnels>true/<itm-of-tunnels>false/g' ${GENIUS_IFM_CONFIG_FLAG}
- END
- ClusterManagement.Stop_Members_From_List_Or_All
- ClusterManagement.Start_Members_From_List_Or_All
- Genius Suite Teardown
+++ /dev/null
-*** Settings ***
-Documentation Test Suite for Service Recovery.
-... Find detailed test plan here, http://docs.opendaylight.org/en/latest/submodules/genius/docs/testplans/service-recovery.html
-
-Resource ../../libraries/DataModels.robot
-Resource ../../libraries/Genius.robot
-Resource ../../libraries/OVSDB.robot
-Resource ../../libraries/Utils.robot
-Resource ../../libraries/VpnOperations.robot
-Resource ../../variables/Variables.robot
-Variables ../../variables/genius/Modules.py
-
-Suite Setup Genius.SRM Start Suite
-Suite Teardown Genius.SRM Stop Suite
-Test Setup Genius Test Setup
-Test Teardown Genius Test Teardown ${data_models}
-
-
-*** Test Cases ***
-ITM TZ Recovery
- [Documentation] This test case recovers the tunnels using transportzone name.
- Delete Tunnel on OVS
- KarafKeywords.Issue Command On Karaf Console srm:recover INSTANCE ITM-TZ TZA
- BuiltIn.Wait Until Keyword Succeeds 60s 5s Genius.Verify Tunnel Status As Up
-
-ITM TEP Recovery
- [Documentation] This test case recovers the tunnels using transportzone name and tunnel's ip address.
- Delete Tunnel on OVS
- KarafKeywords.Issue Command On Karaf Console srm:recover INSTANCE ITM-TEP TZA:${TOOLS_SYSTEM_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s Genius.Verify Tunnel Status As Up
-
-ITM Service Recovery
- [Documentation] This test case recovers ITM Service.
- ${tunnel} = BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 20
- ... Genius.Get Tunnel
- ... ${DPN_ID_LIST[0]}
- ... ${DPN_ID_LIST[1]}
- ... odl-interface:tunnel-type-vxlan
- Utils.Remove All Elements At URI And Verify ${CONFIG_API}/ietf-interfaces:interfaces/interface/${tunnel}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s Genius.Verify Tunnel Delete on DS ${tunnel}
- KarafKeywords.Issue Command On Karaf Console srm:recover SERVICE ITM
- BuiltIn.Wait Until Keyword Succeeds 60s 5s Genius.Verify Tunnel Status As Up
-
-IFM Instance Recovery
- [Documentation] This test case recovers tunnel interface instance using interface name.
- ${tunnel} = BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 20
- ... Genius.Get Tunnel
- ... ${DPN_ID_LIST[0]}
- ... ${DPN_ID_LIST[1]}
- ... odl-interface:tunnel-type-vxlan
- Delete Tunnel on OVS
- KarafKeywords.Issue Command On Karaf Console srm:recover INSTANCE IFM-IFACE ${tunnel}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s Genius.Verify Tunnel Status As Up
-
-IFM Service Recovery
- [Documentation] This test case recovers IFM Service.
- ${tunnel} = BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 20
- ... Genius.Get Tunnel
- ... ${DPN_ID_LIST[0]}
- ... ${DPN_ID_LIST[1]}
- ... odl-interface:tunnel-type-vxlan
- SSHLibrary.Switch Connection ${TOOLS_SYSTEM_ALL_CONN_IDS[0]}
- ${uuid} ${bridge} = OVSDB.Get Bridge Data
- ${resp} = RequestsLibrary.Delete Request
- ... session
- ... ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${uuid}%2Fbridge%2F${bridge}
- BuiltIn.Should Be Equal As Strings ${resp.status_code} ${RESP_CODE}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s Genius.Verify Tunnel Delete on DS ${tunnel}
- KarafKeywords.Issue Command On Karaf Console srm:recover SERVICE IFM
- BuiltIn.Wait Until Keyword Succeeds 60s 5s Genius.Verify Tunnel Status As Up
-
-
-*** Keywords ***
-Delete Tunnel on OVS
- [Documentation] Deletes a tunnel interface on switch and verify deletion on OVS.
- ${tunnel} = BuiltIn.Wait Until Keyword Succeeds
- ... 40
- ... 20
- ... Genius.Get Tunnel
- ... ${DPN_ID_LIST[0]}
- ... ${DPN_ID_LIST[1]}
- ... odl-interface:tunnel-type-vxlan
- Utils.Run Command On Remote System ${TOOLS_SYSTEM_1_IP} sudo ovs-vsctl del-port ${tunnel}
- BuiltIn.Wait Until Keyword Succeeds 60s 5s Genius.Verify Tunnel Delete on DS ${tunnel}
+++ /dev/null
-# Place the suites in run order:
-integration/test/csit/suites/genius/Interface_manager.robot
-integration/test/csit/suites/genius/ID_manager.robot
-integration/test/csit/suites/genius/Configure_ITM.robot
-integration/test/csit/suites/genius/BFD_monitoring.robot
+++ /dev/null
-genius-genius.txt
\ No newline at end of file
+++ /dev/null
-# Place the suites in run order:
-integration/test/csit/suites/genius/Interface_manager.robot
-integration/test/csit/suites/genius/ID_manager.robot
-integration/test/csit/suites/genius/Configure_ITM.robot
-integration/test/csit/suites/genius/BFD_monitoring.robot
-integration/test/csit/suites/genius/Service_Recovery.robot
-integration/test/csit/suites/genius/ITM_Direct_Tunnels.robot
-integration/test/csit/suites/genius/ITM_Vtep_Auto_Tunnel.robot
-integration/test/csit/suites/genius/OF_Tunnels.robot
+++ /dev/null
-# Suites listed here are intended to help with test driven development and/or when we want to allow
-# CSIT suites to be run without risk of causing our "hopefully" stable existing CSIT jobs to have
-# unnecessary failures.
-#
-# Place the suites in run order:
-
+++ /dev/null
-genius-genius.txt
\ No newline at end of file
+++ /dev/null
-# Place the suites in run order:
-integration/test/csit/suites/genius/Interface_manager.robot
-integration/test/csit/suites/genius/ID_manager.robot
-integration/test/csit/suites/genius/Configure_ITM.robot
-integration/test/csit/suites/genius/BFD_monitoring.robot
-integration/test/csit/suites/genius/Service_Recovery.robot
-integration/test/csit/suites/genius/ITM_Direct_Tunnels.robot
-integration/test/csit/suites/genius/ITM_Vtep_Auto_Tunnel.robot
+++ /dev/null
-{"project":"genius","branch":"master","id":"I2f363becf04bc2903fb249af7070c94018349ce8","number":"50131","subject":"ITM POM minor clean up","owner":{"name":"Michael Vorburger","email":"vorburger@redhat.com","username":"vorburger"},"url":"https://git.opendaylight.org/gerrit/50131","commitMessage":"ITM POM minor clean up\n\nmoved all Testing Dependencies together\n\nremoved not needed \u003cversion\u003e of org.apache.karaf.shell\n\nChange-Id: I2f363becf04bc2903fb249af7070c94018349ce8\nSigned-off-by: Michael Vorburger \u003cvorburger@redhat.com\u003e\n","createdOn":1483969621,"lastUpdated":1483984978,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"9a98ab9623d9a91ab9fd98662b55a27ab44fc67f","parents":["03fbe49dc82f35103b3fa85ffebd0088d579e80b"],"ref":"refs/changes/31/50131/1","uploader":{"name":"Michael Vorburger","email":"vorburger@redhat.com","username":"vorburger"},"createdOn":1483969621,"author":{"name":"Michael Vorburger","email":"vorburger@redhat.com","username":"vorburger"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1483971510,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}},{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1483979185,"by":{"name":"Michael Vorburger","email":"vorburger@redhat.com","username":"vorburger"}},{"type":"SUBM","value":"1","grantedOn":1483979188,"by":{"name":"Michael Vorburger","email":"vorburger@redhat.com","username":"vorburger"}}],"sizeInsertions":13,"sizeDeletions":-13}]}
-{"project":"genius","branch":"master","topic":"toStringIpAddress","id":"Ife5fa781542a8465626d8a6bc2feb6d66cfa62b6","number":"49835","subject":"Refactor NWUtil.toStringIpAddress","owner":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"url":"https://git.opendaylight.org/gerrit/49835","commitMessage":"Refactor NWUtil.toStringIpAddress\n\n + Replaces the current StringBuilder approach with the\n InetAddress.getByAddress() method that is 1) faster and\n 2) IpV6 compatible.\n\n + This method is not used anywhere (yet), but it will.\n\nChange-Id: Ife5fa781542a8465626d8a6bc2feb6d66cfa62b6\nSigned-off-by: Miguel Perez \u003cfrancisco.miguel.perez@ericsson.com\u003e\n","createdOn":1482863073,"lastUpdated":1483970835,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"8a29d854bda088b766134fce478626c0cfd61e32","parents":["864bae12a0dc6ee45381ab705838141e65170f75"],"ref":"refs/changes/35/49835/1","uploader":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"createdOn":1482863073,"author":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1482863388,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":6,"sizeDeletions":-8},{"number":"2","revision":"1f9b8614e8c5a31499d6275a08b3a38938ec7b36","parents":["864bae12a0dc6ee45381ab705838141e65170f75"],"ref":"refs/changes/35/49835/2","uploader":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"createdOn":1482863373,"author":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1482864957,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":5,"sizeDeletions":-7},{"number":"3","revision":"c48eb54d93b19b7f2b217fcfbd27402ffdd4b8cc","parents":["864bae12a0dc6ee45381ab705838141e65170f75"],"ref":"refs/changes/35/49835/3","uploader":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"createdOn":1482942586,"author":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1482942769,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":20,"sizeDeletions":-10},{"number":"4","revision":"04abf285c4089f953b96d590d164c10a0bd59f50","parents":["864bae12a0dc6ee45381ab705838141e65170f75"],"ref":"refs/changes/35/49835/4","uploader":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"createdOn":1482942754,"author":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1483194591,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}},{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483615464,"by":{"name":"David Suarez","email":"david.suarez.fuentes@ericsson.com","username":"edavsua"}}],"sizeInsertions":20,"sizeDeletions":-10},{"number":"5","revision":"25fcfd8da20bb31dde4847195798f1b9de7e57f8","parents":["03fbe49dc82f35103b3fa85ffebd0088d579e80b"],"ref":"refs/changes/35/49835/5","uploader":{"name":"David Suarez","email":"david.suarez.fuentes@ericsson.com","username":"edavsua"},"createdOn":1483960917,"author":{"name":"Miguel Perez","email":"francisco.miguel.perez@ericsson.com","username":"eperefr"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1483962369,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}},{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1483969330,"by":{"name":"David Suarez","email":"david.suarez.fuentes@ericsson.com","username":"edavsua"}},{"type":"SUBM","value":"1","grantedOn":1483969332,"by":{"name":"David Suarez","email":"david.suarez.fuentes@ericsson.com","username":"edavsua"}}],"sizeInsertions":20,"sizeDeletions":-10}]}
-{"project":"genius","branch":"master","topic":"dlux-split","id":"I4cfeef30c7e83820ef628831c9a2ff6fb2622421","number":"49342","subject":"Replace dlux with dluxapps features","owner":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"url":"https://git.opendaylight.org/gerrit/49342","commitMessage":"Replace dlux with dluxapps features\n\nRenaming is due to DLUX project split.\nAlso, replacing yangui feature with yangman, new, redesigned and restyled\napplication.\n\nhttps://wiki.opendaylight.org/view/Weather#Rename_some_odl-dlux-.2A_features_to_odl-dluxapps-.2A\n\nChange-Id: I4cfeef30c7e83820ef628831c9a2ff6fb2622421\nSigned-off-by: Daniel Malachovsky \u003cdmalacho@cisco.com\u003e\n","createdOn":1481715890,"lastUpdated":1483846857,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"ea5a578065302f93f76ce1667284d5c6c1bd0337","parents":["397e795d74c1291cf5104edd3bce8bbb60c73ea3"],"ref":"refs/changes/42/49342/1","uploader":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"createdOn":1481715890,"author":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1482224474,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":6,"sizeDeletions":-6},{"number":"2","revision":"a513a93b44897b005ac82539c2dd3f2e7363b61f","parents":["397e795d74c1291cf5104edd3bce8bbb60c73ea3"],"ref":"refs/changes/42/49342/2","uploader":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"createdOn":1483641452,"author":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"isDraft":false,"kind":"NO_CODE_CHANGE","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1483648069,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":6,"sizeDeletions":-6},{"number":"3","revision":"0de4aadfbef91892c102bda3d8a3004f88716e0a","parents":["b072ba5ef5f34c8545a688094125124653556475"],"ref":"refs/changes/42/49342/3","uploader":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"createdOn":1483648484,"author":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1483649880,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":6,"sizeDeletions":-6},{"number":"4","revision":"305659cf8ae9d1a1a4c56a9f38910997b201efde","parents":["397e795d74c1291cf5104edd3bce8bbb60c73ea3"],"ref":"refs/changes/42/49342/4","uploader":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"createdOn":1483649834,"author":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1483651338,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":6,"sizeDeletions":-6},{"number":"5","revision":"ce441f4f431b7b834b04c451d7d4dab05a35ed79","parents":["b072ba5ef5f34c8545a688094125124653556475"],"ref":"refs/changes/42/49342/5","uploader":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"createdOn":1483651377,"author":{"name":"Daniel Malachovsky","email":"dmalacho@cisco.com","username":"malachovsky"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1483845361,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"SUBM","value":"1","grantedOn":1483845365,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Verified","description":"Verified","value":"1","grantedOn":1483845361,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483693453,"by":{"name":"Vivek Srivastava","email":"vivek.v.srivastava@ericsson.com","username":"esravik"}}],"sizeInsertions":6,"sizeDeletions":-6}]}
-{"project":"genius","branch":"master","topic":"batch-delete","id":"Ifb8f54786405c93bdee3357d625881cf1671255e","number":"50023","subject":"Use batching in interface Delete path","owner":{"name":"Vishal Thapar","email":"vishal.thapar@ericsson.com","username":"thapar"},"url":"https://git.opendaylight.org/gerrit/50023","commitMessage":"Use batching in interface Delete path\n\nInterface delete path is still not using batching which has performance\nissues in a scale setup.\n\nChange-Id: Ifb8f54786405c93bdee3357d625881cf1671255e\nSigned-off-by: Vishal Thapar \u003cvishal.thapar@ericsson.com\u003e\n","createdOn":1483542579,"lastUpdated":1483770127,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"a654f2678967d669f6de80d1ee701b4b268ac14a","parents":["732d7db4cad1d18b83c6361d31e914bf32463646"],"ref":"refs/changes/23/50023/1","uploader":{"name":"Vishal Thapar","email":"vishal.thapar@ericsson.com","username":"thapar"},"createdOn":1483542579,"author":{"name":"Vishal Thapar","email":"vishal.thapar@ericsson.com","username":"thapar"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483544898,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Verified","description":"Verified","value":"-1","grantedOn":1483546504,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":8,"sizeDeletions":-9},{"number":"2","revision":"2bb8bff62eb89cfbca423ae457d6e2a181d3e154","parents":["ead51e8d1d9ef920a712bf2b076bfde97a6d4134"],"ref":"refs/changes/23/50023/2","uploader":{"name":"Vishal Thapar","email":"vishal.thapar@ericsson.com","username":"thapar"},"createdOn":1483598553,"author":{"name":"Vishal Thapar","email":"vishal.thapar@ericsson.com","username":"thapar"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483613161,"by":{"name":"Hema Gopalakrishnan","email":"hema.gopalkrishnan@ericsson.com","username":"HemaTG"}},{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1483768725,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"SUBM","value":"1","grantedOn":1483768728,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Verified","description":"Verified","value":"1","grantedOn":1483682863,"by":{"name":"Vishal Thapar","email":"vishal.thapar@ericsson.com","username":"thapar"}}],"sizeInsertions":9,"sizeDeletions":-10}]}
-{"project":"genius","branch":"master","topic":"action-redesign","id":"I1403cad670c2f0f8c60efbf69da38e2006d211d0","number":"49047","subject":"Action redesign: add regression test for ActionType.learn","owner":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"url":"https://git.opendaylight.org/gerrit/49047","commitMessage":"Action redesign: add regression test for ActionType.learn\n\nChange-Id: I1403cad670c2f0f8c60efbf69da38e2006d211d0\nSigned-off-by: Stephen Kitt \u003cskitt@redhat.com\u003e\n","createdOn":1481046022,"lastUpdated":1483607842,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"0f935f8ef037e91d9e7ac1f6a93a1bd117c7c2ff","parents":["fc9d69776a6681a238bbb0022ec6259abe5e1ba0"],"ref":"refs/changes/47/49047/1","uploader":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"createdOn":1481046022,"author":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1481047576,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":136,"sizeDeletions":0},{"number":"2","revision":"d26005c5fa1e6aeedd518c27de7c674938922cc1","parents":["ec49800f3e6076597eaae4fe812d4a6efaf4e67d"],"ref":"refs/changes/47/49047/2","uploader":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"createdOn":1481163856,"author":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1481184549,"by":{"name":"Alon Kochba","email":"alonko@hpe.com","username":"alonko"}},{"type":"Verified","description":"Verified","value":"1","grantedOn":1481165561,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":136,"sizeDeletions":0},{"number":"3","revision":"5f03664b9f514ca079e54e7bfe140adfa5f3ee64","parents":["80f49454e5cf380aff9cc2ccba7977acc29c495c"],"ref":"refs/changes/47/49047/3","uploader":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"createdOn":1481274420,"author":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1481276913,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":136,"sizeDeletions":0},{"number":"4","revision":"3d2a1d90df0dea12d13af888644247adebaafd01","parents":["fa710f327db056ccc631afc474dc96bfb5b36668"],"ref":"refs/changes/47/49047/4","uploader":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"createdOn":1481527767,"author":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1481529050,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":136,"sizeDeletions":0},{"number":"5","revision":"811ea01543b5a366cbd014b3be62bee709075f78","parents":["e778d4e7b5ec582b9f798f9e3e4618565bcfe7f8"],"ref":"refs/changes/47/49047/5","uploader":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"createdOn":1481535138,"author":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1481536968,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":136,"sizeDeletions":0},{"number":"6","revision":"4c86a4867463f6b1b49faa2c4098c966aa01dd10","parents":["424aebaf3bcfec186755a5c8a0c3b125e335ce1b"],"ref":"refs/changes/47/49047/6","uploader":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"createdOn":1481718372,"author":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1481721026,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":136,"sizeDeletions":0},{"number":"7","revision":"dbb82039a49f7426c36af92ad8166b8aebeda1ab","parents":["093bf739adc0bb53830e98e74f8a65b51ed2437e"],"ref":"refs/changes/47/49047/7","uploader":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"createdOn":1481886794,"author":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1481889287,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":136,"sizeDeletions":0},{"number":"8","revision":"05730e2869f77460f429047459b9868c258b2633","parents":["526b1ec02db5243ece2e1c96ec21f042d04d74ff"],"ref":"refs/changes/47/49047/8","uploader":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"createdOn":1482429775,"author":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483548018,"by":{"name":"Alon Kochba","email":"alonko@hpe.com","username":"alonko"}}],"sizeInsertions":136,"sizeDeletions":0},{"number":"9","revision":"b072ba5ef5f34c8545a688094125124653556475","parents":["ead51e8d1d9ef920a712bf2b076bfde97a6d4134"],"ref":"refs/changes/47/49047/9","uploader":{"name":"David Suarez","email":"david.suarez.fuentes@ericsson.com","username":"edavsua"},"createdOn":1483604307,"author":{"name":"Stephen Kitt","email":"skitt@redhat.com","username":"skitt"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1483605993,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}},{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1483604350,"by":{"name":"David Suarez","email":"david.suarez.fuentes@ericsson.com","username":"edavsua"}},{"type":"SUBM","value":"1","grantedOn":1483606656,"by":{"name":"David Suarez","email":"david.suarez.fuentes@ericsson.com","username":"edavsua"}}],"sizeInsertions":136,"sizeDeletions":0}]}
-{"project":"genius","branch":"master","id":"I91531d00dad320efba3737c3dff661dc57601604","number":"49966","subject":"Allow Nicira Extension Actions in BoundServices","owner":{"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"url":"https://git.opendaylight.org/gerrit/49966","commitMessage":"Allow Nicira Extension Actions in BoundServices\n\nChange-Id: I91531d00dad320efba3737c3dff661dc57601604\nSigned-off-by: deepthivv88 \u003cdeepthi.v.v@ericsson.com\u003e\n","createdOn":1483442920,"lastUpdated":1483549276,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"b083f6d71d635ef645f668adb3c72af5b58c2565","parents":["732d7db4cad1d18b83c6361d31e914bf32463646"],"ref":"refs/changes/66/49966/1","uploader":{"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"createdOn":1483442920,"author":{"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1483443339,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":299,"sizeDeletions":0},{"number":"2","revision":"073416fdbb31f5206e575b0fcdfed456860b390d","parents":["732d7db4cad1d18b83c6361d31e914bf32463646"],"ref":"refs/changes/66/49966/2","uploader":{"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"createdOn":1483458274,"author":{"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483508036,"by":{"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"}},{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1483545261,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"SUBM","value":"1","grantedOn":1483545267,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Verified","description":"Verified","value":"1","grantedOn":1483545261,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483510317,"by":{"name":"D Arunprakash","email":"d.arunprakash@ericsson.com","username":"arunprakashd"}}],"sizeInsertions":299,"sizeDeletions":0}]}
-{"project":"genius","branch":"master","id":"I37312000019b6eb7826f10f19b9fa7b2695101a3","number":"49764","subject":"handling idmanager csit intermittent failures","owner":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"url":"https://git.opendaylight.org/gerrit/49764","commitMessage":"handling idmanager csit intermittent failures\n\n* Due to faster allocation/deallocation of ids, release id is not able to\nfind the idKey in parent pool ds which is being fixed by a latch.\n* Fix NPE by throwing IdManagerExcepion if requested id range is not\navailable\n\nChange-Id: I37312000019b6eb7826f10f19b9fa7b2695101a3\nSigned-off-by: Periyasamy Palanisamy \u003cperiyasamy.palanisamy@ericsson.com\u003e\n","createdOn":1482469344,"lastUpdated":1483547804,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"12ef920fcec27334bf33271ae14dfd8b2f9eb601","parents":["3dd38ef8a108839a4ba5e49c3fe8c96b0ec73ac8"],"ref":"refs/changes/64/49764/1","uploader":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"createdOn":1482469344,"author":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1482470696,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":18,"sizeDeletions":-2},{"number":"2","revision":"308cbe31f2508e0b7b921dbd476227d30a56c3ce","parents":["3dd38ef8a108839a4ba5e49c3fe8c96b0ec73ac8"],"ref":"refs/changes/64/49764/2","uploader":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"createdOn":1482471732,"author":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1482472991,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":21,"sizeDeletions":-4},{"number":"3","revision":"8543b4496d8066f2fd9f54564ce64d55c7ddb48e","parents":["3dd38ef8a108839a4ba5e49c3fe8c96b0ec73ac8"],"ref":"refs/changes/64/49764/3","uploader":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"createdOn":1482474435,"author":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1482475888,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":21,"sizeDeletions":-5},{"number":"4","revision":"786eb4396b4751b2c113e25d9258c723a2b61d19","parents":["9c41fd02fd048a04dc1416b133ef16f8eeff5a29"],"ref":"refs/changes/64/49764/4","uploader":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"createdOn":1482733899,"author":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1483545047,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"SUBM","value":"1","grantedOn":1483545051,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Verified","description":"Verified","value":"1","grantedOn":1483545047,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483510197,"by":{"name":"Vishal Thapar","email":"vishal.thapar@ericsson.com","username":"thapar"}},{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483436306,"by":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"}}],"sizeInsertions":22,"sizeDeletions":-5}]}
-{"project":"genius","branch":"master","id":"Ie592618dbf2b1db6d1891b111b14db04c01272eb","number":"49924","subject":"Bug 7450 : suppressing unnecessary warning logs","owner":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"url":"https://git.opendaylight.org/gerrit/49924","commitMessage":"Bug 7450 : suppressing unnecessary warning logs\n\n* check to remove unncessary alivenessmonitor warn logs while packet\nin handling\n\nChange-Id: Ie592618dbf2b1db6d1891b111b14db04c01272eb\nSigned-off-by: Periyasamy Palanisamy \u003cperiyasamy.palanisamy@ericsson.com\u003e\n","createdOn":1483333787,"lastUpdated":1483436798,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"732d7db4cad1d18b83c6361d31e914bf32463646","parents":["8529e46223c7d580c305c50fcf4f5b41bc450805"],"ref":"refs/changes/24/49924/1","uploader":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"createdOn":1483333787,"author":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483375023,"by":{"name":"Alon Kochba","email":"alonko@hpe.com","username":"alonko"}},{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1483435249,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"SUBM","value":"1","grantedOn":1483435252,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Verified","description":"Verified","value":"1","grantedOn":1483334994,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}},{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1483350274,"by":{"name":"Tali Ben-Meir","email":"tali.ben-meir@hpe.com","username":"tali"}}],"sizeInsertions":8,"sizeDeletions":-3}]}
-{"project":"genius","branch":"master","id":"Ia5f7cd262b892fafd3b74551e8e82a0b3a1b5720","number":"49469","subject":"Moving interface-manager CLI utils to use cached entries","owner":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"url":"https://git.opendaylight.org/gerrit/49469","commitMessage":"Moving interface-manager CLI utils to use cached entries\n\nDescription : vlan:show and vxlan:show commands in interface-manager were\ndoing a read from datastore, when the entries are available in cache\nactually. Changing the utils to make use of the same, so that the reads\ncan be faster in scaled scenarios\n\nChange-Id: Ia5f7cd262b892fafd3b74551e8e82a0b3a1b5720\nSigned-off-by: Faseela K \u003cfaseela.k@ericsson.com\u003e\n","createdOn":1481885722,"lastUpdated":1482917228,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"0420a799abc5adc63d758586b8216ba8ead944b8","parents":["093bf739adc0bb53830e98e74f8a65b51ed2437e"],"ref":"refs/changes/69/49469/1","uploader":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"createdOn":1481885722,"author":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"isDraft":false,"kind":"REWORK","sizeInsertions":28,"sizeDeletions":-19},{"number":"2","revision":"228320c183c28a841b53d5c8fb1544f76b34c1d2","parents":["093bf739adc0bb53830e98e74f8a65b51ed2437e"],"ref":"refs/changes/69/49469/2","uploader":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"createdOn":1481885804,"author":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"1","grantedOn":1481887491,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":28,"sizeDeletions":-16},{"number":"3","revision":"1a95c4ec0df6b0a87548e2a11a074e4a3d8d24aa","parents":["093bf739adc0bb53830e98e74f8a65b51ed2437e"],"ref":"refs/changes/69/49469/3","uploader":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"createdOn":1481892167,"author":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1482213949,"by":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"}}],"sizeInsertions":16,"sizeDeletions":-19},{"number":"4","revision":"8625b69886be7e829373587ac9c18c347bdb3b4c","parents":["526b1ec02db5243ece2e1c96ec21f042d04d74ff"],"ref":"refs/changes/69/49469/4","uploader":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"createdOn":1482458109,"author":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1482915905,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"SUBM","value":"1","grantedOn":1482915914,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Verified","description":"Verified","value":"1","grantedOn":1482915905,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}}],"sizeInsertions":16,"sizeDeletions":-19}]}
-{"project":"genius","branch":"master","topic":"bug/7419","id":"Id5550bb2a483d14572803f0e346f2209b9cb9bcc","number":"49694","subject":"Bug 7419 : Ids from id pool exhausted","owner":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"url":"https://git.opendaylight.org/gerrit/49694","commitMessage":"Bug 7419 : Ids from id pool exhausted\n\nObserved that there were many threads waiting to allocate block of ids\nfrom parent pool. Once a thread acquired lock it just used to update its\navailableIdHolder with that block without checking if some other thread\nhas already updated the localPoolCache.\n\nAfter acquiring lock, a check has been added to know if some other thread\nhas already updated the availableIdHolder/releaseIdHolder.\n\nChange-Id: Id5550bb2a483d14572803f0e346f2209b9cb9bcc\nSigned-off-by: Kency Kurian \u003ckency.kurian@ericsson.com\u003e\n","createdOn":1482323675,"lastUpdated":1482776505,"open":false,"status":"MERGED","patchSets":[{"number":"1","revision":"3822d081dcaeb3eed8cba915b2cf9bf244ca71a4","parents":["a58f5005d708469bdc262bc41f3b091520b80467"],"ref":"refs/changes/94/49694/1","uploader":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"createdOn":1482323675,"author":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"isDraft":false,"kind":"REWORK","sizeInsertions":9,"sizeDeletions":-2},{"number":"2","revision":"7183c61beb35a0240357f7b0bf3cd091c0eab9f4","parents":["a58f5005d708469bdc262bc41f3b091520b80467"],"ref":"refs/changes/94/49694/2","uploader":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"createdOn":1482385532,"author":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1482386215,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":11,"sizeDeletions":-4},{"number":"3","revision":"5116512fe4e40f3943594bb3cc48fab8f34aa3a1","parents":["a58f5005d708469bdc262bc41f3b091520b80467"],"ref":"refs/changes/94/49694/3","uploader":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"createdOn":1482386197,"author":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"isDraft":false,"kind":"REWORK","approvals":[{"type":"Verified","description":"Verified","value":"-1","grantedOn":1482386411,"by":{"name":"jenkins-releng","email":"jenkins-releng@opendaylight.org","username":"jenkins-releng"}}],"sizeInsertions":13,"sizeDeletions":-10},{"number":"4","revision":"66628bb7f103a9814e61c0b384585d83e1183017","parents":["a58f5005d708469bdc262bc41f3b091520b80467"],"ref":"refs/changes/94/49694/4","uploader":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"createdOn":1482386702,"author":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"isDraft":false,"kind":"REWORK","sizeInsertions":13,"sizeDeletions":-14},{"number":"5","revision":"cdb47780cb36aff59de8fe0294808642e1f18faa","parents":["526b1ec02db5243ece2e1c96ec21f042d04d74ff"],"ref":"refs/changes/94/49694/5","uploader":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"createdOn":1482472747,"author":{"name":"Kency Kurian","email":"kency.kurian@ericsson.com","username":"Kency"},"isDraft":false,"kind":"TRIVIAL_REBASE","approvals":[{"type":"Code-Review","description":"Code-Review","value":"2","grantedOn":1482775210,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"SUBM","value":"1","grantedOn":1482775215,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Verified","description":"Verified","value":"1","grantedOn":1482775210,"by":{"name":"Faseela K","email":"faseela.k@ericsson.com","username":"k.faseela"}},{"type":"Code-Review","description":"Code-Review","value":"1","grantedOn":1482736614,"by":{"name":"Periyasamy Palanisamy","email":"periyasamy.palanisamy@ericsson.com","username":"pperiyasamy"}}],"sizeInsertions":13,"sizeDeletions":-14}]}
-{"type":"stats","rowCount":10,"runTimeMilliseconds":120,"moreChanges":true}