From 13ac2512ba72f2978d2bb3e9d3a37df35f392da9 Mon Sep 17 00:00:00 2001 From: "ChangBo Guo(gcb)" Date: Fri, 2 Feb 2018 17:41:48 +0800 Subject: [PATCH] Refactor method node_list in status.py Extract same logics into one internal function, and call it when get one node's values or iterate some nodes' value. Change-Id: Idd536931a40f2369d3bfc4c623e94844c95f78a0 --- nodepool/status.py | 95 +++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 60 deletions(-) diff --git a/nodepool/status.py b/nodepool/status.py index 07e56db55..2b1ffad66 100755 --- a/nodepool/status.py +++ b/nodepool/status.py @@ -54,75 +54,50 @@ def node_list(zk, node_id=None, detail=False): if detail: headers += detail_headers + def _get_node_values(node): + locked = "unlocked" + try: + zk.lockNode(node, blocking=False) + except Exception: + locked = "locked" + else: + zk.unlockNode(node) + + values = [ + node.id, + node.provider, + node.type, + node.external_id, + node.public_ipv4, + node.public_ipv6, + node.state, + age(node.state_time), + locked + ] + if detail: + values += [ + node.hostname, + node.private_ipv4, + node.az, + node.connection_port, + node.launcher, + node.allocated_to, + node.hold_job, + node.comment + ] + return values + t = PrettyTable(headers) t.align = 'l' if node_id: node = zk.getNode(node_id) if node: - locked = "unlocked" - try: - zk.lockNode(node, blocking=False) - except Exception: - locked = "locked" - else: - zk.unlockNode(node) - - values = [ - node.id, - node.provider, - node.type, - node.external_id, - node.public_ipv4, - node.public_ipv6, - node.state, - age(node.state_time), - locked - ] - if detail: - values += [ - node.hostname, - node.private_ipv4, - node.az, - node.connection_port, - node.launcher, - node.allocated_to, - node.hold_job, - node.comment - ] + values = _get_node_values(node) t.add_row(values) else: for node in zk.nodeIterator(): - locked = "unlocked" - try: - zk.lockNode(node, blocking=False) - except Exception: - locked = "locked" - else: - zk.unlockNode(node) - - values = [ - node.id, - node.provider, - node.type, - node.external_id, - node.public_ipv4, - node.public_ipv6, - node.state, - age(node.state_time), - locked - ] - if detail: - values += [ - node.hostname, - node.private_ipv4, - node.az, - node.connection_port, - node.launcher, - node.allocated_to, - node.hold_job, - node.comment - ] + values = _get_node_values(node) t.add_row(values) return str(t)