From c72890868c25aa9dd2a53596ab1bcb85bf1a528a Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sat, 11 Sep 2021 12:45:28 +0000 Subject: [PATCH] s/freq/period/ to be more precies; Set default period to 30s; set wait period on reconnect to 10s; Add explicit INFO logline when replacing dataset --- agentx/agent.py | 11 +++++++---- agentx/network.py | 8 +++++--- vpp-snmp-agent.py | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/agentx/agent.py b/agentx/agent.py index 12f181d..915bc68 100644 --- a/agentx/agent.py +++ b/agentx/agent.py @@ -25,14 +25,14 @@ class AgentError(Exception): class Agent(object): - def __init__(self, server_address='/var/agentx/master', freq=5): + def __init__(self, server_address='/var/agentx/master', period=30.0): self.logger = logging.getLogger('agentx.agent') self.logger.addHandler(NullHandler()) self._servingset = DataSet() self._workingset = DataSet() self._lastupdate = 0 - self._update_freq = freq + self._update_period = period # Seconds self._net = Network(server_address = server_address) @@ -55,14 +55,17 @@ class Agent(object): self.logger.info('Opening AgentX connection') self._net.start(self._oid_list) - if time.time() - self._lastupdate > self._update_freq: + if time.time() - self._lastupdate > self._update_period: self._update() try: self._net.run() except Exception as e: self.logger.error('An exception occurred: %s' % e) - time.sleep(1) + sleep = 10 + self.logger.error('Disconnecting and sleeping %d seconds' % sleep) + self._net.disconnect() + time.sleep(sleep) def stop(self): self.logger.debug('Stopping') diff --git a/agentx/network.py b/agentx/network.py index 42e1ab0..b93301b 100644 --- a/agentx/network.py +++ b/agentx/network.py @@ -53,7 +53,9 @@ class Network(): self.socket.connect(self._server_address) else: self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.socket.connect(self._server_address.split(':')) + host, port=self._server_address.split(':') + + self.socket.connect((host, int(port))) self.socket.settimeout(self._timeout) self._connected = True except socket.error: @@ -71,9 +73,9 @@ class Network(): def update(self, newdata): if len(self.data) == 0: - logger.debug("Setting initial serving dataset (%d OIDs)" % len(newdata)) + logger.info("Setting initial serving dataset (%d OIDs)" % len(newdata)) else: - logger.debug("Replacing serving dataset (%d OIDs)" % len(newdata)) + logger.info("Replacing serving dataset (%d OIDs)" % len(newdata)) self.data = newdata self.data_idx = sorted(self.data.keys(), key=lambda k: tuple(int(part) for part in k.split('.'))) diff --git a/vpp-snmp-agent.py b/vpp-snmp-agent.py index 610d6ef..a2dec4b 100755 --- a/vpp-snmp-agent.py +++ b/vpp-snmp-agent.py @@ -141,7 +141,7 @@ def main(): agentx.setup_logging(debug=False) try: - a = MyAgent(server_address='/run/vpp/agentx.sock') + a = MyAgent(server_address='localhost:705', period=30) a.run() except Exception as e: print("Unhandled exception:", e)