diff options
author | Clark Laughlin <clark.laughlin@linaro.org> | 2015-04-15 11:00:27 +0000 |
---|---|---|
committer | Clark Laughlin <clark.laughlin@linaro.org> | 2015-04-15 11:00:27 +0000 |
commit | f505d1d24288d77eaa20a6cc750d1be6c3641a90 (patch) | |
tree | 6bef2f0569dc2e58c959a88c447b8165fcbe4999 | |
parent | be609c4c9399790ad09d5bb58ac5fb48846825fb (diff) |
show whether the machine is in use or not
-rwxr-xr-x | juju-machine-status.py | 34 |
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) |