c2c72eef975eda9afbb1fe2ee06740a5d577c187
2690 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
Zuul
|
c2c72eef97 | Merge "Provide usable __repr__ for serializable objects" | ||
|
Zuul
|
f693a10003 | Merge "doc: How hardware managers ignore certain devices" | ||
|
Afonne-CID
|
b4ae46d24a |
doc: How hardware managers ignore certain devices
Overriding or implementing `filter_device` activates filtering. Otherwise, GenericHardwareManager returns the device unchanged, effectively skipping filtering. Related-Bug: #2117234 Change-Id: Ifdda007e0c5001ab7df38c2c510e3f40c110d03c Signed-off-by: Afonne-CID <afonnepaulc@gmail.com> |
||
|
Dmitry Tantsur
|
0ad2685ce4 |
Fix wrong result of filter_device in the base interface
Returning None means "exclude any device". It still works if the only hardware manager is GenericHardwareManager, but enabling any more without overriding filter_device causes all devices to get filtered. Change-Id: I25eb028baa1b9182caee07a0b935e9fa107999a8 Closes-Bug: #2117234 Signed-off-by: Dmitry Tantsur <dtantsur@protonmail.com> |
||
|
Zuul
|
780cf3615d | Merge "Fix missing [mdns] options" | ||
|
Zuul
|
c3ef9a563d | Merge "Fix software RAID creation on different physical devices" | ||
|
Zuul
|
a7d8afde40 | Merge "Trivial: avoid root logger in modules" | ||
|
Zuul
|
4b0a3c162d | Merge "Log efibootmgr output as part of the system logs" | ||
|
Zuul
|
943cb8afff | Merge "Graceful way for hardware managers to ignore certain devices" | ||
|
Zuul
|
d86923e7ff | Merge "Split hardware manager initialize out of evaluate_hardware_support" | ||
|
kubajj
|
46af01c82f |
Log efibootmgr output as part of the system logs
Create a file efibootmgr with the verbose output of the efibootmgr command when collecting the system logs. This can be used for debugging of boot order. Change-Id: Ic957024d19bb01a45a3014dc2a5e4492d087e893 Signed-off-by: Jakub Jelinek <vilouskubajj@gmail.com> |
||
|
Julia Kreger
|
f9ae319fdd |
docs: remove tinyipa references
We have started down the path of eradicating tinyipa usage and testing because it was bifrucating our contirbutor resources and focus now that we have also been able to fix some of the CI jobs to be a bit more scalable. This does mean we're doing more with dib based images and they are larger, but we're willing ot pay that tax as a project for consistency and CI job stability. Change-Id: I8f96d106a85f6ab4493785e88955196da08af8e9 Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com> |
||
|
Dmitry Tantsur
|
1840e987d5 |
Trivial: avoid root logger in modules
Change-Id: I1eb8c9637c38496b5d4dd6493be43f414f35680c Signed-off-by: Dmitry Tantsur <dtantsur@protonmail.com> |
||
|
Takashi Kajinami
|
cf621eb6cd |
Fix missing [mdns] options
Make sure these options are added to the sample config file generated by oslo-config-generator. Change-Id: I09dc6ace0725140bf3542d053e4c941ce190c0df Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com> |
||
|
Dmitry Tantsur
|
9db3cd1e4d |
Graceful way for hardware managers to ignore certain devices
My use case for this feature is to exclude network devices that use the cdc_ether driver. These USB network interfaces often cause all sorts of issues. For example, some models have the same hardcoded MAC address, which breaks inspection. Currently, to exclude a certain device, a hardware manager must override the entire listing function (in my case, list_interfaces). Not only is it tedious, but it also requires constantly updating the hardware managers to match the implementation in GenericHardware. Realistically, it will cause hardware manager authors to inherit GenericHardware, which is the opposite of how hardware managers should be written. Note that the node-level skip list only affects root device selection and cleaning for block devices. This feature affects everything that uses list_block_devices and is applied before the node-level skip list. This change adds a new hardware manager call filter_device. For each network, block or USB device, it allows a hardware manager to do either of four things: 1. Delegate the decision to a lower level hardware manager by raising IncompatibleHardwareMethodError 2. Remove the device by returning None 3. Change the device by returning a modified instance 4. Return the device unchanged to keep it in the listing. Note that I'm removing debug logging when IncompatibleHardwareMethodError is raised. Not only the log message is incorrect (the error does not necessarily mean that the method is not implemented at all), it already noticeable space in the logs, and with this change will become very noisy. Change-Id: I5437343af6c6157882bcf0600dd89bd20478c948 Signed-off-by: Dmitry Tantsur <dtantsur@protonmail.com> |
||
|
Dmitry Tantsur
|
9426df9ab3 |
Split hardware manager initialize out of evaluate_hardware_support
The current code in GenericHardware.evaluate_hardware_support ends up using hardware manager calls, which then use partly initialized hardware manager list and can even cause a recursion. This change introduces a new optional call initialize() which is guaranteed to run: 1) After all hardware managers have been evaluated 2) After the hardware manager cache is populated 3) In the order of the support level of hardware managers Change-Id: I068d3d73483c161062aa3b48f3154a2d99941382 Signed-off-by: Dmitry Tantsur <dtantsur@protonmail.com> |
||
|
Dmitry Tantsur
|
ddeed6fa9e |
Provide usable __repr__ for serializable objects
These objects are frequently logged or compared in unit tests. It's very helpful to be able to inspect their content. Change-Id: Ib725dcd5f54f4492205f95974d887b8b42c74039 |
||
|
Dmitry Tantsur
|
521811cbcc |
Fix software RAID creation on different physical devices
When creating multiple software RAID logical disks that use different sets of physical devices, the partition indices were incorrectly shared across all devices. This caused the second RAID array creation to fail because it tried to use partition indices that didn't exist on those specific devices. This change fixes the issue by tracking partition indices separately for each physical device, ensuring that each device's partitions are numbered correctly starting from their first available index. Closes-Bug: #2115211 Change-Id: I440db4654f3d1d54274d1eee8c4b21c2b0a18d22 Signed-off-by: Mohammed Naser <mnaser@vexxhost.com> |
||
|
Julia Kreger
|
883e3cf057 |
Remove unused tinyipa CI job
The use of job ipa-tempest-bios-ipmi-direct-tinyipa-src was already removed in https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/950235 Change-Id: Ib67d8d502fbc0f77282ea0e01a68334ec464acb3 Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>11.0.0 |
||
|
Julia Kreger
|
2e35dfc7bc |
Remove TinyIPA jobs
Depends-On: https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/950235 Change-Id: I44fd4cd6e9cc52f884d14a5c8d0478d02d5b57ee |
||
|
Zuul
|
b64a41372d | Merge "trivial: Fix missing extra space in logging" | ||
|
Zuul
|
b51cc75ff3 | Merge "netutils: Use ethtool ioctl to get permanent mac address" | ||
|
Nicolas Belouin
|
48422a532f |
netutils: Use ethtool ioctl to get permanent mac address
Fetching the permanent MAC address of the interface instead of the default one allows to get the right one in case it got changed during setup (likely with a bonding setup). In order to fetch the permanent MAC address of a given interface, one can either use Netlink (either rtnetlink or ethtool), or use ethtool ioctl. The use of ioctl feels simpler and requires no additional dependency. The implementation falls back to older behavior should an error occur. Closes-Bug: #2103450 Change-Id: I54151990e396ddcf775128ca24d3db08e45c256d Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com> |
||
|
cid
|
c03021fee2 |
Remove eventlet from Ironic Python Agent
This change removes several usages of eventlet from IPA: - Upgrades all requirements on oslo library versions to new ones that support non-eventlet use. - Removes use of the eventlet wsgi server (via oslo_service.wsgi) and replaces it with the cheroot wsgi server. - Removes explicit patching of python modules with eventlet Note that due to some oslo libraries still using ``eventlet`` to detect and workaround it's use. This means that it is still installed in environments alongside IPA, even if it's not used or patched into any modules. Depends-On: https://review.opendev.org/c/openstack/requirements/+/947727 Change-Id: I9accab2d5e9529a88ef5d3db85e76901f14114eb |
||
|
Zuul
|
a15680f51e | Merge "Base standalone job on redfish standalone" | ||
|
Zuul
|
b20ed83d78 | Merge "Remove unnecessary +x mode" | ||
|
Takashi Kajinami
|
9b03ca7d52 |
Remove unnecessary +x mode
These files are not actually executable. Change-Id: Id4208a91c005b8199d62320882c4f14dcd7f7761 |
||
|
Julia Kreger
|
f359c81c28 |
trivial: Fix missing extra space in logging
Change-Id: Id85563015b3ea9e2802baa7b8ab1ca1d858568d5 |
||
|
Zuul
|
53349cc7cf | Merge "Remove agent_token_required upgrade knob" | ||
|
Zuul
|
88b6e914ad | Merge "Run UT of metricis_lib" | ||
|
Jay Faulkner
|
a709e6fbb5 |
Base standalone job on redfish standalone
The non-redfish standalone job is pending removal from Ironic. Change-Id: I2b6d542ce7af3eeeff23f06e43e82de5d7b09701 |
||
|
satoshi-sh
|
7e6bc5cb85 |
Implement manual cleaning for ContainerHardwareManager
- Implemented manual cleaning - Refactored the code Change-Id: I301aaf9dfd6aff90f505148b65e75033f5043553 |
||
|
satoshi-sh
|
c3e9266f92 |
Ironic Config Intergration for IPA
Update container-based cleaning hardware manager to use ironic conductor config. Note: - Moved conf variables from __init__ and evaluate_hardware_support as the config overwritten after those process - Utilized getattr instead of making methods beforehand. The methods created don't stick for a new instance. Partial-Bug: #2100556 Change-Id: I53d5a4f112fbed455d5574840611ef6ea2db3eae |
||
|
satoshi-sh
|
7efe3dfc04 |
Fix test_timeout on Python3.13
- Python 3.13 uses time.time_ns for logging https://github.com/python/cpython/blob/main/Lib/logging/__init__.py#L303 Change-Id: I3de44cc0fda662f3d5b1c6ea8add973cf2ed3bd9 |
||
|
luocanhui
|
228033e9b6 |
Run UT of metricis_lib
Change-Id: I54dc23d8e8cec12a4685a82c4807ddd6a2267533 |
||
|
Zuul
|
c4f62beedb | Merge "Remove eventlet greendns patching" | ||
|
Zuul
|
60deb16ccc | Merge "Add ContainerHardwareManager" | ||
|
Jay Faulkner
|
5d3192e93a |
Remove eventlet greendns patching
Eventlet patches two things in socket, effectively: - create_connection - various greendns things By adding this environment variable, we're going to disable a large portion of the greened module code in IPA, which will be a boost to our migration off. Change-Id: I1f94238c8d83f9e7cb0f7e096172ffb7c20c862b |
||
|
satoshi-sh
|
a3a2b83594 |
Add ContainerHardwareManager
Implement container-based cleaning process Partial-Bug: #2100556 Change-Id: I39b92462d1454df888fc413e0aac439b9df199f7 |
||
|
Zuul
|
3be946aedb | Merge "Missing 'interface' in Clean Step" | ||
|
Satoshi-Sh
|
aa65b8c127 |
Missing 'interface' in Clean Step
Add 'interface': 'deploy' to the clean step configuration to avoid the error Change-Id: Ie2297fc3375f6e0a389fa19789506a72fcf967e7 |
||
| ac85195b7a |
Update master for stable/2025.1
Add file to the reno documentation build to show release notes for stable/2025.1. Use pbr instruction to increment the minor version number automatically so that master versions are higher than the versions on stable/2025.1. Sem-Ver: feature Change-Id: I259249774c39e95b214e77b2ae632c7278e78754 |
|||
|
cid
|
91f520356d |
Doc: Fix incorrect function in example code
The referenced bug looks mostly fixed. This patch is basically closing it. Closes-Bug: #2039072 Change-Id: I22b80f2c995c365e9f19c3a06c80656cb6ce892210.2.0 |
||
|
Zuul
|
1e73cba5cb | Merge "Remove pre-victoria cycle agent token transition upgrade support" | ||
|
Zuul
|
03afbfe4bc | Merge "Fix the way qemu-img is called with prlimits" | ||
|
Zuul
|
20e75c2480 | Merge "Missing __init__.py file" | ||
|
Zuul
|
0067239074 | Merge "Lockout agent command results if a token is received" | ||
|
Thomas Goirand
|
14009b994f |
Missing __init__.py file
Change-Id: I916fe8187fb9d8513852b620df133309fbc92af1 |
||
|
Dmitry Tantsur
|
fd8032b360 |
Fix the way qemu-img is called with prlimits
Using prlimits is incompatible with passing arguments as a list: oslo.concurrency ends up executing something like: /opt/ironic-python-agent/bin/python3 -m oslo_concurrency.prlimit \ --as=2147483648 -- ['env', 'LC_ALL=C', 'LANG=C', 'qemu-img', 'info', \ '/tmp/cirros-0.6.2-x86_64-disk.img', '--output=json'] Which obviously fails. I don't understand how our CI has worked so far, but the Metal3 BMO suite fails on this. Change-Id: I46dbcb0f73bcbe09bb89b5c7195259570412698e |
||
|
Zuul
|
badcd94f9d | Merge "oci: permit an 'unknown' but valid image" |