IBM_Storage: fix host_add_ports (#49420)

iscsi_name and fcaddress fields are not required by default.
This commit make sure that no exception is thrown if only
on field supplied
This commit is contained in:
Isaac Beckman 2019-01-22 13:05:01 +02:00 committed by John R Barker
parent 6c26256945
commit 335ee5908d
2 changed files with 8 additions and 3 deletions

View file

@ -76,7 +76,7 @@ def build_pyxcli_command(fields):
""" Builds the args for pyxcli using the exact args from ansible"""
pyxcli_args = {}
for field in fields:
if field in AVAILABLE_PYXCLI_FIELDS and fields[field]:
if field in AVAILABLE_PYXCLI_FIELDS and fields[field] != '':
pyxcli_args[field] = fields[field]
return pyxcli_args

View file

@ -99,7 +99,7 @@ def main():
xcli_client = connect_ssl(module)
# required args
ports = None
ports = []
try:
ports = xcli_client.cmd.host_list_ports(
host=module.params.get('host')).as_list
@ -109,9 +109,14 @@ def main():
port_exists = False
ports = [port.get('port_name') for port in ports]
fc_ports = (module.params.get('fcaddress')
if module.params.get('fcaddress') else [])
iscsi_ports = (module.params.get('iscsi_name')
if module.params.get('iscsi_name') else [])
for port in ports:
if port in module.params.get('iscsi_name', "") or port in module.params.get('fcaddress', ""):
if port in iscsi_ports or port in fc_ports:
port_exists = True
break
state_changed = False
if state == 'present' and not port_exists:
state_changed = execute_pyxcli_command(