import paramiko
from robot.api import logger
-from interruptingcow import timeout
from resources.libraries.python.honeycomb.HoneycombUtil import HoneycombError
# read OpenDaylight's hello message and capability list
self.get_response(
size=131072,
- time_out=time_out,
err="Timeout on getting hello message."
)
if not self.channel.active:
raise HoneycombError("Channel closed on capabilities exchange.")
- def get_response(self, size=4096, time_out=10, err="Unspecified Error."):
+ def get_response(self, size=4096, err="Unspecified Error."):
"""Iteratively read data from the receive buffer and catenate together
until message ends with the message delimiter, or
until timeout is reached.
:param size: Maximum number of bytes to read in one iteration.
- :param time_out: Timeout value for getting the complete response.
:param err: Error message to provide when timeout is reached.
:type size: int
- :type time_out: int
:type err: str
:returns: Content of response.
:rtype: str
reply = ''
try:
- with timeout(time_out, exception=RuntimeError):
- while not reply.endswith(self.delimiter) or \
- self.channel.recv_ready():
- try:
- chunk = self.channel.recv(size)
- if not chunk:
- break
- reply += chunk
- if self.channel.exit_status_ready():
- logger.debug('Channel exit status ready.')
- break
- except socket.timeout:
- raise HoneycombError("Socket timeout.",
- enable_logging=False)
+ while not reply.endswith(self.delimiter) or \
+ self.channel.recv_ready():
+ try:
+ chunk = self.channel.recv(size)
+ if not chunk:
+ break
+ reply += chunk
+ if self.channel.exit_status_ready():
+ logger.debug('Channel exit status ready.')
+ break
+ except socket.timeout:
+ raise HoneycombError("Socket timeout.",
+ enable_logging=False)
except RuntimeError:
raise HoneycombError(err + " Content of buffer: {0}".format(reply),
while True:
try:
- response += self.get_response(size, time_out, err)
+ response += self.get_response(size, err)
except HoneycombError:
break
<name>4fe335c8-6fdc-4654-b12c-d256e9b39229</name>
<description>neutron port</description>
<link-up-down-trap-enable>enabled</link-up-down-trap-enable>
-<vhost-user xmlns="urn:opendaylight:params:xml:ns:yang:v3po">
+<vhost-user xmlns="http://fd.io/hc2vpp/yang/v3po">
<role>client</role>
<socket>/tmp/socket_4fe335c8-6fdc-4654-b12c-d256e9b39229</socket>
</vhost-user>
-<type xmlns:x="urn:opendaylight:params:xml:ns:yang:v3po">x:vhost-user</type>
+<type xmlns:x="http://fd.io/hc2vpp/yang/v3po">x:vhost-user</type>
<enabled>true</enabled>
</interface>
</interfaces>
<name>4fe335c8-6fdc-4654-b12c-d256e9b39229</name>
<description>neutron port</description>
<link-up-down-trap-enable>enabled</link-up-down-trap-enable>
-<vhost-user xmlns="urn:opendaylight:params:xml:ns:yang:v3po">
+<vhost-user xmlns="http://fd.io/hc2vpp/yang/v3po">
<role>client</role>
<socket>/tmp/socket_4fe335c8-6fdc-4654-b12c-d256e9b39229</socket>
</vhost-user>
-<type xmlns:x="urn:opendaylight:params:xml:ns:yang:v3po">x:vhost-user</type>
+<type xmlns:x="http://fd.io/hc2vpp/yang/v3po">x:vhost-user</type>
<enabled>true</enabled>
</interface>
</interfaces>
<name>d7611278-88ff-40e1-81e2-602e94e96fc7</name>
<description>neutron port</description>
<link-up-down-trap-enable>enabled</link-up-down-trap-enable>
-<vhost-user xmlns="urn:opendaylight:params:xml:ns:yang:v3po">
+<vhost-user xmlns="http://fd.io/hc2vpp/yang/v3po">
<role>client</role>
<socket>/tmp/socket_d7611278-88ff-40e1-81e2-602e94e96fc7</socket>
</vhost-user>
-<type xmlns:x="urn:opendaylight:params:xml:ns:yang:v3po">x:vhost-user</type>
+<type xmlns:x="http://fd.io/hc2vpp/yang/v3po">x:vhost-user</type>
<enabled>true</enabled>
</interface>
</interfaces>
<name>1f96a665-4351-4984-b1a8-dc6f54683123</name>
<description>neutron port</description>
<link-up-down-trap-enable>enabled</link-up-down-trap-enable>
-<vhost-user xmlns="urn:opendaylight:params:xml:ns:yang:v3po">
+<vhost-user xmlns="http://fd.io/hc2vpp/yang/v3po">
<role>client</role>
<socket>/tmp/socket_1f96a665-4351-4984-b1a8-dc6f54683123</socket>
</vhost-user>
-<type xmlns:x="urn:opendaylight:params:xml:ns:yang:v3po">x:vhost-user</type>
+<type xmlns:x="http://fd.io/hc2vpp/yang/v3po">x:vhost-user</type>
<enabled>true</enabled>
</interface>
</interfaces>
</target>
<default-operation>none</default-operation>
<config>
-<bridge-domains xmlns="urn:opendaylight:params:xml:ns:yang:v3po"
+<bridge-domains xmlns="http://fd.io/hc2vpp/yang/v3po"
xmlns:a="urn:ietf:params:xml:ns:netconf:base:1.0" a:operation="replace">
<bridge-domain>
<name>e86740a2-042c-4e64-a43b-cc224e0d5240</name>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface>
<name>vxlan3</name>
-<type xmlns:v3po="urn:opendaylight:params:xml:ns:yang:v3po">
+<type xmlns:v3po="http://fd.io/hc2vpp/yang/v3po">
v3po:vxlan-tunnel</type>
<enabled>true</enabled>
-<vxlan xmlns="urn:opendaylight:params:xml:ns:yang:v3po">
+<vxlan xmlns="http://fd.io/hc2vpp/yang/v3po">
<src>192.168.1.6</src>
<dst>192.168.1.7</dst>
<vni>9</vni>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface>
<name>vxlan4</name>
-<type xmlns:v3po="urn:opendaylight:params:xml:ns:yang:v3po">
+<type xmlns:v3po="http://fd.io/hc2vpp/yang/v3po">
v3po:vxlan-tunnel</type>
<enabled>true</enabled>
-<vxlan xmlns="urn:opendaylight:params:xml:ns:yang:v3po">
+<vxlan xmlns="http://fd.io/hc2vpp/yang/v3po">
<src>192.168.1.6</src>
<dst>192.168.1.7</dst>
<vni>9</vni>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface>
<name>tap</name>
-<type xmlns:v3po="urn:opendaylight:params:xml:ns:yang:v3po">v3po:tap</type>
+<type xmlns:v3po="http://fd.io/hc2vpp/yang/v3po">v3po:tap</type>
<enabled>true</enabled>
-<tap xmlns="urn:opendaylight:params:xml:ns:yang:v3po">
+<tap xmlns="http://fd.io/hc2vpp/yang/v3po">
<tap-name>tap</tap-name>
</tap>
</interface>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface>
<name>tap2</name>
-<type xmlns:v3po="urn:opendaylight:params:xml:ns:yang:v3po">v3po:tap</type>
+<type xmlns:v3po="http://fd.io/hc2vpp/yang/v3po">v3po:tap</type>
<enabled>true</enabled>
-<tap xmlns="urn:opendaylight:params:xml:ns:yang:v3po">
+<tap xmlns="http://fd.io/hc2vpp/yang/v3po">
<tap-name>tap</tap-name>
</tap>
</interface>
<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-interfaces xmlns="http://fd.io/hc2vpp/yang/vpp-vlan"/>
</interface>
</interfaces>
</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-interfaces xmlns="http://fd.io/hc2vpp/yang/vpp-vlan">
<sub-interface>
<identifier>2420</identifier>
</sub-interface>
<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-interfaces xmlns="http://fd.io/hc2vpp/yang/vpp-vlan">
<sub-interface xmlns:a="urn:ietf:params:xml:ns:netconf:base:1.0" a:operation="replace">
<identifier>2420</identifier>
<match>