Merge "Adding fix for nic_capacity calculation"

This commit is contained in:
Zuul 2019-04-30 17:05:02 +00:00 committed by Gerrit Code Review
commit 563044e408
3 changed files with 32 additions and 7 deletions

View File

@ -25,6 +25,10 @@ DRIVER.
import subprocess
from proliantutils import log
LOG = log.get_logger(__name__)
MIN_SUGGESTED_FW_REV = 2.3
DEFAULT_FW_REV = 2.1
@ -47,7 +51,12 @@ def _exec_ipmitool(driver_info, command):
out = None
try:
out = subprocess.check_output(ipmi_cmd, shell=True)
process = subprocess.Popen(ipmi_cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, shell=True)
out, err = process.communicate()
LOG.debug(("IPMI Command output: %(out)s and "
"IPMI Command error: %(err)s and returncode: (code)s"),
{'out': out, 'err': err, 'code': process.returncode})
except Exception:
pass
return out

View File

@ -16,6 +16,20 @@
"""Test Utils for iLO test modules."""
NIC_FRU_OUT_TUPLE = ((
"Board Mfg Date : Mon Apr 28 23:16:00 2014\n"
"Board Mfg : HP\n"
"Board Product : HP Ethernet 1Gb 4-port 331FLR Adapter\n"
"Board Serial : CN84170RX5\n"
"Board Part Number : 634025-001\n"
"Board Extra : d23041\n"
"Board Extra : d5629133b001\n"
"Product Manufacturer : HP\n"
"Product Name : HP Ethernet 1Gb 4-port 331FLR Adapter\n"
"Product Part Number : 629135-B21\n"
"Product Version : 00\n"
"Product Serial : CN84170RX5"), None)
NIC_FRU_OUT = (
"Board Mfg Date : Mon Apr 28 23:16:00 2014\n"
"Board Mfg : HP\n"

View File

@ -157,17 +157,19 @@ class IloIpmiTestCase(unittest.TestCase):
self.assertEqual(ipmi_mock.call_count, 9)
self.assertEqual(expected_out, actual_out)
@mock.patch.object(subprocess, 'check_output')
def test__exec_ipmitool(self, check_mock):
check_mock.return_value = constants.NIC_FRU_OUT
@mock.patch.object(subprocess, 'Popen')
def test__exec_ipmitool(self, popen_mock):
pro_obj = mock.MagicMock()
popen_mock.return_value = pro_obj
pro_obj.communicate.return_value = constants.NIC_FRU_OUT_TUPLE
expected_output = constants.NIC_FRU_OUT
cmd = "fru print 0x64"
actual_out = ipmi._exec_ipmitool(self.info, cmd)
self.assertEqual(expected_output, actual_out)
@mock.patch.object(subprocess, 'check_output')
def test__exec_ipmitool_none(self, check_mock):
check_mock.side_effect = Exception
@mock.patch.object(subprocess, 'Popen')
def test__exec_ipmitool_none(self, popen_mock):
popen_mock.side_effect = Exception
cmd = "fru print 0x2"
actual_out = ipmi._exec_ipmitool(self.info, cmd)
self.assertIsNone(actual_out)