The code here builds a dictionary from a glance v2 image object that roughly resembles the glance v2 image object. The current behavior nests the 'properties' set on the image under it's own 'properties' key resulting in the image properties never being seen by the Ironic code. The breakage results from the change from glanceclient to the SDK which changed the shape of the returned object. The glanceclient object shape was that of FakeImage while the SDK returns a Resource based object which includes attributes for all possible fields which are defined at the top-level of the object. Since the tests run against a different value they did not cature the failure. Just changing to the SDK object results in us copying all these new values to the properties dict which is definitely not the intention. For maximum compatibility to backport this filters any value not set from being set into properties and sets the rest. The broken path is any user of get_image_properties() (both copies from common/images and deploy_utils) checking for user supplied properties. Closes-Bug: 2099953 Change-Id: I1842e2651fd2bd8455646db9a3a80c3b9ece5c97 Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
Ironic
Team and repository tags
Overview
Ironic consists of an API and plug-ins for managing and provisioning physical machines in a security-aware and fault-tolerant manner. It can be used with nova as a hypervisor driver, or standalone service using bifrost. By default, it will use PXE and IPMI to interact with bare metal machines. Ironic also supports vendor-specific plug-ins which may implement additional functionality.
Ironic is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.
Project resources
- Documentation: https://docs.openstack.org/ironic/latest
- Source: https://opendev.org/openstack/ironic
- Bugs: https://bugs.launchpad.net/ironic/+bugs
- Wiki: https://wiki.openstack.org/wiki/Ironic
- APIs: https://docs.openstack.org/api-ref/baremetal/index.html
- Release Notes: https://docs.openstack.org/releasenotes/ironic/
- Design Specifications: https://specs.openstack.org/openstack/ironic-specs/
Project status, bugs, and requests for feature enhancements (RFEs) are tracked in Launchpad: https://launchpad.net/ironic
For information on how to contribute to ironic, see https://docs.openstack.org/ironic/latest/contributor