Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1547034

Summary: using pxe_ilo get power state fails with 'NoneType' object has no attribute 'IloClient'
Product: Red Hat OpenStack Reporter: Martin Schuppert <mschuppe>
Component: python-proliantutilsAssignee: Bob Fournier <bfournie>
Status: CLOSED WONTFIX QA Contact: Shai Revivo <srevivo>
Severity: medium Docs Contact:
Priority: medium    
Version: 11.0 (Ocata)CC: agarwalnisha1980, bfournie, hbrock, jslagle, jtrowbri, mburns
Target Milestone: ---Keywords: Triaged, ZStream
Target Release: 11.0 (Ocata)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-18 17:59:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Martin Schuppert 2018-02-20 11:42:42 UTC
Description of problem:

When import the nodes, the provision state is stuck in enroll because there is an error to get the powerstate using pxe_ilo:
~~~
2018-02-19 12:36:42.629 2934 ERROR ironic.conductor.manager [req-db0b1334-0529-4bab-9e56-65741d5f9ee4 439aa070f6f84f648c64b6bcb56ec033 812a7ce661644e57be0b8bcd1925feb1 - - -] Failed to get power state for node f2aa6d54-d8e5-4a27-a565-5d42a35ec261. Error: 'NoneType' object has no attribute 'IloClient'
2018-02-19 12:36:42.629 2934 DEBUG ironic.common.states [req-db0b1334-0529-4bab-9e56-65741d5f9ee4 439aa070f6f84f648c64b6bcb56ec033 812a7ce661644e57be0b8bcd1925feb1 - - -] Exiting old state 'verifying' in response to event 'fail' on_exit /usr/lib/python2.7/site-packages/ironic/common/states.py:228
2018-02-19 12:36:42.630 2934 DEBUG ironic.common.states [req-db0b1334-0529-4bab-9e56-65741d5f9ee4 439aa070f6f84f648c64b6bcb56ec033 812a7ce661644e57be0b8bcd1925feb1 - - -] Entering new state 'enroll' in response to event 'fail' on_enter /usr/lib/python2.7/site-packages/ironic/common/states.py:234
~~~

Version-Release number of selected component (if applicable):
* python-proliantutils-2.4.0-2
* openstack-ironic-conductor-7.0.3-2

How reproducible:
always

Steps to Reproduce:
1. seen on
Proliant DL360 Gen9
Proliant BL460C Gen8
Proliant DL380 Gen9
ProliantSL450 Gen8

2.$ cat templates/instackenv-compute.json
{
  "nodes": [
    {
      "pm_user": "ilouser",
      "mac": [
        "48:df:37:01:a2:1d",
        "48:df:37:01:d2:5d"
      ],
      "pm_type": "pxe_ilo",
      "pm_password": "ilopassword",
      "pm_addr": "x.x.x.x",
      "capabilities": "profile:compute",
      "name": "overcloud-compute01"
    },
    ....

3. $ openstack overcloud node import ~/instackenv.json

4. $ openstack baremetal node list
=> provision state stays in enroll

5. checking the log we see the error in get power state

Actual results:
2018-02-19 12:36:42.629 2934 ERROR ironic.conductor.manager [req-db0b1334-0529-4bab-9e56-65741d5f9ee4 439aa070f6f84f648c64b6bcb56ec033 812a7ce661644e57be0b8bcd1925feb1 - - -] Failed to get power state for node f2aa6d54-d8e5-4a27-a565-5d42a35ec261. Error: 'NoneType' object has no attribute 'IloClient'

Expected results:
no issue in get power state

Additional info:
It works when downgrade to python-proliantutils-2.2.0-2.el7ost.noarch

Comment 2 Bob Fournier 2018-03-08 20:08:52 UTC
I think that the wrong version of python-proliantutils has been released with OSP-11z4.  OSP-11 should be using proliantutils==2.2.0, based on driver-requirements for Ironic - https://github.com/openstack/ironic/blob/stable/ocata/driver-requirements.txt#L7.

It looks like python-proliantutils-2.4.0-2 was pulled in with this fix https://bugzilla.redhat.com/show_bug.cgi?id=1534806
It should be python-proliantutils-2.2.0-3.el7ost.

Comment 3 Bob Fournier 2018-04-18 17:59:47 UTC
Fixing this package for OSP-11 is quite an involved process, according to the ReleaseDelivery DFG:
1) adding epoch for >= OSP10 and rebuilds
2) async to ship rebuilt proliantutils for OSP 10-12
3) forking proliantutils spec in OSP from RDO b/c RDO do not want to add epoch for DS-only issue
4) remembering/maintaining said fork for >= OSP13

Given that OSP11 is about to reach end of life and that there is a workaround for this bug to use pxe_ipmitool (which was used successfully in the attached cases) the decision is to not fix this in OSP11.  The package is correct in OSP-10 and OSP-12+ so no changes are required there.