summaryrefslogtreecommitdiff
path: root/ironic/drivers/modules/storage
Commit message (Collapse)AuthorAgeFilesLines
* Replace retrying with tenacityBoden R2021-02-151-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are replacing all usages of the 'retrying' package with 'tenacity' as the author of retrying is not actively maintaining the project. Unit tests will be added/removed where applicable. Tenacity [1] is a fork of retrying, but has improved the interface and extensibility. Our end goal here is removing the retrying package from our requirements. Tenacity provides the same functionality as retrying, but has the following major differences to account for: - Tenacity uses seconds rather than ms as retrying did. - Tenacity has different kwargs for the decorator and Retrying class itself. - Tenacity has a different approach for retrying args by using classes for its stop/wait/retry kwargs. - By default tenacity raises a RetryError if a retried callable times out; retrying raises the last exception from the callable. Tenacity provides backwards compatibility here by offering the 'reraise' kwarg. - For retries that check a result, tenacity will raise if the retried function raises, whereas retrying retried on all exceptions. [1] https://github.com/jd/tenacity Co-Authored-By: Dmitry Tantsur <dtantsur@protonmail.com> Co-Authored-By: Riccardo Pittau <elfosardo@gmail.com> Story: #1635390 Task: #10528 Change-Id: Ie5eb3ddc196505e8f58ed14de9952284598586fb
* Fix the remaining hacking issuesDmitry Tantsur2020-03-311-6/+6
| | | | | | | | | | Fixes W504 and E117, resulting in some indentation changes. Also fixes code that exceeds the complexity requirement, that is bumped to 20 (mostly to avoid refactoring the agent heartbeat call, resulting in conflicts for the deploy steps work). Change-Id: I8e49f2c039b0ddfca9138f8e148708b7e8b5df7e
* Remove the [pxe]ipxe_enabled configuration optionKaifeng Wang2020-02-101-2/+4
| | | | | | | | | | | | | The ipxe_enabled configuration option was deprecated for quite a while, this patch removes it. However the code impact by simply removing the configuration option is quite large, so the strategy here is to register the option dynamically but sticks to False, which essentially disabled the ipxe support in the pxe interface. Story: 2007003 Task: 37779 Change-Id: I499e627f780b577e351fd39be5fa93a34d384e64
* Fix ipxe interface to perform ipxe boot without ipxe_enabled enabledKaifeng Wang2020-02-031-7/+2
| | | | | | | | | | When ipxe hardware interface is in use, the node should always be boot with iPXE disregards the deprecated configuration option [pxe]ipxe_enabled. Story: 2007003 Task: 37779 Change-Id: Ia658ddc966e13a7ce973eccd9c42e40a3da406f4
* ipxe boot interfaceJulia Kreger2018-10-162-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A long time ago, in a galaxy not so far away, the ironic comunity reached consensus that we should refactor the PXE interface such that we had separate PXE and iPXE interfaces. In looking at what it would take for something like a standalone deployment to have multiarchitecture support in their environment, it seems even more urgent and necessary that we begin to make this delineation. This is because while some ARM iPXE support exists, the binary is not a commonly shipped artifiact, so operators are largely only left with grubaa64.efi as their bootloader. A similar issue exists with ppc64le deployments where they must disable iPXE, as the ppc64le hardware expects reading a syslinux compatible file, similarlly no iPXE loader exists. To start this effort, we need to promote iPXE functionality to a dedicated interface, and remove the necessity of setting the [pxe]ipxe_enabled setting. Next steps, beyond this patch, would be to begin to tease out the common private method code in the underlying PXE interface that both the iPXE and PXE interfaces use, and appropriately relocate and refactor that code as necesary. During this process, we can create an [ipxe] configuration section, and migrate settings. Finally, once the deprecation cycle is complete, we will be able to remove the ipxe logic with-in the PXE interface. Change-Id: I392616417c48986e84e50a3ddc7567344bfe3571 Story: #1628069 Task: #10516
* Improve pep8 checking along with hackingDao Cong Tien2018-06-281-0/+1
| | | | | | | | | | This change will help to check the function _() is used but not imported. And the gates will check this missing in the next time. Co-authored-By: Nguyen Van Trung <trungnv@vn.fujitsu.com> Change-Id: Icb40b3af9922e551f06cfd18de26dfcce9960d5a
* Add an external storage interfaceJulia Kreger2018-06-191-0/+67
| | | | | | | | | | | | | | This would primarily be very useful for users of an external SAN image based management solution[0] where the interaction with the storage system has been abstracted from the user but iSCSI targets are still used. [0]: https://massopen.cloud/blog/bare-metal-imaging/ Change-Id: I2d45b8a7023d053aac24e106bb027b9d0408cf3a Story: #1735478 Task: #12562
* Fix W504 errorsJulia Kreger2018-05-091-6/+7
| | | | | | | | Also a few related errors based on some earlier investigation may have been pulled in along the lines of E305. Story: #2001985 Change-Id: Ifb2d3b481202fbd8cbb472e02de0f14f4d0809fd
* Add I202 to flake ignore listVladyslav Drok2017-10-251-2/+1
| | | | | | | | | | | | Pep8 job currently fails complaining about I202 in a bunch of modules. This change fixes the genuine errors in the module import order, and adds I202 to the skip list so that we don't have to add noqa comments everywhere we can not satisfy the check. After we split out the tempest plugin, we'll remove I202 from the ignore list and add noqa comments in the places where it will still be needed. Change-Id: Ia170a41d35dea8c9eda2b36c907dbc518169a824
* Merge "Logic for skipping deployment with BFV"Jenkins2017-06-291-5/+10
|\
| * Logic for skipping deployment with BFVJulia Kreger2017-06-221-5/+10
| | | | | | | | | | | | | | | | | | | | | | In order to boot from volume, the deploy driver needs to know when not to actually deploy. This change wires in the checks to skip deployment activities if it appears that we have a valid root volume target defined. Co-Authored-By: Hironori Shiina <shiina.hironori@jp.fujitsu.com> Partial-Bug: #1559691 Change-Id: I62e622a2b053f685c2da42ca5106bdb9bdd22dc6
* | Move _abort_attach_volumes functionality to detach_volumesMike Turek2017-06-201-46/+43
|/ | | | | | | | | | | | | | | This is a followup to the Cinder driver patch [0]. There were several comments during review that asked why we weren't using detach_volumes instead of _abort_attach_volumes. This patch is a proposal to remove the method and merge it's functionality with the detach_volumes method. This patch also addresses some nits found in the cinder driver. [0] b23a176a737f217e9573d6f10c3059d22813b159 Change-Id: Ic5584bc1380a65fdd9a74c174bee63bae1c6a4b3 Parital-bug: #1559691
* Add Cinder storage driverMichael Turek2017-05-221-0/+430
| | | | | | | | | | | A cinder interface driver that can be called in order to signal cinder to attach and detach volumes. Authored-By: Julia Kreger <juliaashleykreger@gmail.com> Co-Authored-By: Joanna Taryma <joanna.taryma@intel.com> Co-Authored-By: Mike Turek <mjturek@linux.vnet.ibm.com> Change-Id: I3d6bb126ef34b30f316ed5a10fd13a3106d1400b Partial-Bug: #1559691
* Add storage_interface to base driver classJulia Kreger2016-12-212-0/+32
In order to properly support booting and maintenance of systems that boot from a remote storage device, we need an interface to associate the driver with. This commit adds a basic storage_interface and noop and fake interfaces along with the appropriate handling for configuration in the event that the driver list is blank, or is missing the noop driver. Co-Authored-By: Stephane Miller <stephane@alum.mit.edu> Change-Id: Ib21eda88f207f18675c8580cd7fd37eab6fd70bf Partial-Bug: #1559691