summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Always fall back from hard linking to copying filesbugfix/21.3Dmitry Tantsur2023-04-113-107/+40
| | | | | | | | | | | | | The current check is insufficient: it passes for Kubernetes shared volumes, although hard-linking between them is not possible. This patch changes the approach to trying a hard link and falling back to copyfile instead. The patch relies on optimizations in Python 3.8 and thus should not be backported beyond the Zed series to avoid performance regression. Change-Id: I929944685b3ac61b2f63d2549198a2d8a1c8fe35 (cherry picked from commit 59c6ad96ce35c9deecfedb5698c5806f3883a8af)
* Add error logging on lookup failures in the APIDmitry Tantsur2023-04-041-1/+5
| | | | | | | | Lookup returns generic 404 errors for security reasons. Logging is the only way of debugging any issues during it. Change-Id: I860ed6b90468a403f0f6cdec9c3d84bc872fda06 (cherry picked from commit 21437135ab3a8c9aa2fea99c48ab42eb45630941)
* Merge "Clean out agent token even if power is already off" into bugfix/21.3Zuul2023-03-173-0/+38
|\
| * Clean out agent token even if power is already offJulia Kreger2023-03-153-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While investigating a very curious report, I discovered that if somehow the power was *already* turned off to a node, say through an incorrect BMC *or* human action, and Ironic were to pick it up (as it does by default, because it checks before applying the power state, then it would not wipe the token information, preventing the agent from connecting on the next action/attempt/operation. We now remove the token on all calls to conductor utilities node_power_action method when appropriate, even if no other work is required. Change-Id: Ie89e8be9ad2887467f277772445d4bef79fa5ea1 (cherry picked from commit bcf6c12269168c5b4f0d9d4d3212e813f1827494)
* | Merge "Wipe Agent Token when cleaning timeout occcurs" into bugfix/21.3Zuul2023-03-173-2/+15
|\ \
| * | Wipe Agent Token when cleaning timeout occcursJulia Kreger2023-03-153-2/+15
| |/ | | | | | | | | | | | | | | | | | | | | | | In a relatively odd turn of events, should cleaning have started, but then timed out due to lost communications or a hard failure of the machine, an agent token could previously be orphaned preventing re-cleaning. We now explicitly remove the token in this case. Change-Id: I236cdf6ddb040284e9fd1fa10136ad17ef665638 (cherry picked from commit 47b5909486c336352c536eb2cadd121afea8cf12)
* | Fix online upgrades for Bios/TraitsJulia Kreger2023-03-153-12/+62
|/ | | | | | | | | | | | | | | | | | | | | | | | | ... And tags, but nobody uses tags since it is not available via the API. Anyhow, the online upgrade code was written under the assumption that *all* tables had an "id" column. This is not always true in the ironic data model for tables which started as pure extensions of the Nodes table, and fails in particular when: 1) A database row has data stored in an ealier version of the object 2) That same object gets a version upgrade. In the case which discovered this, BIOSSetting was added at version 1.0, and later updated to include additional fields which incremented the version to 1.1. When the upgrade went to evaluate and iterate through the fields, the command failed because the table was designed around "node_id" instead of "id". Story: 2010632 Task: 47590 Change-Id: I7bec6cfacb9d1558bc514c07386583436759f4df (cherry picked from commit cbe5f86ce7c100f834701cf43f7b9b1bfdfb9ea5)
* Do not recalculate checksum if disk_format is not changedDmitry Tantsur2023-03-136-22/+151
| | | | | | | | Even if a glance image is raw, we still recalculate the checksum after "converting" it to raw. This process may take exceptionally long. Change-Id: Id93d518b8d2b8064ff901f1a0452abd825e366c0 (cherry picked from commit f00da959eaa70a7e77059655c0050137cee78568)
* Merge "Configure CI for bugfix/21.3" into bugfix/21.3Zuul2023-03-033-5/+18
|\
| * Configure CI for bugfix/21.3Dmitry Tantsur2023-03-033-5/+18
| | | | | | | | Change-Id: I3463a6a07cc331e2bf739ecf63be0a8a0f363181
* | Do not move nodes to CLEAN FAILED with empty last_errorDmitry Tantsur2023-03-029-27/+80
|/ | | | | | | | | | | | | | | | | | | | When cleaning fails, we power off the node, unless it has been running a clean step already. This happens when aborting cleaning or on a boot failure. This change makes sure that the power action does not wipe the last_error field, resulting in a node with provision_state=CLEANFAIL and last_error=None for several seconds. I've hit this in Metal3. Also when aborting cleaning, make sure last_error is set during the transition to CLEANFAIL, not when the clean up thread starts running. While here, make sure to log the current step in all cases, not only when aborting a non-abortable step. Change-Id: Id21dd7eb44dad149661ebe2d75a9b030aa70526f Story: #2010603 Task: #47476 (cherry picked from commit 9a0fa631ca53b40f4dc1877a73e65ded8ac37616)
* Update .gitreview for bugfix/21.3OpenStack Release Bot2023-01-311-0/+1
| | | | Change-Id: I524b0d3d3e6fa3f140a2c9fbc9380651c310ff8b
* Merge "Fix grub config path default"21.3.0Zuul2023-01-272-1/+15
|\
| * Fix grub config path defaultJulia Kreger2023-01-112-1/+15
| | | | | | | | | | | | | | | | | | | | | | Grub2 looks for files in different paths depending on the boot mode of the binary. Previously the grub_config_path setting was defaulted to the path used exclusively for BIOS booting, which meant anyone using it had to override the setting. Now, we've set the default to the default for UEFI booting, and the world should be a happier, and less override filled place. Change-Id: Id6723e92efb62f8ca03099f15c90580cec887ddd
* | Merge "Move and fix reno config for releasenotes job"Zuul2023-01-271-2/+2
|\ \
| * | Move and fix reno config for releasenotes jobJay Faulkner2023-01-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In its current place, reno config changes will not cause build-openstack-releasenotes job to run, which means changes can land to that config without being tested. Yikes! Also fixes error in regexp which was preventing this from actually fixing the build-openstack-releasenotes job. Change-Id: I4d46ba06ada1afb5fd1c63db5850a1983e502a6c
* | | [CI] Swap anaconda urlsJulia Kreger2023-01-261-3/+3
|/ / | | | | | | | | | | | | | | The anaconda job is failing as were getting a redirect issued back upon attempting to validate URLs. The servers are now directing us to use HTTPS instead. Change-Id: Iac8e6e58653ac616250f4ce3ab3ae7f5164e5b03
* | Merge "Use new get_rpc_client API from oslo.messaging"Zuul2023-01-262-5/+4
|\ \
| * | Use new get_rpc_client API from oslo.messagingTobias Urdin2023-01-192-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the new API that is consistent with the existing API instead of instantiating the client class directly. This was introduced in release 14.1.0 here [1] and added into oslo.messaging here [2] [1] https://review.opendev.org/c/openstack/requirements/+/869340 [2] https://review.opendev.org/c/openstack/oslo.messaging/+/862419 Change-Id: I2aea1d4fb59e7440586d8d9cd27bc61d29f4530c
* | | Merge "Clarify release docs: bugfix releases optional"Zuul2023-01-261-8/+12
|\ \ \
| * | | Clarify release docs: bugfix releases optionalJay Faulkner2023-01-241-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bugfix releases are optional in practice; document that truth in our release documents. Change-Id: Ie24e959fdb338fafeafdf0e064eede273f2011f4
* | | | Merge "Docs: Troubleshooting: how to exit clean failed"Zuul2023-01-261-0/+44
|\ \ \ \
| * | | | Docs: Troubleshooting: how to exit clean failedJulia Kreger2023-01-201-0/+44
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I got pinged with some questions by an operator who had issues attempting to exit cleaning. In the discussion, it was realized we lack basic troubleshooting guidance, which led them to try everything but the command they needed. As such, adding some guidance in an attempt to help operators navigate these sorts of issues moving forward. Change-Id: Ia563f5e50bbcc789ccc768bef5800a64b38ff3d7
* | | | Make reno ignore bugfix eol tagsJay Faulkner2023-01-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reno was assuming all tags ending in -eol represented an old, EOL'd stable branch. That's not true for Ironic projects which have bugfix branches. Update the regexp to exclude those branches. Co-Authored-By: Adam McArthur <adam@mcaq.me> Change-Id: I568b14097cd46d4d7d365ff894ef5cd29edd1e3a
* | | | Merge "Reorganise Inventory Storage"Zuul2023-01-246-114/+223
|\ \ \ \ | |_|/ / |/| | |
| * | | Reorganise Inventory StorageJakub Jelinek2023-01-216-114/+223
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move functions storing and obtaining introspection data from drivers/modules/inspector.py and api/controllers/v1/node.py to driver/modules/inspect_utils.py Follow-up to change If50f665da5fbb16f7646f3d6195a6e14e7325b0a Story: 2010275 Task: 46204 Change-Id: I2b206670aff6ad3a9f9cc76236453abf42663cad
* | | | Merge "Create [inventory]"Zuul2023-01-208-27/+53
|\ \ \ \ | |/ / / | | / / | |/ / |/| |
| * | Create [inventory]Jakub Jelinek2023-01-178-27/+53
| | | | | | | | | | | | | | | | | | | | | | | | Create [inventory] to hold CONF parameters for storage of introspection data Story: 2010275 Task: 46204 Change-Id: I06fa4f69160206dd350856e264cbb0842e34fd2a
* | | CI: Fix race prone unit test in networkingJulia Kreger2023-01-181-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the networking code stack, one of the methods looks to identify if a change has occured, except some of the other tests utilize the same value that was previously asserted for the same base object. Becaues of this, just use a unique value so we don't risk the possibility of the test failing erroneously. Change-Id: Ide2b205ade67a4090a0b9bfe1282d01f7605ceb9
* | | Merge "[iRMC] Handle IPMI incompatibility in iRMC S6 2.x"Zuul2023-01-189-89/+793
|\ \ \
| * | | [iRMC] Handle IPMI incompatibility in iRMC S6 2.xVanou Ishii2023-01-179-89/+793
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since iRMC S6 2.00, iRMC firmware disables IPMI over LAN with default iRMC firmware configuration. To deal with this firmware incompatibility, this commit modifies driver's methods which use IPMI to first try IPMI and, if IPMI fails, try to use Redfish API. Story: 2010396 Task: 46746 Change-Id: I1730279d2225f1248ecf7fe403a5e503b6c3ff87
* | | | Merge "[iRMC] identify BMC firmware version"Zuul2023-01-1810-0/+591
|\ \ \ \ | |/ / /
| * | | [iRMC] identify BMC firmware versionVanou Ishii2023-01-1610-0/+591
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since iRMC S6 2.00, iRMC firmware doesn't support HTTP connection to REST API. To deal with this firmware incompatibility, this commit adds verify step to check connection to REST API and adds node vendor passthru to fetch&cache version of iRMC firmware. Story: 2010396 Task: 46745 Change-Id: Ib04b66b0c7b1ef1c4175841689c16a7fbc0b1e54
* | | | Merge "Fix selinux context of published image hardlink"Zuul2023-01-173-12/+52
|\ \ \ \ | |_|/ / |/| | |
| * | | Fix selinux context of published image hardlinkRiccardo Pittau2023-01-113-12/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the published image is a hardlink, the source selinux context is preserved. This could cause access denied when retrieving the image using its URL. Change-Id: I550dac9d055ec30ec11530f18a675cf9e16063b5
* | | | Merge "API for node inventory"Zuul2023-01-1616-4/+305
|\ \ \ \
| * | | | API for node inventoryJakub Jelinek2023-01-1216-4/+305
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add api to access node inventory Story: 2010275 Task: 46204 Change-Id: If50f665da5fbb16f7646f3d6195a6e14e7325b0a
* | | | | Merge "[DOC] Add entry regarding cleaning+raid"Zuul2023-01-161-0/+52
|\ \ \ \ \
| * | | | | [DOC] Add entry regarding cleaning+raidJulia Kreger2023-01-041-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding an entry to the troubleshooting documentation to cover the very complex topic of cleaning + RAID + disk protocols + device behavior/capabilities. Change-Id: I8d322dd901634c59950a6a458b265111282d0494
* | | | | | Merge "setup.py: Remove 'py_modules'"Zuul2023-01-111-3/+2
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | |
| * | | | | setup.py: Remove 'py_modules'Stephen Finucane2023-01-041-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was merely obscuring a bug in pbr. setuptools doesn't do the auto-discovery when pbr is in use. Remove it. Change-Id: I40500ed7bf9d9fb30381c7539548544152cea85e Signed-off-by: Stephen Finucane <sfinucan@redhat.com> Depends-on: https://review.opendev.org/c/openstack/pbr/+/869082
* | | | | | Merge "CI: Reset VM footprint to 2.6GB"Zuul2023-01-111-1/+1
|\ \ \ \ \ \
| * | | | | | CI: Reset VM footprint to 2.6GBJulia Kreger2023-01-031-1/+1
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit partially reverts change set I0bfef09a5312a17be54ce5c09805f06b7c349026 where the amount of memory for test VMs was increased to 4GB. This was because excess junk getting stuck in the staged ramdisk images used by CI. Change-Id: Ia0c74cbeecdb9febf9f7a4e76db84e0f378a97fc
* | | | | | Merge "Use association_proxy for ports node_uuid"Zuul2023-01-109-44/+33
|\ \ \ \ \ \
| * | | | | | Use association_proxy for ports node_uuidHarald Jensås2022-12-149-44/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds 'node_uuid' to ironic.objects.port.Port and adds a relationship using association_proxy in models.Port. Using the association_proxy removes the need to do the node lookup to populate node uuid for ports in the api controller. NOTE: On port create a read is added to read the port from the database, this ensures node_uuid is loaded and solves the DetachedInstanceError which is otherwise raised. Bumps Port object version to 1.11 With patch: 1. Returned 20000 ports in python 2.7768702507019043 seconds from the DB. 2. Took 0.433107852935791 seconds to iterate through 20000 port objects. Ports table is roughly 12800000 bytes of JSON. 3. Took 5.662816762924194 seconds to return all 20000 ports via ports API call pattern. Without patch: 1. Returned 20000 ports in python 1.0273635387420654 seconds from the DB. 2. Took 0.4772777557373047 seconds to iterate through 20000 port objects. Ports table is roughly 12800000 bytes of JSON. 3. Took 147.8800814151764 seconds to return all 20000 ports via ports API call pattern. Conclusion: Test #1 plain dbapi.get_port_list() test is ~3 times slower, but Test #3 doing the API call pattern test is ~2500% better. Story: 2007789 Task: 40035 Change-Id: Iff204b3056f3058f795f05dc1d240f494d60672a
* | | | | | | Merge "Docs: Add considerations to anaconda docs"Zuul2023-01-091-6/+34
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | |
| * | | | | | Docs: Add considerations to anaconda docsJulia Kreger2023-01-061-6/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I17f707f81a2aed75a9c47e2cfc0896b0efeeb36c
* | | | | | | Merge "Fix unbound variable in devstack plugin"Zuul2023-01-071-1/+1
|\ \ \ \ \ \ \
| * | | | | | | Fix unbound variable in devstack pluginRiccardo Pittau2023-01-021-1/+1
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RC_DIR does not existed (and it never existed, it was SRC_DIR) Change that to TOP_DIR which is what we use commonly in other sections. Change-Id: I4a400fd434a20938cd38c0bb876da21fec7473a1
* | | | | | | Merge "Use tinycore 13 for base ramdisk image"Zuul2023-01-071-1/+1
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | |