aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClark Laughlin <clark.laughlin@linaro.org>2015-04-15 11:00:27 +0000
committerClark Laughlin <clark.laughlin@linaro.org>2015-04-15 11:00:27 +0000
commitf505d1d24288d77eaa20a6cc750d1be6c3641a90 (patch)
tree6bef2f0569dc2e58c959a88c447b8165fcbe4999
parentbe609c4c9399790ad09d5bb58ac5fb48846825fb (diff)
show whether the machine is in use or not
-rwxr-xr-xjuju-machine-status.py34
1 files changed, 30 insertions, 4 deletions
diff --git a/juju-machine-status.py b/juju-machine-status.py
index 140e102..e85b909 100755
--- a/juju-machine-status.py
+++ b/juju-machine-status.py
@@ -1,14 +1,36 @@
#!/usr/bin/env python
import yaml
import subprocess
+import re
output = subprocess.check_output([ 'juju', 'status' ])
status = yaml.load(output)
-format_string = '{:<3} {:<10} {:<28} {:<60} {:<10}'
+format_string = '{:<3} {:<9} {:<9} {:<28} {:<60} {:<10}'
+
+print format_string.format('ID', 'State', 'In Use?', 'DNS Name', 'Hardware', 'Series')
+print format_string.format('--', '-----', '-------', '--------', '--------', '------')
+
+service_machines = []
+services = status['services']
+for service in services:
+ service_status = services[service]
+ units = service_status['units']
+ for unit in units:
+ unit_data = units[unit]
+ machine = None
+ if 'machine' in unit_data:
+ machine = unit_data['machine']
+
+ if machine is not None:
+ if('/' in machine):
+ m = re.search('^([0-9]+?)/', machine)
+ if m:
+ machine = m.group(1)
+
+ if machine not in service_machines:
+ service_machines.append(machine)
-print format_string.format('ID', 'State', 'DNS Name', 'Hardware', 'Series')
-print format_string.format('--', '-----', '--------', '--------', '------')
machines = status['machines']
for machine in machines:
machine_status = machines[machine]
@@ -16,6 +38,10 @@ for machine in machines:
dns_name = '?'
hardware = '?'
series = '?'
+ has_services = 'No'
+
+ if (machine == '0') or (machine in service_machines):
+ has_services = ''
if 'agent-state' in machine_status:
agent_state = machine_status['agent-state']
if 'dns-name' in machine_status:
@@ -24,4 +50,4 @@ for machine in machines:
hardware = machine_status['hardware']
if 'series' in machine_status:
series = machine_status['series']
- print format_string.format(machine, agent_state, dns_name, hardware, series)
+ print format_string.format(machine, agent_state, has_services, dns_name, hardware, series)