Support decimal64 data nodes in peer group for Sulfur 88/100588/3
authorgvrangan <gvrangan@gmail.com>
Thu, 14 Apr 2022 10:12:40 +0000 (10:12 +0000)
committerSangwook Ha <sangwook.ha@verizon.com>
Tue, 19 Apr 2022 22:42:29 +0000 (15:42 -0700)
In Sulfer decimal64 numbers in the response body include a fraction.
Add separate JSON data files used for verification of peer group
configuration for Sulfur or later and update the keywords to choose
the data directory depending on the controller version.

Change-Id: I0d6d2c55d65ab22ebf22a60ec90b31ee973bac17
Signed-off-by: gvrangan <gvrangan@gmail.com>
Signed-off-by: Sangwook Ha <sangwook.ha@verizon.com>
csit/suites/bgpcep/bgpingest/manypeers_changecount.robot
csit/suites/bgpcep/bgpuser/basic.robot
csit/variables/bgpuser/verify_peer_group.sulfur/data.json [new file with mode: 0644]
csit/variables/bgpuser/verify_peer_group.sulfur/location.uri [new file with mode: 0644]
csit/variables/bgpuser/verify_peer_group_without_ipv4.sulfur/data.json [new file with mode: 0644]
csit/variables/bgpuser/verify_peer_group_without_ipv4.sulfur/location.uri [new file with mode: 0644]

index 6880260458fe5d304e94b2f724eeafc27a088da2..842d2996cbd298464562958b136ca767914242ec 100644 (file)
@@ -108,15 +108,14 @@ Check_For_Empty_Ipv4_Topology_Before_Talking
 Reconfigure_ODL_To_Accept_Connections
     [Documentation]    Configure BGP peer modules with initiate-connection set to false.
     ...    In Versions Fluorine and above, it sets peer-group as template, and than sets all neighbors using it.
-    CompareStream.Run_Keyword_If_At_Least_Fluorine    Configure_Peer_Group
+    Configure_Peer_Group
     FOR    ${index}    IN RANGE    1    ${MULTIPLICITY_CHANGE_COUNT_MANY}+1
         ${peer_name} =    BuiltIn.Set_Variable    example-bgp-peer-${index}
         ${peer_ip} =    BuiltIn.Evaluate    str(ipaddr.IPAddress('${FIRST_PEER_IP}') + ${index} - 1)    modules=ipaddr
         &{mapping}    Create Dictionary    DEVICE_NAME=${DEVICE_NAME}    BGP_NAME=${peer_name}    IP=${peer_ip}    HOLDTIME=${HOLDTIME_CHANGE_COUNT_MANY}
         ...    PEER_PORT=${BGP_TOOL_PORT}    INITIATE=false    BGP_RIB=${RIB_INSTANCE}    PASSIVE_MODE=true    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
         ...    RIB_INSTANCE_NAME=${RIB_INSTANCE}    PEER_GROUP_NAME=${PEER_GROUP}    RR_CLIENT=false
-        CompareStream.Run_Keyword_If_At_Least_Fluorine    TemplatedRequests.Put_As_Xml_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_peer_group    mapping=${mapping}
-        CompareStream.Run_Keyword_If_Less_Than_Fluorine    TemplatedRequests.Put_As_Xml_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_peer    mapping=${mapping}
+        TemplatedRequests.Put_As_Xml_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_peer_group    mapping=${mapping}
         # FIXME: Add testcase to change bgpcep and protocol log levels, when a Keyword that does it without messing with current connection is ready.
     END
 
@@ -187,10 +186,9 @@ Delete_Bgp_Peer_Configuration
         ${peer_ip} =    BuiltIn.Evaluate    str(ipaddr.IPAddress('${FIRST_PEER_IP}') + ${index} - 1)    modules=ipaddr
         &{mapping}    BuiltIn.Create_Dictionary    DEVICE_NAME=${DEVICE_NAME}    BGP_NAME=${peer_name}    IP=${peer_ip}    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
         ...    PEER_GROUP_NAME=${PEER_GROUP}    RR_CLIENT=false
-        CompareStream.Run_Keyword_If_At_Least_Fluorine    TemplatedRequests.Delete_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_peer_group    mapping=${mapping}
-        CompareStream.Run_Keyword_If_Less_Than_Fluorine    TemplatedRequests.Delete_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_peer    mapping=${mapping}
+        TemplatedRequests.Delete_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_peer_group    mapping=${mapping}
     END
-    CompareStream.Run_Keyword_If_At_Least_Fluorine    Deconfigure_Peer_Group
+    Deconfigure_Peer_Group
 
 *** Keywords ***
 Setup_Everything
@@ -238,8 +236,10 @@ Configure_Peer_Group
     ...    peer-groups. This test case is specific to versions Fluorine and above.
     &{mapping}    Create Dictionary    DEVICE_NAME=${DEVICE_NAME}    HOLDTIME=${HOLDTIME_CHANGE_COUNT_MANY}    PEER_PORT=${BGP_TOOL_PORT}    INITIATE=false    BGP_RIB=${RIB_INSTANCE}
     ...    PASSIVE_MODE=true    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}    RIB_INSTANCE_NAME=${RIB_INSTANCE}    PEER_GROUP_NAME=${PEER_GROUP}    RR_CLIENT=false
+    ${verify_peer_group_folder}    CompareStream.Run_Keyword_If_At_Least_Else    sulfur    BuiltIn.Set Variable    verify_peer_group.sulfur
+    ...    ELSE    BuiltIn.Set Variable    verify_peer_group
     TemplatedRequests.Put_As_Xml_Templated    ${BGP_VARIABLES_FOLDER}${/}peer_group    mapping=${mapping}
-    TemplatedRequests.Get_As_Json_Templated    ${BGP_VARIABLES_FOLDER}${/}verify_peer_group    mapping=${mapping}    verify=True
+    TemplatedRequests.Get_As_Json_Templated    ${BGP_VARIABLES_FOLDER}${/}${verify_peer_group_folder}    mapping=${mapping}    verify=True
 
 Deconfigure_Peer_Group
     [Documentation]    Deconfigures peer group which is template for all the neighbors.
index 7c7f1a2d3f35e82f19bdae25915f38edf0eacf9c..7f0e450fc33d1a123d7624f6bbeafba8b5bfc253 100644 (file)
@@ -367,8 +367,10 @@ Configure_Peer_Group
     ...    peer-groups. This case is specific to versions Fluorine and above.
     &{mapping}    Create Dictionary    DEVICE_NAME=${DEVICE_NAME}    HOLDTIME=${HOLDTIME}    PEER_PORT=${BGP_TOOL_PORT}    INITIATE=false    BGP_RIB=${RIB_NAME}
     ...    PASSIVE_MODE=true    BGP_RIB_OPENCONFIG=${RIB_NAME}    PEER_GROUP_NAME=${PEER_GROUP}    RR_CLIENT=false
+    ${verify_peer_group_folder}    CompareStream.Run_Keyword_If_At_Least_Else    sulfur    BuiltIn.Set Variable    verify_${peer_group_folder}.sulfur
+    ...    ELSE    BuiltIn.Set Variable    verify_${peer_group_folder}
     TemplatedRequests.Put_As_Xml_Templated    ${BGP_VARIABLES_FOLDER}${/}${peer_group_folder}    mapping=${mapping}    session=${CONFIG_SESSION}
-    TemplatedRequests.Get_As_Json_Templated    ${BGP_VARIABLES_FOLDER}${/}verify_${peer_group_folder}    mapping=${mapping}    session=${CONFIG_SESSION}    verify=True
+    TemplatedRequests.Get_As_Json_Templated    ${BGP_VARIABLES_FOLDER}${/}${verify_peer_group_folder}    mapping=${mapping}    session=${CONFIG_SESSION}    verify=True
 
 Deconfigure_Peer_Group
     [Documentation]    Deconfigures peer group which is template for all the neighbors
diff --git a/csit/variables/bgpuser/verify_peer_group.sulfur/data.json b/csit/variables/bgpuser/verify_peer_group.sulfur/data.json
new file mode 100644 (file)
index 0000000..312201a
--- /dev/null
@@ -0,0 +1,39 @@
+{
+    "bgp-openconfig-extensions:peer-group": [
+        {
+            "peer-group-name": "internal-neighbors",
+            "transport": {
+                "config": {
+                    "passive-mode": true
+                }
+            },
+            "config": {
+                "peer-type": "INTERNAL"
+            },
+            "afi-safis": {
+                "afi-safi": [
+                    {
+                        "afi-safi-name": "openconfig-bgp-types:IPV6-UNICAST"
+                    },
+                    {
+                        "afi-safi-name": "openconfig-bgp-types:IPV4-UNICAST"
+                    },
+                    {
+                        "afi-safi-name": "bgp-openconfig-extensions:LINKSTATE"
+                    }
+                ]
+            },
+            "timers": {
+                "config": {
+                    "hold-time": "180.0",
+                    "connect-retry": "5.0"
+                }
+            },
+            "route-reflector": {
+                "config": {
+                    "route-reflector-client": false
+                }
+            }
+        }
+    ]
+}
diff --git a/csit/variables/bgpuser/verify_peer_group.sulfur/location.uri b/csit/variables/bgpuser/verify_peer_group.sulfur/location.uri
new file mode 100644 (file)
index 0000000..9a762b3
--- /dev/null
@@ -0,0 +1 @@
+rests/data/openconfig-network-instance:network-instances/network-instance=global-bgp/openconfig-network-instance:protocols/protocol=openconfig-policy-types%3ABGP,$BGP_RIB_OPENCONFIG/bgp-openconfig-extensions:bgp/peer-groups/peer-group=$PEER_GROUP_NAME?content=config
diff --git a/csit/variables/bgpuser/verify_peer_group_without_ipv4.sulfur/data.json b/csit/variables/bgpuser/verify_peer_group_without_ipv4.sulfur/data.json
new file mode 100644 (file)
index 0000000..fc3dbac
--- /dev/null
@@ -0,0 +1,36 @@
+{
+    "bgp-openconfig-extensions:peer-group": [
+        {
+            "peer-group-name": "internal-neighbors",
+            "transport": {
+                "config": {
+                    "passive-mode": true
+                }
+            },
+            "config": {
+                "peer-type": "INTERNAL"
+            },
+            "afi-safis": {
+                "afi-safi": [
+                    {
+                        "afi-safi-name": "openconfig-bgp-types:IPV6-UNICAST"
+                    },
+                    {
+                        "afi-safi-name": "bgp-openconfig-extensions:LINKSTATE"
+                    }
+                ]
+            },
+            "timers": {
+                "config": {
+                    "hold-time": "180.0",
+                    "connect-retry": "5.0"
+                }
+            },
+            "route-reflector": {
+                "config": {
+                    "route-reflector-client": false
+                }
+            }
+        }
+    ]
+}
diff --git a/csit/variables/bgpuser/verify_peer_group_without_ipv4.sulfur/location.uri b/csit/variables/bgpuser/verify_peer_group_without_ipv4.sulfur/location.uri
new file mode 100644 (file)
index 0000000..9a762b3
--- /dev/null
@@ -0,0 +1 @@
+rests/data/openconfig-network-instance:network-instances/network-instance=global-bgp/openconfig-network-instance:protocols/protocol=openconfig-policy-types%3ABGP,$BGP_RIB_OPENCONFIG/bgp-openconfig-extensions:bgp/peer-groups/peer-group=$PEER_GROUP_NAME?content=config