Skip to content

Commit 9576f93

Browse files
committed
Op-test sysinfo Enhancement
Signed-off-by: yeswanth <yeswanth@linux.ibm.com>
1 parent 8b454fa commit 9576f93

File tree

3 files changed

+65
-29
lines changed

3 files changed

+65
-29
lines changed

CONFIG.YAML

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ LINUX:
44
- "hostname"
55
- "cat /etc/os-release | grep PRETTY_NAME"
66
- "uname -r"
7+
- "lsmcode" #Firmware
8+
- "tail /proc/cpuinfo | grep cpu" # will give info whether its P8/P9,P10 or P11
9+
710
HMC:
811
COMMANDS:
912
- "lshmc -V" #HMC software version, release, service pack, and build level
@@ -15,3 +18,30 @@ HMC:
1518
- "lshwres -r virtualio --rsubtype eth -m SYS --level lpar" #Virtual Ethernet Adapter (VEA) Info
1619
- "lshwres -r virtualio --rsubtype scsi -m SYS --level lpar" #scsi Adapter Info
1720
- "lshwres -r virtualio --rsubtype fc -m SYS --level lpar" #fc Adapter Info
21+
- "lssyscfg -r lpar -m SYS -F name,kvm_capable" #To check KVM capable lpars
22+
- "lssysconn -r all" # This command lists system connections and includes the FSP/BMC IP address.
23+
24+
IO:
25+
COMMANDS:
26+
- "lshwres -r io -m SYS --rsubtype slot --filter 'lpar_names=LPAR_NAME'" # List physical IO
27+
- "lshwres -r virtualio --rsubtype fc --level lpar -m SYS -F adapter_type,lpar_name,slot_num,remote_lpar_name,remote_slot_num,wwpns" # List virtual IOs
28+
29+
KVM:
30+
COMMANDS:
31+
- "arch" # Architecture
32+
- "lscpu | grep 'Model name' | cut -f 2 -d ':' | awk '{$1=$1}1'" # Processor
33+
- "nproc" # No-of-CPUs
34+
- "free -mh" # RAM
35+
36+
BMC_or_FSP:
37+
COMMANDS:
38+
- lsmcode | grep -o 'FW[0-9]*\.[0-9]*' # indicates the firmware level and variant for the system's Baseboard Management Controller (BMC).
39+
VIOS:
40+
COMMANDS:
41+
- "lscfg" # Display hardware configuration information.
42+
- "vmstat" # Copy: Report virtual memory statistics.
43+
44+
FS:
45+
COMMANDS:
46+
- "mkfs.ext4 -V"
47+
- "mkfs.xfs -V"

common/OpTestHMC.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1138,9 +1138,19 @@ def set_system(self, system):
11381138
self.pty = self.get_console()
11391139
self.pty.set_system(system)
11401140
log.info("Collecting OS sysinfo")
1141-
self.sysinfo.get_OSconfig(self.pty, self.expect_prompt)
1141+
self.sysinfo.get_config(self.pty, self.expect_prompt,self.mg_system,self.lpar_name,'LINUX')
11421142
log.info("Collecting HMC details")
1143-
self.sysinfo.get_HMCconfig(self.ssh, self.expect_prompt,self.mg_system)
1143+
self.sysinfo.get_config(self.ssh, self.expect_prompt,self.mg_system,self.lpar_name,'HMC')
1144+
log.info("Collecting IO details")
1145+
self.sysinfo.get_config(self.ssh, self.expect_prompt,self.mg_system,self.lpar_name,'IO')
1146+
log.info("Collecting KVM info")
1147+
self.sysinfo.get_config(self.pty, self.expect_prompt,self.mg_system,self.lpar_name,'KVM')
1148+
log.info("Collecting BMC_or_FSP info")
1149+
self.sysinfo.get_config(self.pty, self.expect_prompt,self.mg_system,self.lpar_name,'BMC_or_FSP')
1150+
log.info("Collecting VIOS info")
1151+
self.sysinfo.get_config(self.pty, self.expect_prompt,self.mg_system,self.lpar_name,'VIOS')
1152+
log.info("Collecting FS info")
1153+
self.sysinfo.get_config(self.pty, self.expect_prompt,self.mg_system,self.lpar_name,'FS')
11441154

11451155
def get_host_console(self):
11461156
'''

common/OpTestSysinfo.py

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -40,34 +40,30 @@ class OpTestSysinfo():
4040
def __init__(self):
4141
with open(config_file, "r") as file:
4242
self.config_actions = yaml.safe_load(file)
43-
list_of_commands = self.config_actions["LINUX"]["COMMANDS"]
44-
get_HMCconfig_cmds = self.config_actions["HMC"]["COMMANDS"]
45-
46-
def get_OSconfig(self, pty, prompt):
47-
# Collect config related data from the OS
48-
try:
49-
list_of_commands = self.config_actions["LINUX"]["COMMANDS"]
50-
print("########### OS Sysinfo ########")
51-
for index, each_cmd in enumerate(list_of_commands, start=0):
52-
pty.sendline(each_cmd)
53-
rc = pty.expect([prompt, pexpect.TIMEOUT, pexpect.EOF], timeout=10)
54-
except CommandFailed as cf:
55-
raise cf
56-
57-
def get_HMCconfig(self, pty, prompt,CEC_name):
58-
# Collect config data from HMC
59-
################ HMC INFO ####################
60-
get_HMCconfig_cmds = self.config_actions["HMC"]["COMMANDS"]
61-
for index, each_cmd in enumerate(get_HMCconfig_cmds, start=0):
62-
if re.search('SYS', each_cmd):
63-
new_cmd=re.sub('SYS',CEC_name,each_cmd)
64-
try:
65-
output = pty.run_command(new_cmd)
66-
except Exception as e:
43+
44+
def get_config(self, pty,prompt,CEC_name,LPAR,action_name):
45+
# Collect config data based on action_name
46+
get_config_cmds = self.config_actions[action_name]["COMMANDS"]
47+
for index, each_cmd in enumerate(get_config_cmds, start=0):
48+
if re.search(r'SYS|LPAR_NAME', each_cmd):
49+
new_cmd=each_cmd
50+
# Replace placeholders
51+
new_cmd = re.sub(r'SYS', CEC_name, new_cmd)
52+
new_cmd = re.sub(r'LPAR_NAME', LPAR, new_cmd)
53+
try:
54+
if action_name in ['HMC', 'IO']:
55+
output = pty.run_command(new_cmd)
56+
else:
57+
pty.sendline(new_cmd)
58+
rc = pty.expect([prompt, pexpect.TIMEOUT, pexpect.EOF], timeout=10)
59+
except Exception as e:
6760
print('command failed due to system error')
6861
else:
6962
try:
70-
output = pty.run_command(each_cmd)
63+
if action_name == 'HMC':
64+
output = pty.run_command(each_cmd)
65+
else:
66+
pty.sendline(each_cmd)
67+
rc = pty.expect([prompt, pexpect.TIMEOUT, pexpect.EOF], timeout=10)
7168
except Exception as e:
72-
print('command failed due to system error')
73-
69+
print('command failed due to system error')

0 commit comments

Comments
 (0)