X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2Fhoneycomb%2FNetconf.py;h=770af95afaed5327d975210a82ba89b24d96780d;hp=3c983873340ef5802084f432428e8e1762a2bb94;hb=86f35c2c60a680b58fca27d9298dd53d02e0138f;hpb=c10eda554529ac5433216a18d30e9964c6af7976 diff --git a/resources/libraries/python/honeycomb/Netconf.py b/resources/libraries/python/honeycomb/Netconf.py index 3c98387334..770af95afa 100644 --- a/resources/libraries/python/honeycomb/Netconf.py +++ b/resources/libraries/python/honeycomb/Netconf.py @@ -14,10 +14,10 @@ """Keywords used to connect to Honeycomb through Netconf, send messages and receive replies.""" +import socket from time import time import paramiko -import socket from robot.api import logger from interruptingcow import timeout @@ -61,8 +61,7 @@ class Netconf(object): password=node['honeycomb']['passwd'], pkey=None, port=node['honeycomb']['netconf_port'], - timeout=time_out, - ) + timeout=time_out) logger.trace('Connect took {0} seconds'.format(time() - start)) logger.debug('New ssh: {0}'.format(client)) @@ -102,7 +101,7 @@ class Netconf(object): :type size:int :type time_out:int :type err:str - :return: Content of response. + :returns: Content of response. :rtype: str :raises HoneycombError: If the read process times out. """ @@ -123,13 +122,11 @@ class Netconf(object): break except socket.timeout: raise HoneycombError("Socket timeout.", - enable_logging=False - ) + enable_logging=False) except RuntimeError: raise HoneycombError(err + " Content of buffer: {0}".format(reply), - enable_logging=False - ) + enable_logging=False) logger.trace(reply) return reply.replace(self.delimiter, "") @@ -142,7 +139,7 @@ class Netconf(object): :param time_out: Timeout value for getting the complete response. :type size:int :type time_out:int - :return: Content of response. + :returns: Content of response. :rtype: str """ @@ -157,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)