#!/usr/bin/env python import yaml import subprocess output = subprocess.check_output([ 'juju', 'status' ]) status = yaml.load(output) format_string = '{:<24} {:<10} {:<20} {:<30}' print format_string.format('Unit', 'State', 'Machine', 'Address') print format_string.format('----', '-----', '-------', '-------') services = status['services'] for service in services: service_status = services[service] units = service_status['units'] for unit in units: unit_data = units[unit] agent_state = '?' machine = '?' public_address = '?' if 'agent-state' in unit_data: agent_state = unit_data['agent-state'] if 'machine' in unit_data: machine = unit_data['machine'] if 'public-address' in unit_data: public_address = unit_data['public-address'] print format_string.format(unit, agent_state, machine, public_address)