update facts.py for aix (#17539)
* update facts.py for aix add product_serial ,lpar_info,product_name and pv/vg info into facts 10.223.219.10 | SUCCESS => { "ansible_facts": { "ansible_all_ipv4_addresses": [ "77.77.77.1", "10.223.219.10" ], "ansible_all_ipv6_addresses": [ "::1%1/0" ], "ansible_architecture": "chrp", "ansible_date_time": { "date": "2016-09-13", "day": "13", "epoch": "1473760269", "hour": "17", "iso8601": "2016-09-13T09:51:09Z", "iso8601_basic": "20160913T175109568670", "iso8601_basic_short": "20160913T175109", "iso8601_micro": "2016-09-13T09:51:09.569251Z", "minute": "51", "month": "09", "second": "09", "time": "17:51:09", "tz": "BEIST", "tz_offset": "BEIST", "weekday": "Tuesday", "weekday_number": "2", "weeknumber": "37", "year": "2016" }, "ansible_default_ipv4": { "address": "10.223.219.10", "broadcast": "10.223.219.127", "device": "en3", "flags": [ "UP", "BROADCAST", "NOTRAILERS", "RUNNING", "SIMPLEX", "MULTICAST", "GROUPRT", "64BIT", "CHECKSUM_OFFLOAD(ACTIVE)", "LARGESEND", "CHAIN" ], "gateway": "10.223.219.1", "interface": "en3", "macaddress": "00:11:25:be:4b:75", "mtu": "1400", "netmask": "255.255.255.128", "network": "10.223.219.0", "type": "unknown" }, "ansible_default_ipv6": {}, "ansible_distribution": "AIX", "ansible_distribution_release": "1", "ansible_distribution_version": "6", "ansible_dns": {}, "ansible_domain": "", "ansible_en0": { "device": "en0", "flags": [ "UP", "BROADCAST", "NOTRAILERS", "RUNNING", "SIMPLEX", "MULTICAST", "GROUPRT", "64BIT", "CHECKSUM_OFFLOAD(ACTIVE)", "LARGESEND", "CHAIN" ], "ipv4": [ { "address": "77.77.77.1", "broadcast": "77.77.77.127", "netmask": "255.255.255.128", "network": "77.77.77.0" } ], "ipv6": [], "macaddress": "00:14:5e:b8:cd:a6", "mtu": "1500", "type": "unknown" }, "ansible_en3": { "device": "en3", "flags": [ "UP", "BROADCAST", "NOTRAILERS", "RUNNING", "SIMPLEX", "MULTICAST", "GROUPRT", "64BIT", "CHECKSUM_OFFLOAD(ACTIVE)", "LARGESEND", "CHAIN" ], "ipv4": [ { "address": "10.223.219.10", "broadcast": "10.223.219.127", "netmask": "255.255.255.128", "network": "10.223.219.0" } ], "ipv6": [], "macaddress": "00:11:25:be:4b:75", "mtu": "1400", "type": "unknown" }, "ansible_env": { "AUTHSTATE": "compat", "CLCMD_PASSTHRU": "1", "HOME": "/home/yd_hzj", "LANG": "C", "LC_ALL": "C", "LC_MESSAGES": "C", "LC__FASTMSG": "true", "LOCPATH": "/usr/lib/nls/loc", "LOGIN": "yd_hzj", "LOGNAME": "yd_hzj", "MAIL": "/var/spool/mail/yd_hzj", "NLSPATH": "/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat", "ODMDIR": "/etc/objrepos", "PATH": "/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin", "PWD": "/home/yd_hzj", "PYTHONPATH": "", "SHELL": "/usr/bin/ksh", "SSH_CLIENT": "10.223.172.41 33369 22", "SSH_CONNECTION": "10.223.172.41 33369 10.223.219.10 22", "SSH_TTY": "/dev/pts/12", "TERM": "vt100", "TZ": "BEIST-8", "USER": "yd_hzj", "_": "/usr/bin/python" }, "ansible_fips": false, "ansible_firmware_version": "SF240_358", "ansible_fqdn": "test1", "ansible_gather_subset": [ "hardware", "network", "virtual" ], "ansible_hostname": "test1", "ansible_interfaces": [ "en0", "lo0", "en3" ], "ansible_kernel": "1", "ansible_lo0": { "device": "lo0", "flags": [ "UP", "BROADCAST", "LOOPBACK", "RUNNING", "SIMPLEX", "MULTICAST", "GROUPRT", "64BIT", "LARGESEND", "CHAIN" ], "ipv4": [ { "address": "127.0.0.1", "broadcast": "127.255.255.255", "netmask": "255.0.0.0", "network": "127.0.0.0" } ], "ipv6": [ { "address": "::1%1/0" } ], "macaddress": "unknown", "mtu": "16896", "type": "unknown" }, "ansible_lpar_info": "1 test1", "ansible_machine": "00CE5FA34C00", "ansible_memfree_mb": 9992, "ansible_memtotal_mb": 98304, "ansible_nodename": "test1", "ansible_os_family": "AIX", "ansible_pkg_mgr": "svr4pkg", "ansible_processor": "PowerPC_POWER5", "ansible_processor_cores": 2, "ansible_processor_count": 12, "ansible_product_name": "IBM,9119-595", "ansible_product_serial": "02E5FA3", "ansible_python": { "executable": "/usr/bin/python", "has_sslcontext": false, "type": "CPython", "version": { "major": 2, "micro": 5, "minor": 7, "releaselevel": "final", "serial": 0 }, "version_info": [ 2, 7, 5, "final", 0 ] }, "ansible_python_version": "2.7.5", "ansible_selinux": false, "ansible_service_mgr": "src", "ansible_ssh_host_key_dsa_public": "AAAAE23Nzav1hVVTNNoYvp7eokKbwY", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYvp7eokKbwY=", "ansible_ssh_host_key_rsa_public": "AAAAB3Nzav1hVVTNfKiM4W1j9mcw==", "ansible_swapfree_mb": 16558, "ansible_swaptotal_mb": 16896, "ansible_system": "AIX", "ansible_user_dir": "/home/yd_hzj", "ansible_user_gecos": "", "ansible_user_gid": 7, "ansible_user_id": "yd_hzj", "ansible_user_shell": "/usr/bin/ksh", "ansible_user_uid": 263, "ansible_userspace_bits": "32", "ansible_vgs": { "realsyncvg": [ { "free_pps": "6", "pp_size": "128 megabyte(s)", "pv_name": "hdisk74", "pv_state": "active", "total_pps": "1999" } ], "rootvg": [ { "free_pps": "0", "pp_size": "256 megabyte(s)", "pv_name": "hdisk0", "pv_state": "active", "total_pps": "546" }, { "free_pps": "113", "pp_size": "256 megabyte(s)", "pv_name": "hdisk1", "pv_state": "active", "total_pps": "546" } ], "testvg": [ { "free_pps": "838", "pp_size": "256 megabyte(s)", "pv_name": "hdisk105", "pv_state": "active", "total_pps": "999" }, { "free_pps": "599", "pp_size": "256 megabyte(s)", "pv_name": "hdisk106", "pv_state": "active", "total_pps": "999" } ] }, "module_setup": true }, "changed": false } * Update facts.py * Update facts.py
This commit is contained in:
parent
a80158847e
commit
06d46a1ecc
1 changed files with 52 additions and 0 deletions
|
@ -1891,6 +1891,7 @@ class AIX(Hardware):
|
|||
self.get_cpu_facts()
|
||||
self.get_memory_facts()
|
||||
self.get_dmi_facts()
|
||||
self.get_vgs_facts()
|
||||
return self.facts
|
||||
|
||||
def get_cpu_facts(self):
|
||||
|
@ -1948,6 +1949,57 @@ class AIX(Hardware):
|
|||
rc, out, err = self.module.run_command("/usr/sbin/lsattr -El sys0 -a fwversion")
|
||||
data = out.split()
|
||||
self.facts['firmware_version'] = data[1].strip('IBM,')
|
||||
lsconf_path = self.module.get_bin_path("lsconf")
|
||||
if lsconf_path:
|
||||
rc, out, err = self.module.run_command(lsconf_path)
|
||||
if rc == 0 and out:
|
||||
for line in out.splitlines():
|
||||
data = line.split(':')
|
||||
if 'Machine Serial Number' in line:
|
||||
self.facts['product_serial'] = data[1].strip()
|
||||
if 'LPAR Info' in line:
|
||||
self.facts['lpar_info'] = data[1].strip()
|
||||
if 'System Model' in line:
|
||||
self.facts['product_name'] = data[1].strip()
|
||||
def get_vgs_facts(self):
|
||||
"""
|
||||
Get vg and pv Facts
|
||||
rootvg:
|
||||
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
|
||||
hdisk0 active 546 0 00..00..00..00..00
|
||||
hdisk1 active 546 113 00..00..00..21..92
|
||||
realsyncvg:
|
||||
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
|
||||
hdisk74 active 1999 6 00..00..00..00..06
|
||||
testvg:
|
||||
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
|
||||
hdisk105 active 999 838 200..39..199..200..200
|
||||
hdisk106 active 999 599 200..00..00..199..200
|
||||
"""
|
||||
|
||||
lsvg_path = self.module.get_bin_path("lsvg")
|
||||
xargs_path = self.module.get_bin_path("xargs")
|
||||
cmd = "%s | %s %s -p" % (lsvg_path ,xargs_path,lsvg_path)
|
||||
if lsvg_path and xargs_path:
|
||||
rc, out, err = self.module.run_command(cmd,use_unsafe_shell=True)
|
||||
if rc == 0 and out:
|
||||
self.facts['vgs']= {}
|
||||
for m in re.finditer(r'(\S+):\n.*FREE DISTRIBUTION(\n(\S+)\s+(\w+)\s+(\d+)\s+(\d+).*)+', out):
|
||||
self.facts['vgs'][m.group(1)] = []
|
||||
pp_size = 0
|
||||
cmd = "%s %s" % (lsvg_path,m.group(1))
|
||||
rc, out, err = self.module.run_command(cmd)
|
||||
if rc == 0 and out:
|
||||
pp_size = re.search(r'PP SIZE:\s+(\d+\s+\S+)',out).group(1)
|
||||
for n in re.finditer(r'(\S+)\s+(\w+)\s+(\d+)\s+(\d+).*',m.group(0)):
|
||||
pv_info = { 'pv_name': n.group(1),
|
||||
'pv_state': n.group(2),
|
||||
'total_pps': n.group(3),
|
||||
'free_pps': n.group(4),
|
||||
'pp_size': pp_size
|
||||
}
|
||||
self.facts['vgs'][m.group(1)].append(pv_info)
|
||||
|
||||
|
||||
class HPUX(Hardware):
|
||||
"""
|
||||
|
|
Loading…
Reference in a new issue