Description of problem: The openstack-nova package does not require ipmitool. ipmitool is used by the nova baremetal driver. Do we want to add this requirement? If not, it's up to the user to know to install it manually. Version-Release number of selected component (if applicable): openstack-nova-2013.2-1
Not having ipmitool installed and configuring nova to use the baremetal driver results in a traceback (sorry for the poor formatting): [stack@virtlab-cloud-07 ~]$ nova show 7f50458f-e624-4836-aec3-73627789e3a8 +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Property | Value | +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | status | ERROR | | updated | 2013-10-22T17:49:21Z | | OS-EXT-STS:task_state | None | | OS-EXT-SRV-ATTR:host | undercloud-leaf | | key_name | default | | image | overcloud-control (27dc01b5-3917-49db-a9d5-c679a03d6704) | | hostId | 261d8cc60f9461bd20e70f9ee3c76f6eb2ad7a3e6d6849fe295af318 | | OS-EXT-STS:vm_state | error | | OS-EXT-SRV-ATTR:instance_name | instance-00000003 | | OS-SRV-USG:launched_at | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | 52142f94-41a5-4119-bcda-6dcb52dc2541 | | flavor | baremetal (63c27646-9892-48af-aac5-e9903d8a9a5e) | | id | 7f50458f-e624-4836-aec3-73627789e3a8 | | OS-SRV-USG:terminated_at | None | | user_id | eb520cb04899420693fef39507c6a3f2 | | name | overcloud-notcompute-5he42oc7knz7 | | created | 2013-10-22T17:46:53Z | | ctlplane network | 192.0.2.3 | | tenant_id | 462d0ffc47de4d8da206b797bf5f3ee2 | | OS-DCF:diskConfig | MANUAL | | metadata | {} | | os-extended-volumes:volumes_attached | [] | | accessIPv4 | | | accessIPv6 | | | fault | {u'message': u'[Errno 2] No such file or directory', u'code': 500, u'details': u' File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 258, in decorated_function | | | return function(self, context, *args, **kwargs) | | | File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1613, in run_instance | | | do_run_instance() | | | File "/usr/lib/python2.7/site-packages/nova/openstack/common/lockutils.py", line 246, in inner | | | return f(*args, **kwargs) | | | File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1612, in do_run_instance | | | legacy_bdm_in_spec) | | | File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 962, in _run_instance | | | notify("error", msg=unicode(e)) # notify that build failed | | | File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 946, in _run_instance | | | instance, image_meta, legacy_bdm_in_spec) | | | File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1075, in _build_instance | | | filter_properties, bdms, legacy_bdm_in_spec) | | | File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1119, in _reschedule_or_error | | | self._log_original_error(exc_info, instance_uuid) | | | File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1114, in _reschedule_or_error | | | bdms, requested_networks) | | | File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1662, in _shutdown_instance | | | requested_networks) | | | File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1652, in _shutdown_instance | | | context=context) | | | File "/usr/lib/python2.7/site-packages/nova/virt/baremetal/driver.py", line 317, in destroy | | | "baremetal database: %s") % e) | | | File "/usr/lib/python2.7/site-packages/nova/virt/baremetal/driver.py", line 299, in destroy | | | self.power_off(instance, node) | | | File "/usr/lib/python2.7/site-packages/nova/virt/baremetal/driver.py", line 324, in power_off | | | pm.deactivate_node() | | | File "/usr/lib/python2.7/site-packages/nova/virt/baremetal/ipmi.py", line 233, in deactivate_node | | | self._power_off() | | | File "/usr/lib/python2.7/site-packages/nova/virt/baremetal/ipmi.py", line 187, in _power_off | | | timer.start(interval=0.5).wait() | | | File "/usr/lib/python2.7/site-packages/eventlet/event.py", line 116, in wait | | | return hubs.get_hub().switch() | | | File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 187, in switch | | | return self.greenlet.switch() | | | File "/usr/lib/python2.7/site-packages/nova/openstack/common/loopingcall.py", line 78, in _inner | | | self.f(*self.args, **self.kw) | | | File "/usr/lib/python2.7/site-packages/nova/virt/baremetal/ipmi.py", line 171, in _wait_for_power_off | | | if self.is_power_on() is False: | | | File "/usr/lib/python2.7/site-packages/nova/virt/baremetal/ipmi.py", line 244, in is_power_on | | | res = self._exec_ipmitool("power status")[0] | | | File "/usr/lib/python2.7/site-packages/nova/virt/baremetal/ipmi.py", line 134, in _exec_ipmitool | | | out, err = utils.execute(*args, attempts=3) | | | File "/usr/lib/python2.7/site-packages/nova/utils.py", line 177, in execute | | | return processutils.execute(*cmd, **kwargs) | | | File "/usr/lib/python2.7/site-packages/nova/openstack/common/processutils.py", line 163, in execute | | | shell=shell) | | | File "/usr/lib/python2.7/site-packages/eventlet/green/subprocess.py", line 25, in __init__ | | | subprocess_orig.Popen.__init__(self, args, 0, *argss, **kwds) | | | File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__ | | | errread, errwrite) | | | File "/usr/lib64/python2.7/subprocess.py", line 1308, in _execute_child | | | raise child_exception | | | ', u'created': u'2013-10-22T17:49:21Z'} | | OS-EXT-STS:power_state | 0 | | OS-EXT-AZ:availability_zone | nova | | config_drive | | +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+