#!/usr/bin/env python3 import sys errors=[] HAS_LIB=True try: from pylxd import api except: HAS_LIB=False errors.append("no pylxd module") c=None HAS_ACCESS=True try: c=api.API() c.container_list() except: HAS_ACCESS=False errors.append("no socket access") if len(sys.argv) == 2 and sys.argv[1]=="autoconf": if HAS_LIB and HAS_ACCESS: print("yes") else: print("no ("+" and ".join(errors)+")") sys.exit(0) if not (HAS_LIB and HAS_ACCESS): # pylxd not installed or lxd socket not accessible sys.exit(1) if len(sys.argv) == 2 and sys.argv[1]=="config": print("graph_title LXD container disk usage") print("graph_args --base 1000 --lower-limit 0") print("graph_vlabel Bytes") print("graph_category virtualization") print("graph_info This shows the disk usage of storage in containers. Make sure to install pylxd in python3.") for name in c.container_list(): info = c.container_info(name) # first check if disk information list is available or None if info['disk']: # if no disk information is present, this would fail to iteration None for disk in info['disk']: print(name+"-"+disk+".label "+name) print(name+"-"+disk+".draw LINE2") sys.exit(0) for name in c.container_list(): info = c.container_info(name) # first check if disk information list is available or None if info['disk']: # if no disk information is present, this would fail to iteration None for disk in info['disk']: print(name+"-"+disk+".value "+str(info['disk'][disk]['usage']))