misc: small fix or general refactoring i did not bother commenting

This commit is contained in:
Simone Margaritelli 2019-10-23 19:32:24 +02:00
parent d20f6c8a52
commit 68d7686a03
No known key found for this signature in database
GPG Key ID: 82E42E7F3B34C97E
4 changed files with 23 additions and 19 deletions

@ -284,12 +284,13 @@ class Agent(Client, Automata, AsyncAdvertiser, AsyncTrainer):
self.run('events.clear')
logging.debug("event polling started ...")
while True:
time.sleep(1)
new_shakes = 0
logging.debug("polling events ...")
try:
s = self.session()
self._update_uptime(s)

@ -89,6 +89,8 @@ class Automata(object):
return self._epoch.any_activity
def next_epoch(self):
logging.debug("agent.next_epoch()")
was_stale = self.is_stale()
did_miss = self._epoch.num_missed

@ -3,6 +3,20 @@ import requests
from requests.auth import HTTPBasicAuth
def decode(r, verbose_errors=True):
try:
return r.json()
except Exception as e:
if r.status_code == 200:
logging.error("error while decoding json: error='%s' resp='%s'" % (e, r.text))
else:
err = "error %d: %s" % (r.status_code, r.text.strip())
if verbose_errors:
logging.info(err)
raise Exception(err)
return r.text
class Client(object):
def __init__(self, hostname='localhost', scheme='http', port=8081, username='user', password='pass'):
self.hostname = hostname
@ -13,27 +27,14 @@ class Client(object):
self.url = "%s://%s:%d/api" % (scheme, hostname, port)
self.auth = HTTPBasicAuth(username, password)
def _decode(self, r, verbose_errors=True):
try:
return r.json()
except Exception as e:
if r.status_code == 200:
logging.error("error while decoding json: error='%s' resp='%s'" % (e, r.text))
else:
err = "error %d: %s" % (r.status_code, r.text.strip())
if verbose_errors:
logging.info(err)
raise Exception(err)
return r.text
def session(self):
r = requests.get("%s/session" % self.url, auth=self.auth)
return self._decode(r)
return decode(r)
def events(self):
r = requests.get("%s/events" % self.url, auth=self.auth)
return self._decode(r)
return decode(r)
def run(self, command, verbose_errors=True):
r = requests.post("%s/session" % self.url, auth=self.auth, json={'cmd': command})
return self._decode(r, verbose_errors=verbose_errors)
return decode(r, verbose_errors=verbose_errors)

@ -66,9 +66,9 @@ class AsyncAdvertiser(object):
def _adv_poller(self):
while True:
logging.debug("polling pwngrid-peer for peers ...")
try:
logging.debug("polling pwngrid-peer for peers ...")
grid_peers = grid.peers()
new_peers = {}