vm beta zabbix usage
This commit is contained in:
parent
e016cf71e9
commit
74be8431a8
|
|
@ -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("type", choices=['vm', 'cluster', 'node'], help='categories')
|
||||||
parser.add_argument("-l", "--list", dest='listing', action='store_true')
|
parser.add_argument("-l", "--list", dest='listing', action='store_true')
|
||||||
parser.add_argument("-n", "--name", dest='name')
|
parser.add_argument("-n", "--name", dest='name')
|
||||||
|
parser.add_argument("-p", "--param", dest='param')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
NODE = args.node
|
NODE = args.node
|
||||||
|
|
||||||
|
|
@ -35,18 +36,23 @@ def get_vmnames(vmlist, node, **kwargs):
|
||||||
return name_vmlist
|
return name_vmlist
|
||||||
|
|
||||||
|
|
||||||
def get_vminfo(vmname):
|
def get_vminfo(vmname, parameter=None):
|
||||||
"""
|
"""
|
||||||
Get Virtual Machine data
|
Get Virtual Machine data
|
||||||
:param vmname: Virtual machine name
|
:param vmname: Virtual machine name
|
||||||
|
:param kwargs: handle vm params
|
||||||
:return: list od dicts with 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)
|
vm = next(v for v in conn.get_cluster_vmlist() if v.name == vmname)
|
||||||
for param in dir(vm):
|
if parameter is not None:
|
||||||
if not param.startswith('__'):
|
vm_params = vm.__getattribute__(parameter)
|
||||||
vm_params.append({'#' + param.upper(): vm.__getattribute__(param)})
|
return vm_params
|
||||||
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):
|
def listofdicts_to_zabbix_json(dlist):
|
||||||
|
|
@ -73,13 +79,13 @@ def exec_vm(**kwargs):
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
if kwargs['name'] is not None and kwargs['listing'] is False:
|
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:
|
else:
|
||||||
print listofdicts_to_zabbix_json(
|
print listofdicts_to_zabbix_json(
|
||||||
get_vmnames(conn.get_cluster_vmlist(), NODE, name=kwargs['name'], listing=kwargs['listing']))
|
get_vmnames(conn.get_cluster_vmlist(), NODE, name=kwargs['name'], listing=kwargs['listing']))
|
||||||
|
|
||||||
|
|
||||||
if args.type == "vm":
|
if args.type == "vm":
|
||||||
exec_vm(listing=args.listing, name=args.name)
|
exec_vm(listing=args.listing, name=args.name, param=args.param)
|
||||||
else:
|
else:
|
||||||
print args
|
print args
|
||||||
|
|
|
||||||
3
VM.py
3
VM.py
|
|
@ -6,7 +6,8 @@ class VM(object):
|
||||||
template, disk, cpuusage, maxdisk, maxmem):
|
template, disk, cpuusage, maxdisk, maxmem):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.node = node
|
self.node = node
|
||||||
self.status = status
|
self.statusstr = status
|
||||||
|
self.status = 1 if self.statusstr == "running" else 0
|
||||||
self.uptime = uptime
|
self.uptime = uptime
|
||||||
self.diskread = diskread
|
self.diskread = diskread
|
||||||
self.diskwrite = diskwrite
|
self.diskwrite = diskwrite
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue