Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LPM: Enable MSP and add labels to adapter ports #789

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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