summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Merge "Convert root controller to plain controller"Zuul2020-07-311-9/+21
|\ \ \ \ \ | | |/ / / | |/| | |
| * | | | Convert root controller to plain controllerSteve Baker2020-07-301-9/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RestController._route method[1] contains a lot of logic which exists to support implementing CRUD APIs, none of which is required to server / and /v1. This change converts the RestController based root controller with a simple object based controller. This results in a shorter code path for every API request. The path / is handled by the index method, with the *args length check returning a 404 to be consistent with the previous behaviour of returning a 404 for a request like //v1 The _route method is replaced with a _lookup[2] method to handle paths which are missing the v1 prefix (and to curate the trailing slash from the path, which was been done by the RestController). [1] https://github.com/pecan/pecan/blob/master/pecan/rest.py#L103 Change-Id: Ia962f9bf53af12fb308e3d66eff114b302638714 Story: 1651346 Task: 10551
* | | | | Merge "Enforce autospec in test_iscsi_deploy"Zuul2020-07-302-17/+28
|\ \ \ \ \
| * | | | | Enforce autospec in test_iscsi_deployRiccardo Pittau2020-07-292-17/+28
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | And remove corresponding filter from tox.ini Change-Id: I726dce65b9306b5925bc0b0d8a1187c1c473125d
* | | | | Merge "Fix idrac-wsman RAID apply_configuration"Zuul2020-07-303-1/+22
|\ \ \ \ \
| * | | | | Fix idrac-wsman RAID apply_configurationAija Jauntēva2020-07-303-1/+22
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deploy step `apply_configuration` was failing with TypeError: super(type, obj): obj must be an instance or subtype of type. Change-Id: I4de034c38585275543ab603a3ed45de1adf1d15b Story: 2007963 Task: 40456
* | | | | Merge "Add cirros-specific FAQ item for troubleshooting"Zuul2020-07-301-0/+36
|\ \ \ \ \
| * | | | | Add cirros-specific FAQ item for troubleshootingJulia Kreger2020-07-301-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I7f0194356855c25371e4dd91d4e36f1181e6ff83
* | | | | | Merge "Reset power state upon adoption failure"Zuul2020-07-303-1/+17
|\ \ \ \ \ \ | | |_|_|/ / | |/| | | |
| * | | | | Reset power state upon adoption failureJulia Kreger2020-07-273-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When adoption fails, we should back out the power state so we don't accidently save a state that shouldn't be preserved due to the failure. Change-Id: I4647d0141fc639d49ccb0ef195577f18cd35bd30 Story: 2007901 Task: 40447
* | | | | | Merge "AgentRAID: Account for empty results in post-configuration checks"Zuul2020-07-302-5/+16
|\ \ \ \ \ \
| * | | | | | AgentRAID: Account for empty results in post-configuration checksDmitry Tantsur2020-07-292-5/+16
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we only raise if no results are returned at all. Due to a bug apply_configuration is currently returning None, resulting in a TypeError later on. This changes help catching such situations earlier. Also provides a clearer error message that mentions RAID rather then just generic "deploying" or "cleaning". Change-Id: I5e047b6b0a00043594a93e87e09ee60b9342dbfa
* | | | | | Merge "Trivial: fix a minor issue in standalone docs and improve formatting"Zuul2020-07-301-9/+15
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | |
| * | | | | Trivial: fix a minor issue in standalone docs and improve formattingDmitry Tantsur2020-07-291-9/+15
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | Follow-up to commit 74e9e1d82a09b5255d2dd326387ac624ac1ba447 Change-Id: I60f7ee85ee7ead430dfe216bfea5392355098bd2
* | | | | Merge "Fix invalid assertTrue which should be assertEqual"Zuul2020-07-291-3/+3
|\ \ \ \ \
| * | | | | Fix invalid assertTrue which should be assertEqualzhu.fanglei2020-07-291-3/+3
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | self.assertTrue(check_share_fs_mounted_mock.call_count, 2) should be self.assertEqual(check_share_fs_mounted_mock.call_count, 2). Change-Id: I9c41f69e1b51bb517405d189f20d19ba42f1da17
* | | | | Merge "Remove locks before RPC bus is started"Zuul2020-07-296-6/+54
|\ \ \ \ \ | |_|/ / / |/| | | |
| * | | | Remove locks before RPC bus is startedJulia Kreger2020-07-286-6/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A partner performing some testing recognized a case where if a request is sent to the Ironic Conductor while it is in the process of starting, and the request makes it into be processed, yet latter the operation fails with errors such as NodeNotLocked exception. Notably they were able to reproduce this by requesting the attachment or detachment of a VIF at the same time as restarting the conductor. In part, this condition is due to to the conductor being restarted where the conductors table includes the node being restarted and the webserver has not possibly had a chance to observe that the conductor is in the process of restarting as the hash ring is still valid. In short - Incoming RPC requests can come in during the initialization window and as such we should not remove locks while the conductor could possibly already be receiving work. As such, we've added a ``prepare_host`` method which initializes the conductor database connection and removes the stale locks. Under normal operating conditions, the database client is reused. rhbz# 1847305 Change-Id: I8e759168f1dc81cdcf430f3e33be990731595ec3
* | | | | Merge "Mark IPv6 job as non-voting to unblock the gate"Zuul2020-07-281-2/+2
|\ \ \ \ \
| * | | | | Mark IPv6 job as non-voting to unblock the gateJulia Kreger2020-07-281-2/+2
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default dhcp client in tinycore does not automatically trigger IPv6 address acquisition. This is a problem when the random spread of nodes and devstack cause tinycore to get pulled in for the v6 job. Change-Id: I635a69dfd7450a218474ccb7cecf1c9e29c0a43c
* | | | | Merge "Deprecate http_basic_username and http_basic_password in [json_rpc]"Zuul2020-07-288-33/+66
|\ \ \ \ \
| * | | | | Deprecate http_basic_username and http_basic_password in [json_rpc]Dmitry Tantsur2020-07-248-33/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's very confusing that we use username/password everywhere, except for [json_rpc]. Just use the standard options. Also the version if keystoneauth is bumpted to one that supports http_basic. Change-Id: Icc834c3f8febd45c2548314ee00b85a7f9cebd2c
* | | | | | Make the final deploy step validation actually fail deployDmitry Tantsur2020-07-273-3/+43
| |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since continue_node_deploy is an async RPC call, currently it ends up just logging InvalidParameterValue, making deployment hang. Related Story: #2006963 Change-Id: I2231de30778a2ab3adffa8a5b68ff7216717534c
* | | | | Merge "Extend base build timeouts"Zuul2020-07-271-5/+6
|\ \ \ \ \
| * | | | | Extend base build timeoutsJulia Kreger2020-07-211-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our ramdisks have swelled, and are taking anywhere from 500-700 seconds to even reach the point where IPA is starting up. This means, that a 900 second build timeout is cutting it close and intermittent performance degredation in CI means that a job may fail simply because it is colliding with the timeout. One example I deconstruted today where a 900 second timout was in effect: * 08:21:41 Tempest job startes * 08:21:46 Nova instance requested * Compute service requests ironic to do the thing. * Ironic downloads IPA and stages it - ~20-30 seconds * VM boots and loads ipxe ~30 seconds. * 08:23:22 - ipxe downloads kernel/ramdisk (time should be completion unless apache has changed logging behavior for requests.) * 08:26:28 - Kernel at 120 second marker and done decompressing the ramdisk. * ~08:34:30 - Kernel itself hit the six hundred second runtime marker and hasn't even started IPA. * 08:35:02 - Ironic declars the deploy failed due to wait timeout. ([conductor]deploy_callback_timeout hit at 700 seconds.) * 08:35:32 - Nova fails the build saying it can't be scheduled. (Note, I started adding times to figure out the window to myself, so they are incomplete above.) The time we can account for in the job is about 14 minutes or 840 seconds. As such, our existing defaults are just not enough to handle the ramdisk size AND variance in cloud performance. Change-Id: I4f9db300e792980059c401fce4c37a68c438d7c0
* | | | | | Enforce autospec in some api testsRiccardo Pittau2020-07-247-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And remove corresping filters. Change-Id: Idb7fe3fc8b220f223d137eaced47a9ded13eba13
* | | | | | Merge "Add subsections to the standalone documentation"Zuul2020-07-241-29/+45
|\ \ \ \ \ \
| * | | | | | Add subsections to the standalone documentationDmitry Tantsur2020-07-241-29/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I51da88d32e5e42c0c4e0e489c888d38b31517b59
* | | | | | | Merge "Force RAX hosts to run tinyipa"Zuul2020-07-241-0/+8
|\ \ \ \ \ \ \
| * | | | | | | Force RAX hosts to run tinyipaJulia Kreger2020-07-231-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CPU overhead of nested virtualization on rax hosts simply is too much for Ironic's CI to justify using full size IPA images. The failure rate is simply too high. As a result, lets use TinyIPA images when we are not building a ramdisk to reduce that failure rate. Change-Id: Ifa81397519833201b737cff89f61178c8835e3ca
* | | | | | | | Merge "Enforce autospec in test_notification_utils"Zuul2020-07-242-8/+12
|\ \ \ \ \ \ \ \
| * | | | | | | | Enforce autospec in test_notification_utilsRiccardo Pittau2020-07-172-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And remove corresponding filter from tox.ini Change-Id: I4724a5efd522c313d2f6dbb14dcdf19700f8cda7
* | | | | | | | | Merge "Enforce autospec in test_deployments"Zuul2020-07-242-20/+27
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / /
| * | | | | | | | Enforce autospec in test_deploymentsRiccardo Pittau2020-07-172-20/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And remove corresponding filter from tox.ini Change-Id: I5eae1cbed3abbb6316f67619c499f040f43d11b1
* | | | | | | | | Merge "Adds raid validation for in-band AgentRAID deploy step"Zuul2020-07-243-13/+97
|\ \ \ \ \ \ \ \ \
| * | | | | | | | | Adds raid validation for in-band AgentRAID deploy stepShivanand Tendulker2020-07-233-13/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for validation of raid configuration of in-band AgentRAID deploy step 'apply_configuration' and adds a post deploy hook to update root device hint. Change-Id: I52c1ad3e10d9fab3c2366d40af39667a299eb774
* | | | | | | | | | Merge "Allow node lessee to see node's ports"Zuul2020-07-247-29/+197
|\ \ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / / |/| | | | | | | | |
| * | | | | | | | | Allow node lessee to see node's portsTzu-Mainn Chen2020-07-237-29/+197
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the port node's filter to allow both owner and lessee to see a node's ports. This filter is only used when listing ports. Change-Id: I568e8d23375239d9c044df95b4bc24d5174c145b
* | | | | | | | | | Merge "iPXE ISO Ramdisk booting"Zuul2020-07-239-6/+285
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | iPXE ISO Ramdisk bootingJulia Kreger2020-07-169-6/+285
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds an iPXE interface to boot via a virtual media ISO as if it was virtual media. Story: 2007644 Task: 39823 Change-Id: Ie7971692758f3a5421f0826fdaf3d2366f652236
* | | | | | | | | | | Merge "Update how to release section"Zuul2020-07-231-8/+7
|\ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | Update how to release sectionRiccardo Pittau2020-07-231-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on latest changes [1] in the releases project that changed the behavior of list_unreleased_changes. [1] https://opendev.org/openstack/releases/commit/4912f7d5d0a60b09ea54a5e6835c00847455f2dd Change-Id: If5fd848bf3fddeb1ae66dc9aafa882588b83f41a
* | | | | | | | | | | | Merge "Add an option to choose the hash ring algorithm"Zuul2020-07-235-3/+21
|\ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | Add an option to choose the hash ring algorithmDmitry Tantsur2020-07-225-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MD5 is not available in FIPS mode, we need a way to use something else. Change-Id: Ie6e09ac66028cbe18717a7ea7a4c23730e3cb642
* | | | | | | | | | | | | Merge "Extend PXE boot retry timeout for RAX hosts"Zuul2020-07-231-0/+7
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|/ / / / / / | |/| | | | | | | | | | |
| * | | | | | | | | | | | Extend PXE boot retry timeout for RAX hostsJulia Kreger2020-07-221-0/+7
| | |_|_|_|_|_|_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When extending the timeouts for jobs to execute with-in, we've observed a case where RAX hosts are cutting off at the time limit of 900 seconds (as being asserted by another change set). This is both good and bad. We know the timeout feature works, but the agent was not quite online yet. As such, we should also auto-extend base retry timeouts so there is hope for the job to complete. Change-Id: I8efa3a52188de558a7964d1daafd2225e102e251
* | | | | | | | | | | | Merge "Convert root path / to use plain JSON"Zuul2020-07-235-75/+132
|\ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | Convert root path / to use plain JSONSteve Baker2020-07-205-75/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change replaces the Version and Root types with simple functions that return data as a dict. A new @expose decorator is defined in ironic.api.method which currently only needs to format exceptions. In the future it may also do input validation. Change-Id: I4e3b84fb652a74463b44c3ae6c75cdac4d2ab6db Story: 1651346 Task: 10551
* | | | | | | | | | | | | Merge "Rename Response to PassthruResponse"Zuul2020-07-235-41/+22
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / | | | | / / / / / / / / / | |_|_|/ / / / / / / / / |/| | | | | | | | | | |
| * | | | | | | | | | | Rename Response to PassthruResponseSteve Baker2020-07-205-41/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Reponse type is only used to wrap passthru responses, so this change renames it to PassthruResponse and changes how it is used to make it more clear what is happening. The 'return_type' and 'error' fields are removed as they are not used by passthru. Now that no Unset usage is required, future removal of core WSME logic won't affect PassthruResponse. If the passthru response has 'attach' set then the return value will be an io.BytesIO object which is handled by the expose decorator. This is preferable to having utils.vendor_passthru have the side-effect of setting the pecan Response.app_iter - now all the response handling is done in the expose decorator. Change-Id: Ibcf7860c4a67f0ec8747e5710d8c1ef7281573d1