HC Test: create Vlan sub-interface using netconf 35/5535/2
authorselias <samelias@cisco.com>
Mon, 27 Feb 2017 12:56:22 +0000 (13:56 +0100)
committerPeter Mikus <pmikus@cisco.com>
Mon, 13 Mar 2017 07:51:49 +0000 (07:51 +0000)
 - add netconf test for specific issue HC2VPP-60

Change-Id: I8fc64bce40f1e43d93e7e92c952e564151bc8232
Signed-off-by: selias <samelias@cisco.com>
resources/libraries/python/honeycomb/Netconf.py
resources/libraries/robot/honeycomb/netconf.robot
resources/test_data/honeycomb/netconf/triggers.py
tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot

index e3cdbe5..770af95 100644 (file)
@@ -154,14 +154,20 @@ class Netconf(object):
 
         return response
 
-    def send(self, message):
+    def send(self, message, **params):
         """Sends provided message through the channel.
 
         :param message: Message to be sent to Honeycomb.
+        :param params: Format the message string with these parameters.
         :type message: str
+        :type params: dict
         """
 
+        message = message.format(**params)
+
         if not message.endswith(self.delimiter):
             message += self.delimiter
 
+        logger.debug(message)
+
         self.channel.send(message)
index 79fa0a3..75eaefb 100644 (file)
 | | ...
 | | ... | *Arguments:*
 | | ... | - trigger - RPC sequence that triggers a specific error. Type: string
+| | ... | - params - Parameters for the trigger template. Type: string
 | | ...
 | | ... | *Example:*
 | | ...
 | | ... | \| Error trigger is sent \| <rpc>_some data_</rpc>]]>]]> \|
-| | [Arguments] | ${trigger}
-| | Send | ${trigger}
+| | [Arguments] | ${trigger} | &{params}
+| | Send | ${trigger} | &{params}
 
 | Replies should not contain RPC errors
 | | [Documentation] | Read response received through the channel, and check if\
index c3a72e4..51a6ab6 100644 (file)
@@ -363,7 +363,7 @@ trigger_revert1 = u"""
 </rpc>
 ]]>]]>
 
-<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<rpc message-id="102" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
 <edit-config>
 <target>
 <candidate/>
@@ -388,7 +388,7 @@ trigger_revert1 = u"""
 </rpc>
 ]]>]]>
 
- <rpc message-id="102"
+ <rpc message-id="103"
       xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <commit/>
  </rpc>
@@ -418,7 +418,7 @@ trigger_revert2 = u"""
 </rpc>
 ]]>]]>
 
-<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<rpc message-id="102" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
 <edit-config>
 <target>
 <candidate/>
@@ -439,8 +439,93 @@ trigger_revert2 = u"""
 </rpc>
 ]]>]]>
 
- <rpc message-id="102"
-      xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-   <commit/>
- </rpc>
- ]]>]]>"""
\ No newline at end of file
+<rpc message-id="103" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<commit/>
+</rpc>
+]]>]]>"""
+
+
+# Test data for issue HC2VPP-60
+# Creating Vlan sub-interface over netconf fails due to ODL bug
+trigger_vlan = u"""
+<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+<target>
+<candidate/>
+</target>
+<config>
+<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
+<interface>
+<name>{interface}</name>
+<sub-interfaces xmlns="urn:opendaylight:params:xml:ns:yang:vpp:vlan"/>
+</interface>
+</interfaces>
+</config>
+</edit-config>
+</rpc>
+]]>]]>
+
+<rpc message-id="102" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+<target>
+<candidate/>
+</target>
+<config>
+<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
+<interface>
+<name>{interface}</name>
+<sub-interfaces xmlns="urn:opendaylight:params:xml:ns:yang:vpp:vlan">
+<sub-interface>
+<identifier>2420</identifier>
+</sub-interface>
+</sub-interfaces>
+</interface>
+</interfaces>
+</config>
+</edit-config>
+</rpc>
+]]>]]>
+
+<rpc message-id="103" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+<target>
+<candidate/>
+</target>
+<default-operation>none</default-operation>
+<config>
+<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
+<interface>
+<name>{interface}</name>
+<sub-interfaces xmlns="urn:opendaylight:params:xml:ns:yang:vpp:vlan">
+<sub-interface xmlns:a="urn:ietf:params:xml:ns:netconf:base:1.0" a:operation="replace">
+<identifier>2420</identifier>
+<match>
+<vlan-tagged>
+<match-exact-tags>true</match-exact-tags>
+</vlan-tagged>
+</match>
+<vlan-type>802dot1q</vlan-type>
+<enabled>false</enabled>
+<tags>
+<tag>
+<index>0</index>
+<dot1q-tag>
+<tag-type xmlns:x="urn:ieee:params:xml:ns:yang:dot1q-types">x:s-vlan</tag-type>
+<vlan-id>2420</vlan-id>
+</dot1q-tag>
+</tag>
+</tags>
+</sub-interface>
+</sub-interfaces>
+</interface>
+</interfaces>
+</config>
+</edit-config>
+</rpc>
+]]>]]>
+
+<rpc message-id="104" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<commit/>
+</rpc>
+]]>]]>
+"""
\ No newline at end of file
index 0aabf4f..45a80a4 100644 (file)
@@ -26,6 +26,7 @@
 | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node}
 
 *** Variables ***
+| ${interface}= | ${node['interfaces']['port1']['name']}
 | &{bd_settings}= | flood=${True} | forward=${True} | learn=${True}
 | ... | unknown-unicast-flood=${True} | arp-termination=${True}
 
 | | When Error trigger is sent | ${trigger_revert1}
 | | ${if_data_new}= | And InterfaceAPI.Get all interfaces oper data | ${node}
 | | Then Should be equal | ${if_data} | ${if_data_new}
+
+| TC04: Vlan subinterface creation
+| | [Documentation] | Configure a Vlan sub-interface under a physical interface.
+| | Given Netconf session is established | ${node}
+| | When Error Trigger Is Sent
+| | ... | ${trigger_vlan} | interface=${interface}
+| | Then Replies should not contain RPC errors