From 74be8431a89b0faf380f0adf8c284226258c6b0a Mon Sep 17 00:00:00 2001 From: osiu97 Date: Thu, 10 Jan 2019 13:43:22 +0000 Subject: [PATCH] vm beta zabbix usage --- PVE-Zabbix.py | 22 ++++++++++++++-------- VM.py | 3 ++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/PVE-Zabbix.py b/PVE-Zabbix.py index 50efeee..b118be4 100755 --- a/PVE-Zabbix.py +++ b/PVE-Zabbix.py @@ -13,6 +13,7 @@ parser.add_argument("node", choices=conn.get_node_list(), help="Choose node") parser.add_argument("type", choices=['vm', 'cluster', 'node'], help='categories') parser.add_argument("-l", "--list", dest='listing', action='store_true') parser.add_argument("-n", "--name", dest='name') +parser.add_argument("-p", "--param", dest='param') args = parser.parse_args() NODE = args.node @@ -35,18 +36,23 @@ def get_vmnames(vmlist, node, **kwargs): return name_vmlist -def get_vminfo(vmname): +def get_vminfo(vmname, parameter=None): """ Get Virtual Machine data :param vmname: Virtual machine name + :param kwargs: handle vm params :return: list od dicts with vm params """ - vm_params = list() vm = next(v for v in conn.get_cluster_vmlist() if v.name == vmname) - for param in dir(vm): - if not param.startswith('__'): - vm_params.append({'#' + param.upper(): vm.__getattribute__(param)}) - return vm_params + if parameter is not None: + vm_params = vm.__getattribute__(parameter) + return vm_params + else: + vm_params = list() + for param in dir(vm): + if not param.startswith('__'): + vm_params.append({'#' + param.upper(): vm.__getattribute__(param)}) + return listofdicts_to_zabbix_json(vm_params) def listofdicts_to_zabbix_json(dlist): @@ -73,13 +79,13 @@ def exec_vm(**kwargs): :return: """ if kwargs['name'] is not None and kwargs['listing'] is False: - print listofdicts_to_zabbix_json(get_vminfo(kwargs['name'])) + print get_vminfo(kwargs['name'],kwargs['param']) else: print listofdicts_to_zabbix_json( get_vmnames(conn.get_cluster_vmlist(), NODE, name=kwargs['name'], listing=kwargs['listing'])) if args.type == "vm": - exec_vm(listing=args.listing, name=args.name) + exec_vm(listing=args.listing, name=args.name, param=args.param) else: print args diff --git a/VM.py b/VM.py index 0df97d1..2d000e6 100755 --- a/VM.py +++ b/VM.py @@ -6,7 +6,8 @@ class VM(object): template, disk, cpuusage, maxdisk, maxmem): self.name = name self.node = node - self.status = status + self.statusstr = status + self.status = 1 if self.statusstr == "running" else 0 self.uptime = uptime self.diskread = diskread self.diskwrite = diskwrite