fixing play.py and data change counter 90/40290/4
authorPeter Gubka <pgubka@cisco.com>
Tue, 14 Jun 2016 10:31:15 +0000 (12:31 +0200)
committerPeter Gubka <pgubka@cisco.com>
Thu, 16 Jun 2016 20:56:00 +0000 (20:56 +0000)
-LOCAL_PREF is added into play.py to be sent
-new xml and uri file added for data change counter usage in boron
 as new schema is present in boron

Change-Id: I6b3179c4cdc82e97e0de557f2a484ee537527d12
Signed-off-by: Peter Gubka <pgubka@cisco.com>
csit/libraries/ChangeCounter.robot
csit/libraries/ConfigViaRestconf.robot
csit/variables/bgpuser/change_counter/config.uri.beryllium [moved from csit/variables/bgpuser/change_counter/config.uri with 100% similarity]
csit/variables/bgpuser/change_counter/config.uri.boron [new file with mode: 0644]
csit/variables/bgpuser/change_counter/config.uri.stable-lithium [new file with mode: 0644]
csit/variables/bgpuser/change_counter/data.xml
csit/variables/bgpuser/change_counter/data.xml.beryllium [new file with mode: 0644]
csit/variables/bgpuser/change_counter/data.xml.stable-lithium [new file with mode: 0644]
tools/fastbgp/play.py

index 64a281b4af7db94cf0b76f89386b45da6d80f1e8..2f02fc74d43d6f45d25737f332d133f17ed599e2 100644 (file)
@@ -31,7 +31,9 @@ Get_Change_Count
     ${response} =    RequestsLibrary.Get_Request    operational    data-change-counter:data-change-counter
     BuiltIn.Should_Be_Equal    ${response.status_code}    ${200}    Got status: ${response.status_code} and message: ${response.text}
     # TODO: The following line can be insecure. Should we use regexp instead?
-    ${count} =    BuiltIn.Evaluate    ${response.text}["data-change-counter"]["count"]
+    # TODO: beware of new releases (carbon ...) and mind if more counters are used
+    ${count} =    BuiltIn.Run Keyword If      "${ODL_STREAM}" in ["beryllium", "stable-lithium"]      BuiltIn.Evaluate    ${response.text}["data-change-counter"]["count"]
+    ...           ELSE     BuiltIn.Evaluate    ${response.text}["data-change-counter"]["counter"][0]["count"]
     [Return]    ${count}
 
 Reconfigure_Topology_Name
index 1c4649e134ef7578bac9afc4cefb88307ab9da80..8c78556e125d71d6a92ffcaa98bafc5f40989ffc 100644 (file)
@@ -115,7 +115,8 @@ Delete_Xml_Template_Folder_Config_Via_Restconf
 Resolve_URI_From_Template_Folder
     [Arguments]    ${folder}    ${mapping_as_string}
     [Documentation]    Read URI template from folder, strip endline, make changes according to mapping, return the result.
-    ${uri_template}=    OperatingSystem.Get_File    ${folder}${/}config.uri
+    ${status}    ${uri_template}=    BuiltIn.Run_Keyword_And_Ignore_Error    OperatingSystem.Get_File    ${folder}${/}config.uri.${ODL_STREAM}
+    ${uri_template}=     BuiltIn.Run Keyword If     '${status}' != 'PASS'    OperatingSystem.Get_File    ${folder}${/}config.uri    ELSE   BuiltIn.Set Variable    ${uri_template}
     BuiltIn.Log    ${uri_template}
     ${uri_part}=    Strip_Endline_And_Apply_Substitutions_From_Mapping    ${uri_template}    ${mapping_as_string}
     [Return]    ${uri_part}
@@ -123,7 +124,8 @@ Resolve_URI_From_Template_Folder
 Resolve_Xml_Data_From_Template_Folder
     [Arguments]    ${folder}    ${mapping_as_string}
     [Documentation]    Read XML data template from folder, strip endline, make changes according to mapping, return the result.
-    ${data_template}=    OperatingSystem.Get_File    ${folder}${/}data.xml
+    ${status}    ${data_template}=    BuiltIn.Run_Keyword_And_Ignore_Error    OperatingSystem.Get_File    ${folder}${/}data.xml.${ODL_STREAM}
+    ${data_template}=     BuiltIn.Run Keyword If     '${status}' != 'PASS'    OperatingSystem.Get_File    ${folder}${/}data.xml    ELSE   BuiltIn.Set Variable    ${data_template}
     BuiltIn.Log    ${data_template}
     ${xml_data}=    Strip_Endline_And_Apply_Substitutions_From_Mapping    ${data_template}    ${mapping_as_string}
     [Return]    ${xml_data}
@@ -131,7 +133,8 @@ Resolve_Xml_Data_From_Template_Folder
 Resolve_Json_Data_From_Template_Folder
     [Arguments]    ${folder}    ${mapping_as_string}
     [Documentation]    Read JSON data template from folder, strip endline, make changes according to mapping, return the result.
-    ${data_template}=    OperatingSystem.Get_File    ${folder}${/}data.json
+    ${status}    ${data_template}=    BuiltIn.Run_Keyword_And_Ignore_Error    OperatingSystem.Get_File    ${folder}${/}data.json.${ODL_STREAM}
+    ${data_template}=     BuiltIn.Run Keyword If     '${status}' != 'PASS'    OperatingSystem.Get_File    ${folder}${/}data.json    ELSE   BuiltIn.Set Variable    ${data_template}
     BuiltIn.Log    ${data_template}
     ${json_data}=    Strip_Endline_And_Apply_Substitutions_From_Mapping    ${data_template}    ${mapping_as_string}
     [Return]    ${json_data}
diff --git a/csit/variables/bgpuser/change_counter/config.uri.boron b/csit/variables/bgpuser/change_counter/config.uri.boron
new file mode 100644 (file)
index 0000000..746ba0d
--- /dev/null
@@ -0,0 +1 @@
+config:modules/module/odl-data-change-counter-cfg:data-change-counter-impl/data-change-counter
diff --git a/csit/variables/bgpuser/change_counter/config.uri.stable-lithium b/csit/variables/bgpuser/change_counter/config.uri.stable-lithium
new file mode 100644 (file)
index 0000000..065e6c2
--- /dev/null
@@ -0,0 +1 @@
+config:modules/module/odl-data-change-counter-cfg:data-change-counter-impl/data-change-counter-singleton
index 1a9310070b77ed22a37b8a7b8b8dab39ef96c331..3bfead421690cc762958ccfcc6e83ba460c28019 100644 (file)
@@ -1,6 +1,7 @@
 <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:bgpcep:data:change:counter">prefix:data-change-counter-impl</type>
-    <name>data-change-counter-singleton</name>
+    <name>data-change-counter</name>
+    <counter-id xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgpcep:data:change:counter">data-change-counter</counter-id>
     <data-provider xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgpcep:data:change:counter">
         <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
         <name>pingpong-binding-data-broker</name>
diff --git a/csit/variables/bgpuser/change_counter/data.xml.beryllium b/csit/variables/bgpuser/change_counter/data.xml.beryllium
new file mode 100644 (file)
index 0000000..1a93100
--- /dev/null
@@ -0,0 +1,9 @@
+<module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:bgpcep:data:change:counter">prefix:data-change-counter-impl</type>
+    <name>data-change-counter-singleton</name>
+    <data-provider xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgpcep:data:change:counter">
+        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
+        <name>pingpong-binding-data-broker</name>
+    </data-provider>
+    <topology-name xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgpcep:data:change:counter">$TOPOLOGY_NAME</topology-name>
+</module>
diff --git a/csit/variables/bgpuser/change_counter/data.xml.stable-lithium b/csit/variables/bgpuser/change_counter/data.xml.stable-lithium
new file mode 100644 (file)
index 0000000..1a93100
--- /dev/null
@@ -0,0 +1,9 @@
+<module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:bgpcep:data:change:counter">prefix:data-change-counter-impl</type>
+    <name>data-change-counter-singleton</name>
+    <data-provider xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgpcep:data:change:counter">
+        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
+        <name>pingpong-binding-data-broker</name>
+    </data-provider>
+    <topology-name xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgpcep:data:change:counter">$TOPOLOGY_NAME</topology-name>
+</module>
index dfc4f0ef98af5b17ecd6520a326f68885d9131a0..5dc84a1ba399116f5e0535ec5ba059a57508f7c7 100755 (executable)
@@ -936,6 +936,12 @@ class MessageGenerator(object):
             path_attributes_hex += (
                 next_hop_hex  # IP address of the next hop (4 bytes)
             )
+            path_attributes_hex += (
+                "\x40"  # Flags ("Well-Known")
+                "\x05"  # Type (LOCAL_PREF)
+                "\x04"  # Length (4)
+                "\x00\x00\x00\x64"  # (100)
+            )
             if originator_id is not None:
                 path_attributes_hex += (
                     "\x80"  # Flags ("Optional, non-transitive")