From f2ad9ee0bcf8edcfe0e22d47776e01188b447a50 Mon Sep 17 00:00:00 2001 From: Tristan Cacqueray Date: Fri, 1 Sep 2017 10:57:46 +0000 Subject: [PATCH] Add /node-list to the webapp This change adds /node-list and /node-list.json to enable listing current node list over http. Change-Id: I256ebbba8692e78827a9104b08b433aafa26c71c --- nodepool/status.py | 4 ++++ nodepool/webapp.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/nodepool/status.py b/nodepool/status.py index 2b1ffad66..033ab9fd8 100755 --- a/nodepool/status.py +++ b/nodepool/status.py @@ -102,6 +102,10 @@ def node_list(zk, node_id=None, detail=False): return str(t) +def node_list_json(zk): + return json.dumps([node.toDict() for node in zk.nodeIterator()]) + + def dib_image_list(zk): t = PrettyTable(["ID", "Image", "Builder", "Formats", "State", "Age"]) diff --git a/nodepool/webapp.py b/nodepool/webapp.py index c9f2580b3..385b9871b 100644 --- a/nodepool/webapp.py +++ b/nodepool/webapp.py @@ -83,6 +83,10 @@ class WebApp(threading.Thread): output = status.dib_image_list(self.nodepool.getZK()) elif path == '/dib-image-list.json': output = status.dib_image_list_json(self.nodepool.getZK()) + elif path == '/node-list': + output = status.node_list(self.nodepool.getZK()) + elif path == '/node-list.json': + output = status.node_list_json(self.nodepool.getZK()) else: return None return self.cache.put(path, output)