X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FSxpLib.robot;h=2c5d9436bc3ab9cf8e4dcd7d4018cddf4198c0d9;hb=94651ca9711d8eb316721775561e815830bc6c7e;hp=be7b43ba7424a9a29577cf5f65197a298572038e;hpb=a13e6db83cba1fa6401e5252e32b60037f92d41d;p=integration%2Ftest.git diff --git a/csit/libraries/SxpLib.robot b/csit/libraries/SxpLib.robot index be7b43ba74..2c5d9436bc 100644 --- a/csit/libraries/SxpLib.robot +++ b/csit/libraries/SxpLib.robot @@ -68,8 +68,9 @@ Clean Connections [Documentation] Delete all connections via RPC from node ${resp} = Get Connections ${node} ${session} ${domain} @{connections} = Sxp.Parse Connections ${resp} - : FOR ${connection} IN @{connections} - \ Delete Connections ${connection['peer-address']} ${connection['tcp-port']} ${node} ${session} ${domain} + FOR ${connection} IN @{connections} + Delete Connections ${connection['peer-address']} ${connection['tcp-port']} ${node} ${session} ${domain} + END Verify Connection [Arguments] ${version} ${mode} ${ip} ${port}=64999 ${node}=127.0.0.1 ${state}=on @@ -109,10 +110,11 @@ Clean Bindings [Documentation] Delete all bindings via RPC from Master DB of node ${resp} = Get Bindings ${node} ${session} ${domain} ${scope} @{bindings} = Sxp.Parse Bindings ${resp} - : FOR ${binding} IN @{bindings} - \ @{prefixes_list} = collections.Get From Dictionary ${binding} ip-prefix - \ ${prefixes} = BuiltIn.Catenate SEPARATOR=, @{prefixes_list} - \ Delete Bindings ${binding['sgt']} ${prefixes} ${node} ${domain} ${session} + FOR ${binding} IN @{bindings} + @{prefixes_list} = collections.Get From Dictionary ${binding} ip-prefix + ${prefixes} = BuiltIn.Catenate SEPARATOR=, @{prefixes_list} + Delete Bindings ${binding['sgt']} ${prefixes} ${node} ${domain} ${session} + END Delete Bindings [Arguments] ${sgt} ${prefixes} ${node}=127.0.0.1 ${domain}=global ${session}=session @@ -145,16 +147,29 @@ Clean Peer Groups [Documentation] Delete all PeerGroups via RPC from node ${resp} = Get Peer Groups ${node} ${session} @{prefixes} = Sxp.Parse Peer Groups ${resp} - : FOR ${group} IN @{prefixes} - \ Delete Peer Group ${group['name']} ${node} ${session} + FOR ${group} IN @{prefixes} + Delete Peer Group ${group['name']} ${node} ${session} + END Add Filter [Arguments] ${name} ${type} ${entries} ${node}=127.0.0.1 ${session}=session ${policy}=auto-update [Documentation] Add Filter via RPC from Node + ${data} = Prepare Add/Update Filter Data ${name} ${type} ${entries} ${node} ${policy} + Post To Controller ${session} add-filter ${data} + +Update Filter + [Arguments] ${name} ${type} ${entries} ${node}=127.0.0.1 ${session}=session ${policy}=auto-update + [Documentation] Update Filter via RPC + ${data} = Prepare Add/Update Filter Data ${name} ${type} ${entries} ${node} ${policy} + Post To Controller ${session} update-filter ${data} + +Prepare Add/Update Filter Data + [Arguments] ${name} ${type} ${entries} ${node}=127.0.0.1 ${policy}=auto-update + [Documentation] Prepare XML payload for add-filter and update-filter RPCs. Payloads for both RPCs are the same. ${data} = CompareStream.Run_Keyword_If_At_Least_Else carbon Add Filter Xml ${name} ${type} ${entries} ... ${node} ${policy} ... ELSE Add Filter Xml ${name} ${type} ${entries} ${node} - Post To Controller ${session} add-filter ${data} + [Return] ${data} Add Domain Filter [Arguments] ${name} ${domains} ${entries} ${node}=127.0.0.1 ${filter_name}=base-domain-filter ${session}=session @@ -226,17 +241,18 @@ Connections Should Not Contain Setup Topology Complex [Arguments] ${version}=version4 ${password}=none - : FOR ${node} IN RANGE 2 6 - \ Add Connection ${version} both 127.0.0.1 64999 127.0.0.${node} - \ ... ${password} - \ Add Connection ${version} both 127.0.0.${node} 64999 127.0.0.1 - \ ... ${password} - \ BuiltIn.Wait Until Keyword Succeeds 15 1 Verify Connection ${version} both - \ ... 127.0.0.${node} - \ Add Bindings ${node}0 10.10.10.${node}0/32 127.0.0.${node} - \ Add Bindings ${node}0 10.10.${node}0.0/24 127.0.0.${node} - \ Add Bindings ${node}0 10.${node}0.0.0/16 127.0.0.${node} - \ Add Bindings ${node}0 ${node}0.0.0.0/8 127.0.0.${node} + FOR ${node} IN RANGE 2 6 + Add Connection ${version} both 127.0.0.1 64999 127.0.0.${node} + ... ${password} + Add Connection ${version} both 127.0.0.${node} 64999 127.0.0.1 + ... ${password} + BuiltIn.Wait Until Keyword Succeeds 15 1 Verify Connection ${version} both + ... 127.0.0.${node} + Add Bindings ${node}0 10.10.10.${node}0/32 127.0.0.${node} + Add Bindings ${node}0 10.10.${node}0.0/24 127.0.0.${node} + Add Bindings ${node}0 10.${node}0.0.0/16 127.0.0.${node} + Add Bindings ${node}0 ${node}0.0.0.0/8 127.0.0.${node} + END Add Bindings 10 10.10.10.10/32 127.0.0.1 Add Bindings 10 10.10.10.0/24 127.0.0.1 Add Bindings 10 10.10.0.0/16 127.0.0.1 @@ -289,42 +305,60 @@ Check Binding Range [Arguments] ${sgt} ${start} ${end} ${node}=127.0.0.1 [Documentation] Check if Node contains Bindings specified by range ${resp} = Get Bindings ${node} - : FOR ${num} IN RANGE ${start} ${end} - \ ${ip} = Sxp.Get Ip From Number ${num} - \ Should Contain Binding ${resp} ${sgt} ${ip}/32 + FOR ${num} IN RANGE ${start} ${end} + ${ip} = Sxp.Get Ip From Number ${num} + Should Contain Binding ${resp} ${sgt} ${ip}/32 + END Check Binding Range Negative [Arguments] ${sgt} ${start} ${end} ${node}=127.0.0.1 [Documentation] Check if Node does not contains Bindings specified by range ${resp} = Get Bindings ${node} - : FOR ${num} IN RANGE ${start} ${end} - \ ${ip} = Sxp.Get Ip From Number ${num} - \ Should Not Contain Binding ${resp} ${sgt} ${ip}/32 + FOR ${num} IN RANGE ${start} ${end} + ${ip} = Sxp.Get Ip From Number ${num} + Should Not Contain Binding ${resp} ${sgt} ${ip}/32 + END Setup SXP Environment [Arguments] ${node_range}=1 [Documentation] Create session to Controller, ${node_range} parameter specifies number of localhost nodes to be created on ${ODL_SYSTEM_IP}. RequestsLibrary.Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} timeout=${DEFAULT_TIMEOUT_HTTP} max_retries=0 - : FOR ${num} IN RANGE 1 ${node_range}+1 - \ ${node} = Sxp.Get Ip From Number ${num} - \ ${rnd_retry_time} = BuiltIn.Evaluate random.randint(1, 10) modules=random - \ Add Node ${node} retry_open_timer=${rnd_retry_time} - \ BuiltIn.Wait Until Keyword Succeeds 20 1 Check Node Started ${node} system=${ODL_SYSTEM_IP} + FOR ${num} IN RANGE 1 ${node_range}+1 + ${node} = Sxp.Get Ip From Number ${num} + Add Node ${node} retry_open_timer=${num} + BuiltIn.Wait Until Keyword Succeeds 20 1 Check Node Started ${node} system=${ODL_SYSTEM_IP} + END Check Node Started [Arguments] ${node} ${port}=64999 ${system}=${node} ${session}=session ${ip}=${node} [Documentation] Verify that SxpNode has data writen to Operational datastore and is running ${resp} = RequestsLibrary.Get Request ${session} /restconf/operational/network-topology:network-topology/topology/sxp/node/${node}/ BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 - ${rc} = Utils.Run Command On Remote System ${system} netstat -tln | grep -q ${ip}:${port} && echo 0 || echo 1 ${ODL_SYSTEM_USER} ${ODL_SYSTEM_PASSWORD} prompt=${ODL_SYSTEM_PROMPT} + ${rc} = Get Node Running Status ${node} ${port} ${system} ${session} ${ip} BuiltIn.Should Be Equal As Strings ${rc} 0 +Check Node Stopped + [Arguments] ${node} ${port}=64999 ${system}=${node} ${session}=session ${ip}=${node} + [Documentation] Verify that SxpNode has data removed from Operational datastore and is not running + ${resp} = RequestsLibrary.Get Request ${session} /restconf/operational/network-topology:network-topology/topology/sxp/node/${node}/ + BuiltIn.Should Be Equal As Strings ${resp.status_code} 404 + ${rc} = Get Node Running Status ${node} ${port} ${system} ${session} ${ip} + BuiltIn.Should Be Equal As Strings ${rc} 1 + +Get Node Running Status + [Arguments] ${node} ${port} ${system} ${session} ${ip} + [Documentation] Get status if node is running by checking that netty server is running + ${rc} = Utils.Run Command On Remote System ${system} netstat -tln | grep -q ${ip}:${port} && echo 0 || echo 1 ${ODL_SYSTEM_USER} ${ODL_SYSTEM_PASSWORD} prompt=${ODL_SYSTEM_PROMPT} + [Return] ${rc} + Clean SXP Environment [Arguments] ${node_range}=1 [Documentation] Destroy created sessions - : FOR ${num} IN RANGE 1 ${node_range}+1 - \ ${ip} = Sxp.Get Ip From Number ${num} - \ Delete Node ${ip} + FOR ${num} IN RANGE 1 ${node_range}+1 + ${ip} = Sxp.Get Ip From Number ${num} + Delete Node ${ip} + BuiltIn.Wait Until Keyword Succeeds 12x 10s Check Node Stopped ${ip} system=${ODL_SYSTEM_IP} + END RequestsLibrary.Delete All Sessions Get Routing Configuration From Controller @@ -338,6 +372,7 @@ Put Routing Configuration To Controller [Arguments] ${data} ${session} [Documentation] Put Routing configuration to Config DS ${resp} = RequestsLibrary.Put Request ${session} /restconf/config/sxp-cluster-route:sxp-cluster-route/ data=${data} headers=${HEADERS_XML} + BuiltIn.Log ${resp} BuiltIn.Should Match "${resp.status_code}" "20?" Clean Routing Configuration To Controller