We are excited to announce the release of: ironic-python-agent 6.2.0: Ironic Python Agent Ramdisk This release is part of the victoria release series. The source is available from: https://opendev.org/openstack/ironic-python-agent Download the package from: https://tarballs.openstack.org/ironic-python-agent/ Please report issues through: https://storyboard.openstack.org/#!/project/openstack/ironic- python-agent For more details, please see below. 6.2.0 ^^^^^ Bug Fixes * Fixes deployment failures when the image download is interrupted mid-stream while the contents are being downloaded. Previously retries were limited to only opening the initial connection. * Fixes the short timeout retries interval, which was previously "5" seconds, to a length that will allow the agent to retry after a network interruption. The time between retries is now "10" seconds, and the number of retries are set to "9" to help ensure intermittent network outages do not cause recoverable failures. * Fixes an issue with high cpu usage caused by ironic-python-agent greenthread eventlent implementation. Using eventlet.sleep(0.1) instead of eventlet.sleep(0) gives other processes of IPA more cpu time to run. * Speeds up going from inspection to cleaning with fast-track enabled by caching hardware information between the steps. * Fixes serializing exceptions originating from ironic-lib. Previously an attempt to do so would result in a "TypeError", for example: *Object of type 'InstanceDeployFailure' is not JSON serializable*. * The size of the ESP partition created for software RAID has been increased from 128 MiB to 550 MiB. This change is in line with the recent diskimage-builder change (https://opendev.org/openstack /diskimage-builder/commit/7fd52ba84180b4e749ccf4c9db8c49eafff46ea8) as well as the guidance from the author of gdisk (https://www.rodsbooks.com/efi-bootloaders/principles.html). * Fixes failure to detect a hung file download connection in the event that the kernel has not rapidly detected that the remote server has hung up the socket. This can happen when there is intermittent and transient connectivity issues such as those that can occur due to LACP failure response hold-downs timers in switching fabrics. Changes in ironic-python-agent 6.1.0..6.2.0 ------------------------------------------- 9d9a6bc Refactor part of image module c76b8b2 Limit Inspection->Lookup->Heartbeat lag a08029a Switch the inspector job to tinyIPA until DIB is fixed ba3caa6 Increase the ESP partition size to 550 MiB when using software RAID a4855c5 Fix serializing ironic-lib exceptions c1c093f Bump hacking min version to 3.0.1 c502279 Mount all vfat partitions before calling grub2 00ad03b Fixes minor issues in the read() retries patch 4e0981e Temporary switch to tinyipa jobs 0eee26e Fix confusing logging when running asynchronous commands 5cc44d2 Add debug message to node lookup 7abda4e Minor clean-up follow-up to timeout on read() fix c77a7df Extend retries to 9, 10 seconds apart. 159ab9f Add full download retries c5b97eb Add timeout operations to try and prevent hang on read() 29eab32 Remove .travis.yml (wow, it is ancient) 6d7ec35 Make get_partition_uuids work with whole disk images cf870ae Fix apidoc build 3dd929e Document how to output journal to console 648ac49 drop mock from lower-constraints 7e5fe11 Make the install_bootloader command asynchronous 4da53ab Add ffi development lib to bindep 9d4cf55 Add a deploy step for writing an image 6c1545b New extension call to return partition UUIDs 9524890 Fix an issue with high cpu usage caused by ironic-python-agent 557d560 Split and move logic for partition tables f108b7a Switch to newer openstackdocstheme and reno versions 437a8c6 Convert jobs to dib 06267a9 Update lower-constraints.txt 67dd91d CI: raise DIB jobs memory to 3 GiB f6ee877 Fix pep8 errors e00fe3b Add py38 package metadata 318828c Add Python3 victoria unit tests 0edc9c1 Update master for stable/ussuri 8d21063 Fix TypeError with newer version of lshw 2738e57 Add function to calculate memory Diffstat (except docs and test files) ------------------------------------- .travis.yml | 19 - bindep.txt | 2 + ironic_python_agent/agent.py | 21 +- ironic_python_agent/config.py | 4 +- ironic_python_agent/encoding.py | 12 + ironic_python_agent/extensions/base.py | 42 +- ironic_python_agent/extensions/image.py | 94 ++-- ironic_python_agent/extensions/standby.py | 168 ++++-- ironic_python_agent/hardware.py | 107 ++-- ironic_python_agent/inspector.py | 2 +- ironic_python_agent/ironic_api_client.py | 3 + ironic_python_agent/raid_utils.py | 39 +- ironic_python_agent/utils.py | 27 +- lower-constraints.txt | 37 +- ...y-retries-image-downloads-67409a493c6d08ae.yaml | 6 + .../extend-retry-timeout-30c930a33d97c193.yaml | 8 + ...x-high-cpu-usage-eventlet-1dccf3b81dd42c47.yaml | 8 + .../notes/inspect-to-clean-b3616d843775c187.yaml | 5 + releasenotes/notes/lib-exc-41ee122eb4a04bc4.yaml | 6 + .../notes/raid-esp-size-2c322adb2d3b9ce7.yaml | 9 + .../timeout_on_file_download-ed77918318316075.yaml | 9 + releasenotes/source/conf.py | 8 +- releasenotes/source/index.rst | 1 + releasenotes/source/ussuri.rst | 6 + setup.cfg | 1 + test-requirements.txt | 7 +- tox.ini | 4 + zuul.d/ironic-python-agent-jobs.yaml | 72 ++- zuul.d/project.yaml | 6 +- 43 files changed, 1407 insertions(+), 893 deletions(-) Requirements updates -------------------- diff --git a/test-requirements.txt b/test-requirements.txt index c48ea59..0565105 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4 +4 @@ -hacking>=3.0.0,<3.1.0 # Apache-2.0 +hacking>=3.0.1,<3.1.0 # Apache-2.0 @@ -13 +13 @@ bandit!=1.6.0,>=1.1.0,<2.0.0 # Apache-2.0 -# Doc requirements +# Doc test requirements @@ -15,3 +14,0 @@ doc8>=0.6.0 # Apache-2.0 -sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD -openstackdocstheme>=1.20.0 # Apache-2.0 -reno>=2.5.0 # Apache-2.0