X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=resources%2Flibraries%2Fpython%2Fhoneycomb%2FNetconf.py;h=742948c6e7b3d695221f8fcdc9260824784319dd;hb=4c6fe5602edcbd9857a846e5b13a21d5c671a2c8;hp=3c983873340ef5802084f432428e8e1762a2bb94;hpb=c10eda554529ac5433216a18d30e9964c6af7976;p=csit.git diff --git a/resources/libraries/python/honeycomb/Netconf.py b/resources/libraries/python/honeycomb/Netconf.py index 3c98387334..742948c6e7 100644 --- a/resources/libraries/python/honeycomb/Netconf.py +++ b/resources/libraries/python/honeycomb/Netconf.py @@ -1,4 +1,4 @@ -# Copyright (c) 2016 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -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)) @@ -99,10 +98,10 @@ class Netconf(object): :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 - :return: Content of response. + :type size: int + :type time_out: int + :type err: str + :returns: Content of response. :rtype: str :raises HoneycombError: If the read process times out. """ @@ -123,26 +122,24 @@ 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, "") def get_all_responses(self, size=4096, time_out=3): """Read responses from the receive buffer and catenate together - until a read operation times out. + until a read operation times out. :param size: Maximum number of bytes to read in one iteration. :param time_out: Timeout value for getting the complete response. - :type size:int - :type time_out:int - :return: Content of response. + :type size: int + :type time_out: int + :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)