Bug 1457222
| Summary: | power management get status fails on python IndexError or cobbler exception | ||
|---|---|---|---|
| Product: | Red Hat Satellite 5 | Reporter: | Ales Dujicek <adujicek> |
| Component: | Provisioning | Assignee: | Jan Dobes <jdobes> |
| Status: | CLOSED ERRATA | QA Contact: | Pavel Studeník <pstudeni> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 580 | CC: | jdostal, lhellebr, pstudeni, tlestach |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | cobbler-2.0.7-72 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2018-02-05 13:57:18 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: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1450111 | ||
This is a regression introduced by spacewalk.git(master): 4569ac912cf597273ca7a75d6e51a15ecdd45817 in 1169741 First indexing error fixed in spacewalk.git(master): ec89a3eb61f6f567fdec3ea20359201910191492 it now extracts the value from both output string types - e.g. "Status: ON" and "Chassis power is on" - however I don't know how to get the second output text when using default type ipmilan. Second failure when "Status: OFF" is not understood is caused by return code 2 of fence_ipmilan command while cobbler code expects return code 0 to evaluate command as successful, fixed (workarounded) in spacewalk.git(master): 694dc8060060ef82402ad5b7c52109368ed3543f It doesn't work cobbler-2.0.7-71.el6sat.noarch
Thu Jan 18 05:58:25 2018 - INFO | received:
Thu Jan 18 05:58:27 2018 - INFO | Exception Info:
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 1762, in _dispatch
return method_handle(*params)
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 1719, in power_system
rc=self.api.power_status(obj, user=None, password=None, logger=logger)
File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 825, in power_status
return action_power.PowerTool(self._config, system, self, user, password, logger = logger).power("status")
File "/usr/lib/python2.6/site-packages/cobbler/action_power.py", line 129, in power
utils.die(self.logger,"command failed (rc=%s), please validate the physical setup and cobbler config" % rc)
File "/usr/lib/python2.6/site-packages/cobbler/utils.py", line 131, in die
raise CX(msg)
Verified with cobbler-2.0.7-72.el6sat.noarch Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2018:0274 |
Description of problem: In Power Management I cannot get IPMI power status WebUI shows: An error prevented retrieving the system's power status. Please check parameters and Cobbler log. - When it is ON: /var/log/cobbler/cobbler.log: Wed May 31 05:07:22 2017 - INFO | cobbler power configuration is: Wed May 31 05:07:22 2017 - INFO | type : ipmilan Wed May 31 05:07:22 2017 - INFO | address: client-address-imm.redhat.com Wed May 31 05:07:22 2017 - INFO | user : username Wed May 31 05:07:22 2017 - INFO | id : -v Wed May 31 05:07:22 2017 - INFO | running: ['fence_ipmilan', '-a', 'client-address-imm.redhat.com', '-v', '-l', 'username', '-p', 'password', '-o', 'status'] Wed May 31 05:07:24 2017 - INFO | received: Status: ON Wed May 31 05:07:24 2017 - INFO | Exception occured: <type 'exceptions.IndexError'> Wed May 31 05:07:24 2017 - INFO | Exception value: tuple index out of range Wed May 31 05:07:24 2017 - INFO | Exception Info: File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 1762, in _dispatch return method_handle(*params) File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 1719, in power_system rc=self.api.power_status(obj, user=None, password=None, logger=logger) File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 825, in power_status return action_power.PowerTool(self._config, system, self, user, password, logger = logger).power("status") File "/usr/lib/python2.6/site-packages/cobbler/action_power.py", line 115, in power power_status = match.groups()[2] /usr/lib/python2.6/site-packages/cobbler/action_power.py: match = re.match('(^Status:\s)(ON|OFF)', output) matches only 2 groups so power_status = match.groups()[2] is out of range - When it is OFF: Wed May 31 07:01:50 2017 - INFO | cobbler power configuration is: Wed May 31 07:01:50 2017 - INFO | type : ipmilan Wed May 31 07:01:50 2017 - INFO | address: client-address-imm.redhat.com Wed May 31 07:01:50 2017 - INFO | user : username Wed May 31 07:01:50 2017 - INFO | id : Wed May 31 07:01:50 2017 - INFO | running: ['fence_ipmilan', '-a', 'client-address-imm.redhat.com', '-l', 'username', '-p', 'password', '-o', 'status'] Wed May 31 07:01:51 2017 - INFO | received: Status: OFF Wed May 31 07:01:53 2017 - INFO | running: ['fence_ipmilan', '-a', 'client-address-imm.redhat.com', '-l', 'username', '-p', 'password', '-o', 'status'] Wed May 31 07:01:55 2017 - INFO | received: Status: OFF Wed May 31 07:01:57 2017 - INFO | running: ['fence_ipmilan', '-a', 'client-address-imm.redhat.com', '-l', 'username', '-p', 'password', '-o', 'status'] Wed May 31 07:01:58 2017 - INFO | received: Status: OFF Wed May 31 07:02:00 2017 - DEBUG | REMOTE expiring token; user(<DIRECT>) Wed May 31 07:02:00 2017 - DEBUG | get_items; ['distro'] Wed May 31 07:02:00 2017 - DEBUG | get_items; ['profile'] Wed May 31 07:02:00 2017 - INFO | running: ['fence_ipmilan', '-a', 'client-address-imm.redhat.com', '-l', 'username', '-p', 'password', '-o', 'status'] Wed May 31 07:02:01 2017 - INFO | received: Status: OFF Wed May 31 07:02:03 2017 - INFO | running: ['fence_ipmilan', '-a', 'client-address-imm.redhat.com', '-l', 'username', '-p', 'password', '-o', 'status'] Wed May 31 07:02:05 2017 - INFO | received: Status: OFF Wed May 31 07:02:07 2017 - INFO | Exception occured: <class 'cobbler.cexceptions.CX'> Wed May 31 07:02:07 2017 - INFO | Exception value: 'command failed (rc=2), please validate the physical setup and cobbler config' Wed May 31 07:02:07 2017 - INFO | Exception Info: File "/usr/lib/python2.6/site-packages/cobbler/utils.py", line 123, in die raise CX(msg) Wed May 31 07:02:07 2017 - INFO | Exception occured: <class 'cobbler.cexceptions.CX'> Wed May 31 07:02:07 2017 - INFO | Exception value: 'command failed (rc=2), please validate the physical setup and cobbler config' Wed May 31 07:02:07 2017 - INFO | Exception Info: File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 1762, in _dispatch return method_handle(*params) File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 1719, in power_system rc=self.api.power_status(obj, user=None, password=None, logger=logger) File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 825, in power_status return action_power.PowerTool(self._config, system, self, user, password, logger = logger).power("status") File "/usr/lib/python2.6/site-packages/cobbler/action_power.py", line 127, in power utils.die(self.logger,"command failed (rc=%s), please validate the physical setup and cobbler config" % rc) File "/usr/lib/python2.6/site-packages/cobbler/utils.py", line 131, in die raise CX(msg) It looks like it does not expect 'Status: OFF' so it reruns the command several times Version-Release number of selected component (if applicable): cobbler-2.0.7-66.el6sat.noarch spacewalk-java-2.5.14-88.el6sat.noarch How reproducible: always Steps to Reproduce: 1. setup IPMI power management for a client 2. Provisioning > Power Management > Get Status (/rhn/systems/details/kickstart/PowerManagement.do?sid=1000010004&) 3. or cobbler system powerstatus --name <profilename>