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
This commit is contained in:
@ -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')
|
||||
|
@ -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('.')))
|
||||
|
||||
|
Reference in New Issue
Block a user