aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorselias <samelias@cisco.com>2017-02-27 13:56:22 +0100
committerPeter Mikus <pmikus@cisco.com>2017-03-13 07:51:49 +0000
commit86f35c2c60a680b58fca27d9298dd53d02e0138f (patch)
tree8bc91e97e5afff080d871dcf7358da274493ba85
parent3a761053c1dacc9d5f21ec1ddf75e1f192473f2c (diff)
HC Test: create Vlan sub-interface using netconf
- add netconf test for specific issue HC2VPP-60 Change-Id: I8fc64bce40f1e43d93e7e92c952e564151bc8232 Signed-off-by: selias <samelias@cisco.com>
-rw-r--r--resources/libraries/python/honeycomb/Netconf.py8
-rw-r--r--resources/libraries/robot/honeycomb/netconf.robot5
-rw-r--r--resources/test_data/honeycomb/netconf/triggers.py101
-rw-r--r--tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot8
4 files changed, 111 insertions, 11 deletions
diff --git a/resources/libraries/python/honeycomb/Netconf.py b/resources/libraries/python/honeycomb/Netconf.py
index e3cdbe5dce..770af95afa 100644
--- a/resources/libraries/python/honeycomb/Netconf.py
+++ b/resources/libraries/python/honeycomb/Netconf.py
@@ -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)
diff --git a/resources/libraries/robot/honeycomb/netconf.robot b/resources/libraries/robot/honeycomb/netconf.robot
index 79fa0a312c..75eaefbf25 100644
--- a/resources/libraries/robot/honeycomb/netconf.robot
+++ b/resources/libraries/robot/honeycomb/netconf.robot
@@ -35,12 +35,13 @@
| | ...
| | ... | *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\
diff --git a/resources/test_data/honeycomb/netconf/triggers.py b/resources/test_data/honeycomb/netconf/triggers.py
index c3a72e4df4..51a6ab6967 100644
--- a/resources/test_data/honeycomb/netconf/triggers.py
+++ b/resources/test_data/honeycomb/netconf/triggers.py
@@ -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
diff --git a/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot b/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot
index 0aabf4fc9f..45a80a436d 100644
--- a/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot
+++ b/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot
@@ -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}
@@ -57,3 +58,10 @@
| | 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