CHANGES
=======

5.8.0
-----

* Handle missing storage controller mode attribute
* reno: Update master for unmaintained/2024.1
* Add comprehensive PCIe function support to Sushy
* Check required credentials in a detailed way
* Remove support for Python 3.9
* Add comprehensive PCIe device support to Sushy
* Restore flake8-import-order
* Improve Dell Asynchronous task handling
* Update master for stable/2025.2
* Handle idrac10 moving some boot items

5.7.1
-----

* Improve handling of empty-string eTags
* Optimize unit testing

5.7.0
-----

* Don't fail to eject vmedia in case there is no vmedia
* Add retry logic to connection failures
* Implement set\_datetime method in Manager and refresh local state after PATCH
* Revert "Replace license classifier"
* Replace license classifier
* Add firmware information on NetworkAdapter resource
* Fix type of Targets in ShareParameters for Dell
* Skipping UsbCd workaround on Supermicro ARS-111GL-NHR

5.6.0
-----

* Update master for stable/2025.1
* migrate sushy\_oem\_idrac to sushy
* explicit oem extn names and fix parallel tests

5.5.0
-----

* trivial: fix variable in log message
* enable pyupgrade via ruff to Python 3.7

5.4.0
-----

* enable flake8 logging checks in ruff
* reno: Update master for unmaintained/2023.1
* enable pycodestyle and pyflakes checks in ruff
* change ambiguous variable name
* enable ruff with flake8-bandit rules
* ensure all requests calls have a timeout
* ignore open coded password from flake8-bandit
* switch to pre-commit
* trim trailing whitespace
* Add Port resource
* Provide vmedia username and password if required
* Drop unnecessary 'x' bit from doc config file

5.3.0
-----

* bump pbr to match what pyproject.toml requests
* Remove Python 3.8 support
* contributor: links to ironic dev docs, launchpad
* Fix setting "HttpBootUri" attributes
* add pyproject.toml to support pip 23.1
* Make default request timeout configurable on Connector
* Update master for stable/2024.2
* fix spelling and make codespell pass
* EthernetInterface without an Id
* add a link to the release notes in the README
* drop usage of pkg\_resource for newer python compat
* Fix versions in release notes

5.2.0
-----

* When ManagedBy attribute is missing from System retry with Managers
* Name is not mandatory for Storage/StorageControllers
* Adds Ethernet Interfaces for manager
* avoid MAC addresses that are the empty string
* Log the response when unable to parse JSON

5.1.1
-----

* Fix link to bugs
* Trivial: fix duplicated docstring

5.1.0
-----

* reno: Update master for unmaintained/zed
* Handle NotAcceptable when Accept-Encoding: identity is not allowed
* reno: Update master for unmaintained/xena
* reno: Update master for unmaintained/wallaby
* reno: Update master for unmaintained/victoria
* refectoring: Fix parameter and annotation mismatch
* Update master for stable/2024.1

5.0.0
-----

* reno: Update master for unmaintained/yoga
* Force constraints when installing a package during tox test
* [codespell] Adding CI target for Tox Codespell
* [codespell] Adding Tox Target for Codespell
* [codespell] Fixing Spelling Mistakes
* Update supported python versions

4.8.0
-----

* Allows System to access VirtualMedia in Sushy
* Handle a different related properties for missing TransferProtocolType
* Add release version to release notes
* Handle exceptions after re-authentication
* Remove version field from iLO error
* Add a boot progress indicator

4.7.0
-----

* Adds an option for setting the http boot uri

4.6.0
-----

* Fix missing ETag when patching Redfish resource
* Update master for stable/2023.2
* Fix wrong \_get\_registry logic in ResourceBase

4.5.1
-----

* Requests must always have a read/connect timeout
* Handle session-uri in body

4.5.0
-----

* Retry on ilo state error
* Update pep8 dep hacking to latest: v6
* Handle TransferMethod in vmedia insertion
* Add TransferProtocolType for any general error that mentions it
* Exclude all files starting with . from flake8 tests
* Update master for stable/2023.1
* Handle non-default language for registries

4.4.2
-----

* workaround: requests verify handling if env is set
* Remove setuptools workaround
* Fix tox4 and setuptools errors
* Fix exceeding retries
* Fix volume deletion on newer iDRACs

4.4.1
-----

* Handle proper code\_status in unit test
* Handle a different error code for missing TransferProtocolType
* Retry on iDRAC SYS518 errors for all requests
* Fix setting boot related attributes

4.4.0
-----

* Make server connection retries configurable
* Increase server side retries
* Improve resiliency of eTag handling
* Update release versions for yoga and zed
* Fix misuse of assertTrue
* Add Python3 antelope unit tests
* Update master for stable/zed
* Fix misuse of assertIsNone

4.3.0
-----

* Capture requests errors

4.2.2
-----

* Do not send compression as acceptable encoding
* Better logging when registries are not available

4.2.1
-----

* Handle mismatch between registry Identity and the way it's referred to
* Add new Storage controllers
* Handle AccessError with Basic Auth instead of "reauth"
* Replace the netboot job with a local-boot one
* Remove unicode literal from code
* Update jobs names

4.2.0
-----

* Drop lower-constraints.txt and its testing
* Add Python3 zed unit tests
* Update master for stable/yoga
* Fix session authentication issues

4.1.1
-----

* Re-trying InsertMedia call with TransferProtocolType if required
* Add missing \_\_init\_\_.py
* Follow up to Attempt using Redfish settings resource to get URI
* Attempt using Redfish settings resource to get URI

4.1.0
-----

* Stop logging MessageRegistry objects
* Re-add python 3.6/3.7 in classifier
* Revert "Raise an AccessError with SessionService init"
* [trivial] fix Xena release versions
* Use Etag in precondition header when setting boot options
* Use only Yoga tests
* Raise an AccessError with SessionService init
* Test python 3.6 for distributions compatibility

4.0.0
-----

* Finalize the enum migration
* Updating yoga tested python versions in classifier
* Migrate System Network to enums
* Migrate Fabric to enums
* Migrate Chassis to enums
* Support for creating and deleting virtual media TLS certificates
* [Trivial] Fix docstring typo: s/SECORE/SECURE/g
* Migrate Manager constants to enums
* Migrate CompositionService, EventService and TaskService to enums
* Run Ironic unit tests to avoid regressions
* Add support for additional network resources
* Add support for NetworkAdapter resources
* Migrate System Storage constants to enums
* Migrate System constants to enums
* Changing boot device string for vmedia on SuperMicro
* Handle weak Etags
* Add basic support for CertificateService
* Add some VirtualMedia fields from 1.3.0 and 1.4.0
* Migrate Protocol constants to enums
* Migrate common constants to enums
* Prepare the ground to use enums instead of strings
* Remove deprecated Task monitors and Volume methods
* Add revision for drive resource
* Add Python3 yoga unit tests
* Update master for stable/xena

3.12.0
------

* Support credentials for VirtualMedia URI
* Change default value: insert\_media write\_protected

3.11.1
------

* Add lower-constraints job to current development branch

3.11.0
------

* Removing optional fields from insert\_media payload
* Increase version of hacking and pycodestyle

3.10.0
------

* Fix Context for EventDestination
* Fix OEM required attribute parsing
* Add resource root property
* Add Drive.volumes
* Fix Processor.sub\_processors
* Protect Connector against empty auth object
* Update min version of tox to use allowlist

3.9.1
-----

* Fix incorrect formatting and a Python 3.10 failure

3.9.0
-----

* Use TOX\_CONSTRAINTS\_FILE
* EventService support
* [trivial] add wallaby versions to release notes

3.8.0
-----

* Add support for BIOS Attribute Registry
* setup.cfg: Replace dashes with underscores
* Implement fallback method for virtual media
* [doc] Fix formating issue
* Update venv entry in tox.ini
* Add Python3 xena unit tests
* Update master for stable/wallaby
* Ensure Content-Type header is set when required

3.7.0
-----

* Follow up TaskMonitor refactor
* Refactor TaskMonitor and update Volume methods
* Don't log ERROR if GET of /redfish/v1/SessionService fails
* Fix deprecation on collections.MutableMapping
* Automatically retry HTTP 5xx on GET requests
* Initial support for secure boot databases

3.6.1
-----

* Fix TaskMonitor constructor calls in volume.py
* Fix ExtendedInfo error handling for non-list item
* Update minversion of tox
* Add release version to release notes

3.6.0
-----

* Secure boot support: enabling/disabling and resetting keys
* Fixes issue of redfish firmware update
* Add doc/requirements
* Add OperationApplyTime support to Volume methods
* Remove lower-constraints job
* Fix lower-constraints with the new pip resolver
* Raise exception when async operation fails

3.5.0
-----

* Adds sushy library overview
* Avoid running functional jobs for doc changes
* Fixes a typo when accessing the connector in CompositionService
* Add support to expose oem\_vendors from resource links
* Adds basic support for TaskService to retrieve task information
* Set safe version of hacking
* Lower log severity for unknown type registries
* Log only fields set in redfish response, not entire json
* Fix #Bios.ResetBios for HTTP 400 Bad request error
* Trivial: add missing \_\_init\_\_.py to sushy/resources/taskservice
* Log extended error information in addition to returning it
* Make message parsing more resilient
* Make Actions field in Volume resource optional
* Fix l-c job
* Add Python3 wallaby unit tests
* Update master for stable/victoria

3.4.0
-----

* Allow monitoring progress of a firmware update
* Add BIOS update apply time and maintenance window
* Revert "Add BIOS update apply time and maintenance window"
* Add BIOS update apply time and maintenance window
* Use Sessions URL from root service if it's provided

3.3.1
-----

* Less scary warning when GET /redfish/v1/SessionService fails
* Do not log passwords and auth tokens when using SessionService
* Remove auth token header completely when error occurs
* Add a CI job with UEFI+vmedia and clean up the job definitions
* Include extended information in debugging output
* Fix retrieving software & firmware inventory
* Update version of hacking
* Update system schema to 1.10
* Set min version of tox to 3.2.1

3.3.0
-----

* drop mock from lower-constraints
* Add RAIDType properties to storage resources
* Make Volume/VolumeCollection operations blocking
* Remove python-subunit, testtools and testscenarios
* Switch to newer openstackdocstheme and reno versions
* Fix pdf build
* Remove translation sections from setup.cfg
* Fix OEM extension loading for different servers
* Update lower-constraints.txt
* Fix pep8 test
* Restore default netboot boot option
* Add py38 package metadata
* Add import order check
* Use unittest.mock instead of third party mock
* Stop configuring install\_command in tox
* Add Python3 victoria unit tests
* Update master for stable/ussuri
* Convert sushy tempest to dib
* Cleanup py27 support
* Switch to the new canonical constraints URL on master

3.2.0
-----

* [trivial] add reason why we skip W503 in pep8 check
* Bump hacking to 3.0.0
* Explicitly set ramdisk type
* Ignore failing message registry download
* Lazily load message registries
* Add \`Connector(..., response\_callback=None)\`\` parameter
* Make MessageRegistryFile.Registry attribute non-required
* Add \`set\_system\_boot\_options\` method
* Fix incorrect usage of assertRaisesRegex in unit tests

3.1.0
-----

* Relax required Redfish fields handling
* Fix 'None' field value processing
* Automatically discover available system/manager/chassis
* Handle incomplete messages in MessageRegistry
* Add Task Monitor support for async operations
* Enforce running tox with correct python version based on env
* SSC.disks\_sizes\_bytes handle CapacityBytes is None
* Stop using six library

3.0.0
-----

* Add OEM extension example script
* Drop python 2.7 support and testing
* Switch jobs to python3
* Fix typo in the section Enabling SSL
* Add versions to release notes series
* Update master for stable/train

2.0.0
-----

* Build pdf doc
* Add conditional field matching
* Change OEM extensions architecture
* Unify OEM Actions with non-OEM Actions
* Implements adapter checking
* Retry Virtual Media eject action on HTTP 400 response
* Cache message registries
* Disable HTTP connection pooling
* Add MappedListField
* Make message registries available to all resources
* Action #Bios.ResetBios fails as POST request has no body
* Added changes to \`simple\_update\` on update service
* Make UpdateService.simple\_update() operational
* Fix exposed UpdateService constants
* Low case \`ParamTypes\` in received \`MessageRegistry\`
* Disregard registry files of unsupported types
* Handle incomplete message registries
* Refactor DurableName identifier and Protocol fields
* Add \`\`Endpoint\`\` sub-resource to \`\`Fabric\`\`
* Update Python 3 test runtimes for Train
* Include OData-Version header in Redfish requests

1.9.0
-----

* Use collections.abc instead of collections when available
* Enhance Storage models to support RAID config
* Add @Redfish.Settings update status and expose it for BIOS
* Update sphinx requirements
* Cleanup for Standard message registry loading
* Make Manager->Actions field optional
* Add Power and Thermal resources to Chassis
* update git.openstack.org to opendev
* OpenDev Migration Patch
* Deprecate System-specific \`IndicatorLED\` state constants
* Dropping the py35 testing
* Update model to support ApplyTime annotations
* Adding Power resource schema
* Expand Drive schema
* Adding Thermal resource schema
* Add settable \`IndicatorLED\` property to the \`Drive\` resource
* Add settable \`IndicatorLED\` of \`System\` and \`Chassis\`
* Add versions to release notes series
* Add mappings for \`system\_type\`
* Add \`FabricCollection\` and \`Fabric\` classes
* Change sushy devstack job to python3
* Fix wrong default JsonDataReader() argument
* Add public resource loading and message parsing
* Add support for loading packaged standard registries
* Update master for stable/stein

1.8.0
-----

* Add foundation for supporting Redfish OEMs
* Introduce default value for \`transfer\_protocol\` parameter
* Add support for ilo Virtual Media
* Add support for the \`CompositionService\` resource
* Add support for the \`UpdateService\` resource
* Follow Up Zuulv3
* Move to zuulv3
* Introduce \`dateutil\`
* Update the docstring of \`sub\_processors()\`
* Update to public
* Add missing tests
* Add Chassis<->ComputerSystem/Manager linkage
* Add System<->Manager linkage follow up
* Add System<->Manager linkage
* Change openstack-dev to openstack-discuss and update URL
* Add \`ChassisCollection\` and \`Chassis\` classes
* Cleanup JsonDataReader name
* remove useless whitespces
* Unify sushy models by Redfish schema bundle

1.7.0
-----

* Delete HTTP tokens on \`Sushy\` shutdown
* [Trivial Fix] modify spelling errors of fulfill, for, containing
* Change adapter to 'int\_or\_none' for processor properties
* [Trivial Fix] modify spelling error of "committed"
* Add support for loading resources from archive file
* [Trivial Fix] modify spelling error of "resource"
* Follow-up to 27c725c to move up \`\`cache\_clear\`\`
* Requests session keyword arguments for sushy connector
* Introduce \`\`cache\_it\`\` and \`\`cache\_clear\`\`
* Fix crashing \`BasicAuth\` context manager
* Remove stray unicode character from tox.ini
* Add \`ProtocolFeaturesSupported\` property of the \`Root Service\`
* Add product property to the root Sushy object
* Update to use mapped field for Settings Message Severity field
* Omit tests from code coverage run
* Use templates for cover and lower-constraints
* Return sizes of storage devices
* Fix for MediaTypes in virtual media
* Add Message Registry File resource
* Cleanup names for message registry
* Add storage and simple\_storage attr to system
* Caching ResourceCollectionBase::get\_members()
* Add a virtual media resource
* add python 3.6 unit test job
* switch documentation job to new PTI
* import zuul job settings from project-config
* Add system storage resource support
* Cleanup docstring for removed etag param
* Add Redfish Message Registry resource
* Add DictionaryField class to resource base
* Update reno for stable/rocky

1.6.0
-----

* Add system simple storage resource support
* Add storage disk drive
* Switch to use stestr for unit test
* Cleanup unittest file loading
* Remove etag from Bios
* Hide Attribute Registry property in Bios
* Introduce BIOS API

1.5.0
-----

* Change BootSourceOverrideMode from BIOS to Legacy
* fix tox python3 overrides
* Add reusable ActionField
* tox: Use default Python 3 version, remove pypy
* Create mappings for System Indicator LED

1.4.0
-----

* Gate fix: Cap hacking to avoid gate failure
* Do not run functional (API) tests in the CI
* Add storage volume
* Add processor ProcessorId field and Status field
* Update Launchpad references to Storyboard
* Fix wrong message of invalid boot "enabled" parameter
* add lower-constraints job
* Add system status field
* Updated from global requirements
* Mark Systems/Managers/SessionService optional
* Replace curly quotes with straight quotes
* fix error url
* Zuul: Remove project name
* Restores sushy session functionality
* Updated from global requirements
* Update reno for stable/queens

1.3.0
-----

* Restore the default semantics of refresh()
* Restore interface of Connector
* Add support to accept custom connector object
* Updated from global requirements
* Implement Redfish Sessions
* Update documentation related to 'refresh()'
* Updated from global requirements
* Updated from global requirements
* Update method docstring
* Indicating the location tests directory in oslo\_debug\_helper
* Use the tempest plugin from openstack/ironic-tempest-plugin
* Avoid tox\_install.sh for constraints support
* Follow-up patch for 8fe2904a62b0f56dc3fc3fefc5a5a746911ce891
* Updated from global requirements
* zuul: clean up job definition
* Add Zuul v3 jobs in tree
* Refining the resource refresh
* Add ListField class to resource base

1.2.0
-----

* Adds EthernetInterface to the library
* Add int\_or\_none adapter function
* Add PUT method to connector
* flake8: Enable some off-by-default checks
* Updated from global requirements
* Enable some off-by-default checks
* Update reno for stable/pike
* Updated from global requirements
* Add DELETE method to connector
* Replace HTTP numeric constants with http\_client constants
* Update some tests to copy the dictionaries passed in

1.0.0
-----

* Correct sushy homepage
* Minor spelling fix
* Rework sushy documentation for doc migration
* Change theme to openstackdocs
* Removes unnecessary utf-8 encoding
* Drop MANIFEST.in - it's not needed by pbr
* Add manager resource
* Updated from global requirements
* Updated from global requirements
* Change assertTrue(isinstance()) by optimal assert
* Updated from global requirements

0.2.0
-----

* Declarative approach to parsing JSON fields
* Updated from global requirements
* Updated from global requirements
* Fix working with requests Session object
* Improve logging and error handling in base code
* Add System Processor/Memory info
* Properly support upper-constraints
* Updated from global requirements

0.1.0
-----

* Remove the tools/ directory from the sushy tree
* Sushy to adhere to the resource identifier portion of the spec
* Redfish-simulator: Do not cache the connection
* Refactor resource collection
* Fix members identity extraction
* Add docstrings to various methods
* Change get\_allowed\_\*() methods return type from list to set
* Separate documentation readme.rst
* Fix hardcoded reset system path
* Updated from global requirements
* Libvirt-Mockup: Get vCPUs even if the domain is not running
* [Fix gate]Update test requirement
* Updated from global requirements
* Refining test coverage
* Libvirt-Mockup: Add support for getting the boot source target
* Rework exceptions
* Libvirt-Mockup: Turn off strict\_slashes on all routes
* Create a tox target for running the libvirt simulator
* Add link to the python documentation about the NullHandler
* [libvirt-simulator] Use a real identity in links from System
* Add SSL support to the mockup servers
* Add a mockup for controlling VMs with libvirt
* Updated from global requirements
* Drop the six dependency for mockup\_server.py
* Remove the REQUEST\_NUMBER variable from tools/mockup\_server.py
* Relax the \_parse\_attributes() method from the System resource
* Add a script to serve the Redfish mockup files
* Fix documentation link
* Add some logs and fix the get\_allowed\_\*() methods
* Improve unit-tests
* Initial commit
