fetch, decrypt and list tasks we don't actually do anything with this data yet, but it's nice that we can fetch and display it :)
diff --git a/node.py b/node.py index 7af8acd..1284d1c 100644 --- a/node.py +++ b/node.py
@@ -31,6 +31,7 @@ import argparse import socket import base64 +import json # Warble-specific libraries import plugins.tests @@ -174,6 +175,26 @@ print(rv.text) sys.exit(-1) + ## Get tasks to perform + print("INFO: Fetching tasks to perform") + rv = requests.get('%s/api/node/tasks' % serverurl, headers = {'APIKey': apikey}) + if rv.status_code == 200: + # Decrypt or die trying + try: + plain = plugins.basics.crypto.decrypt(privkey, base64.b64decode(rv.text)) + except: + print("ALERT: Could not retrieve task data from Warble master due to an encryption error.") + sys.exit(-1) + # All good, load json payload and process! + payload = json.loads(plain.decode('utf-8')) + print("Got the following tasks:") + for task in payload['tasks']: + print("- %04u: %s" % (task['id'], task['name'])) + else: + print("ALERT: Got status %u from warble master!" % rv.status_code) + print(rv.text) + sys.exit(-1) + # Set node software version for tests gconf['version'] = _VERSION