
When an allocation has been created, it is still being created in the background. The client may request deletion of the allocation *prior* to the creation of the allocation is entirely completed. That is fine, but the challenge is we may encounter a locked row if we're asked to delete while in process. So, we'll query with with_for_update[0] which should be held until the lock is released, which is only released when the original locking transaction closes out[1][2]. [0]: https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update [1]: https://dev.mysql.com/doc/refman/5.7/en/select.html [2]: https://dev.mysql.com/doc/refman/5.7/en/innodb-locking-reads.html Change-Id: I0b68f054c951655b01f0cd776feb5a8c768471ab Closes-Bug: #2028866
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 StoryBoard: https://storyboard.openstack.org/#!/project/943
For information on how to contribute to ironic, see https://docs.openstack.org/ironic/latest/contributor