[root@salt-master python]# cat test.py
import salt.client
import simplejson
import re
def get_deep_item(d, name, default=None):
v = d
for n in name.split('#'):
v = v.get(n)
if v is None:
return default
return v
def fixData(str):
if "KeyError: 'mysql.version'" in str:
return ''
else:
return str
def getServerDetails(server, data):
mysql_version=fixData(get_deep_item(data, server+'#mysql.version', ''))
current_server={
'Bios Version': get_deep_item(data, server+'#grains.items#biosversion', ''),
'Kernel': get_deep_item(data, server+'#grains.items#kernel', ''),
'Domain': get_deep_item(data, server+'#grains.items#domain', ''),
'Kernel Release': get_deep_item(data, server+'#grains.items#kernelrelease', ''),
'Python Path': get_deep_item(data, server+'#grains.items#pythonpath', ''),
'Serial Number': get_deep_item(data, server+'#grains.items#serialnumber', ''),
'Memory Total': get_deep_item(data, server+'#grains.items#mem_total', ''),
'Os Release': get_deep_item(data, server+'#grains.items#osrelease', ''),
'Process List': get_deep_item(data, server+'#grains.items#ps', ''),
'LSB Distribution Description': get_deep_item(data, server+'#grains.items#lsb_distrib_description', ''),
'Number of CPUs': get_deep_item(data, server+'#grains.items#num_cpus', ''),
'Virtual': get_deep_item(data, server+'#grains.items#virtual', ''),
'LSB Distribution Release': get_deep_item(data, server+'#grains.items#lsb_distrib_id', ''),
'CPU Flags': get_deep_item(data, server+'#grains.items#cpu_flags', ''),
'Localhost': get_deep_item(data, server+'#grains.items#localhost', ''),
'Salt Version': get_deep_item(data, server+'#grains.items#saltversion', ''),
'LSB Distribution Release': get_deep_item(data, server+'#grains.items#lsb_distrib_release', ''),
'CPU Model': get_deep_item(data, server+'#grains.items#cpu_model', ''),
'Salt Path': get_deep_item(data, server+'#grains.items#saltpath', ''),
'Host': get_deep_item(data, server+'#grains.items#host', ''),
'OS Code': get_deep_item(data, server+'#grains.items#oscodename', ''),
'path': get_deep_item(data, server+'#grains.items#path', ''),
'Python Version': get_deep_item(data, server+'#grains.items#pythonversion', ''),
'Manufacturer': get_deep_item(data, server+'#grains.items#manufacturer', ''),
'Fully Qualified Domain Name': get_deep_item(data, server+'#grains.items#fqdn', ''),
'Bios Release Date': get_deep_item(data, server+'#grains.items#biosreleasedate', ''),
'Product Name': get_deep_item(data, server+'#grains.items#productname', ''),
'CPU Architecture': get_deep_item(data, server+'#grains.items#cpuarch', ''),
'LSB Distribution Codename': get_deep_item(data, server+'#grains.items#lsb_distrib_codename', ''),
'OS': get_deep_item(data, server+'#grains.items#os', ''),
'Mysql Version': mysql_version,
}
return current_server
client=salt.client.LocalClient()
#data=client.cmd('*', 'grains.items', [])
data=client.cmd('*', ['grains.items', 'mysql.version'], [[], []])
#tmp=simplejson.dumps(data, indent=4)
#print tmp
server_list=[]
for server in data:
server_list.append(getServerDetails(server, data))
for server in server_list:
for k,v in server.items():
print '%s: %s' % (k,v)
print '**************************'