mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
network facts, add unit test for FC WWN (#55848)
* use 'None' as return value for get_bin_path and set return code to non-zero on run_command error
This commit is contained in:
parent
005487cba2
commit
b9af6847c2
1 changed files with 94 additions and 0 deletions
94
test/units/module_utils/facts/network/test_fc_wwn.py
Normal file
94
test/units/module_utils/facts/network/test_fc_wwn.py
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Copyright (c) 2019 Ansible Project
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
|
from __future__ import absolute_import, division, print_function
|
||||||
|
__metaclass__ = type
|
||||||
|
|
||||||
|
from ansible.module_utils.facts.network import fc_wwn
|
||||||
|
from units.compat.mock import Mock, patch
|
||||||
|
|
||||||
|
|
||||||
|
# AIX lsdev
|
||||||
|
LSDEV_OUTPUT = """
|
||||||
|
fcs0 Defined 00-00 8Gb PCI Express Dual Port FC Adapter (df1000f114108a03)
|
||||||
|
fcs1 Available 04-00 8Gb PCI Express Dual Port FC Adapter (df1000f114108a03)
|
||||||
|
"""
|
||||||
|
|
||||||
|
# a bit cutted output of lscfg (from Z0 to ZC)
|
||||||
|
LSCFG_OUTPUT = """
|
||||||
|
fcs1 U78CB.001.WZS00ZS-P1-C9-T1 8Gb PCI Express Dual Port FC Adapter (df1000f114108a03)
|
||||||
|
|
||||||
|
Part Number.................00E0806
|
||||||
|
Serial Number...............1C4090830F
|
||||||
|
Manufacturer................001C
|
||||||
|
EC Level.................... D77161
|
||||||
|
Customer Card ID Number.....577D
|
||||||
|
FRU Number..................00E0806
|
||||||
|
Device Specific.(ZM)........3
|
||||||
|
Network Address.............10000090FA551508
|
||||||
|
ROS Level and ID............027820B7
|
||||||
|
Device Specific.(Z0)........31004549
|
||||||
|
Device Specific.(ZC)........00000000
|
||||||
|
Hardware Location Code......U78CB.001.WZS00ZS-P1-C9-T1
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Solaris
|
||||||
|
FCINFO_OUTPUT = """
|
||||||
|
HBA Port WWN: 10000090fa1658de
|
||||||
|
Port Mode: Initiator
|
||||||
|
Port ID: 30100
|
||||||
|
OS Device Name: /dev/cfg/c13
|
||||||
|
Manufacturer: Emulex
|
||||||
|
Model: LPe12002-S
|
||||||
|
Firmware Version: LPe12002-S 2.01a12
|
||||||
|
FCode/BIOS Version: Boot:5.03a0 Fcode:3.01a1
|
||||||
|
Serial Number: 4925381+13090001ER
|
||||||
|
Driver Name: emlxs
|
||||||
|
Driver Version: 3.3.00.1 (2018.01.05.16.30)
|
||||||
|
Type: N-port
|
||||||
|
State: online
|
||||||
|
Supported Speeds: 2Gb 4Gb 8Gb
|
||||||
|
Current Speed: 8Gb
|
||||||
|
Node WWN: 20000090fa1658de
|
||||||
|
NPIV Not Supported
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def mock_get_bin_path(cmd, required=False):
|
||||||
|
result = None
|
||||||
|
if cmd == 'lsdev':
|
||||||
|
result = '/usr/sbin/lsdev'
|
||||||
|
elif cmd == 'lscfg':
|
||||||
|
result = '/usr/sbin/lscfg'
|
||||||
|
elif cmd == 'fcinfo':
|
||||||
|
result = '/usr/sbin/fcinfo'
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def mock_run_command(cmd):
|
||||||
|
rc = 0
|
||||||
|
if 'lsdev' in cmd:
|
||||||
|
result = LSDEV_OUTPUT
|
||||||
|
elif 'lscfg' in cmd:
|
||||||
|
result = LSCFG_OUTPUT
|
||||||
|
elif 'fcinfo' in cmd:
|
||||||
|
result = FCINFO_OUTPUT
|
||||||
|
else:
|
||||||
|
rc = 1
|
||||||
|
result = 'Error'
|
||||||
|
return (rc, result, '')
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_fc_wwn_info(mocker):
|
||||||
|
module = Mock()
|
||||||
|
inst = fc_wwn.FcWwnInitiatorFactCollector()
|
||||||
|
|
||||||
|
mocker.patch.object(module, 'get_bin_path', side_effect=mock_get_bin_path)
|
||||||
|
mocker.patch.object(module, 'run_command', side_effect=mock_run_command)
|
||||||
|
|
||||||
|
d = {'aix6': ['10000090FA551508'], 'sunos5': ['10000090fa1658de']}
|
||||||
|
for key, value in d.items():
|
||||||
|
mocker.patch('sys.platform', key)
|
||||||
|
wwn_expected = {"fibre_channel_wwn": value}
|
||||||
|
assert wwn_expected == inst.collect(module=module)
|
Loading…
Reference in a new issue