Skip to content

Commit

Permalink
Enable MSP and add labels to ports
Browse files Browse the repository at this point in the history
Enable MSP when the MSP is disabled on vios.
Test also adds a user defined label to adapter port and removes the
label at the end of test.

Signed-off-by: Vaishnavi Bhat <[email protected]>
  • Loading branch information
vaishnavibhat committed Oct 4, 2023
1 parent 7e75b5a commit 6ce4c54
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 2 deletions.
47 changes: 47 additions & 0 deletions common/OpTestHMC.py
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,53 @@ def is_msp_enabled(self, mg_system, vios_name, remote_hmc=None):
return False
return True

def enable_msp(self, mg_system, vios_name, remote_hmc=None):
'''
The function enables msp for lpar of the
given lpar_id and managaed system.
:param mg_system: string, Source managed system
:param lpar_id: number. lpar ID of the lpar
:returns: Boolean, True on success, False on failure
'''
hmc = remote_hmc if remote_hmc else self
cmd = "chsyscfg -m %s -r lpar -i name=%s,msp=1" % (mg_system, vios_name)
msp_enable = hmc.ssh.run_command(cmd)
if msp_enable != 0:
return False
return True

def set_label(self, mg_system, adapter_id, port_id, label, remote_hmc=None):
'''
:param mg_system: string, Source managed system
:param adapter_id: number adapter ID of the card
:param label: string, name of the label that needs to be set
:returns: Boolean, True on success, False on failure
'''
hmc = remote_hmc if remote_hmc else self
cmd = 'chhwres -r sriov -m %s --rsubtype physport -o \
s -a "adapter_id=%s,phys_port_id=%s,phys_port_label=%s"' % (
mg_system, adapter_id, port_id, label)
label_set = hmc.ssh.run_command(cmd)
if label_set != 0:
return False
return True

def remove_label(self, mg_system, adapter_id, port_id, remote_hmc=None):
'''
:param mg_system: string, Source managed system
:param adapter_id: number, adapter ID of the card
:returns: Boolean, True on success, False on failure
'''
hmc = remote_hmc if remote_hmc else self
cmd = 'chhwres -r sriov -m %s --rsubtype physport -o \
s -a "adapter_id=%s,phys_port_id=%s,phys_port_label=none"' % (
mg_system, adapter_id, port_id)
label_remove = hmc.ssh.run_command(cmd)
if label_remove != 0:
return False
return True

def gather_logs(self, list_of_commands=[], remote_hmc=None, output_dir=None):
'''
Gather the logs for the commands at the given directory
Expand Down
18 changes: 16 additions & 2 deletions testcases/OpTestLPM.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,12 @@ def setUp(self, remote_hmc=None):
self.dest_lpar_vios = self.conf.args.remote_lpar_vios.split(",")
for vios_name in self.src_lpar_vios:
if not self.cv_HMC.is_msp_enabled(self.src_mg_sys, vios_name):
self.errMsg(vios_name, self.src_mg_sys)
log.info("MSP is not set, trying to set MSP..!")
self.cv_HMC.enable_msp(self.src_mg_sys, vios_name)
for vios_name in self.dest_lpar_vios:
if not self.cv_HMC.is_msp_enabled(self.dest_mg_sys, vios_name, remote_hmc):
self.errMsg(vios_name, self.dest_mg_sys)
log.info("MSP is not set in destination machine, trying to set MSP..!")
self.cv_HMC.enable_msp(self.dest_mg_sys, vios_name)

if 'slot_num' in self.conf.args:
self.slot_num = self.conf.args.slot_num
Expand All @@ -120,6 +122,7 @@ def setUp(self, remote_hmc=None):
self.interface_ip = self.conf.args.interface_ip
self.netmask = self.conf.args.netmask
self.peer_ip = self.conf.args.peer_ip
self.adapter_labels = self.conf.args.adapter_labels.split(",")

self.vios_id = []
for vios_name in self.src_lpar_vios:
Expand All @@ -134,6 +137,12 @@ def setUp(self, remote_hmc=None):
for adapter in self.target_adapters:
self.target_adapter_id.append(self.cv_HMC.get_adapter_id(self.dest_mg_sys, adapter, remote_hmc))

for index in range(0, len(self.adapter_labels)):
for port in self.ports:
self.cv_HMC.set_label(self.src_mg_sys, self.adapter_id[index], self.ports[index], self.adapter_labels[index])
for port in self.target_ports:
self.cv_HMC.set_label(self.dest_mg_sys, self.target_adapter_id[index], self.ports[index], self.adapter_labels[index])

def check_pkg_installation(self):
pkg_found = True
pkg_notfound = []
Expand Down Expand Up @@ -386,6 +395,11 @@ def tearDown(self):
self.cv_HOST.host_run_command('pkill -x "stress-ng"')
self.thread_stressng.console_terminate()

for index in range(0, len(self.adapter_labels)):
for port in self.ports:
self.cv_HMC.remove_label(self.src_mg_sys, self.adapter_id[index], self.ports[index])
for port in self.target_ports:
self.cv_HMC.remove_label(self.dest_mg_sys, self.target_adapter_id[index], self.ports[index])

class OpTestLPM_CrossHMC(OpTestLPM):

Expand Down

0 comments on commit 6ce4c54

Please sign in to comment.