- Added option to 'rf_bios_settings.py' to reset BIOS to the default settings
- Added 'rf_firmware_inventory.py' script to collect and display firmware versions
- Added '--timeout' option to rf_update.py to manually specify a timeout for the file transfer
- Corrected the regex pattern when trying to discover the local system's address when directly hosting firmware images
- Fixed file handling for certificate installation
- Modified formatting of the sensor table from 'rf_sensor_list.py' to not truncate readings
- Fixed 'list' commands for 'rf_power_equipment.py' and 'rf_thermal_equipment.py' to handle cases where properties are not supported or null
- Added new 'rf_thermal_equipment.py' tool for managing thermal equipment, such as CDUs
- Fixed change that was added for protecting from BrokenPipeError exceptions to not crash on Windows
- Added handling for printing array properties with 'null' entries where allowed
- Removed truncation of log messages to fit the console screen in 'rf_logs.py'
- Added protection from BrokenPipeError exceptions when piping rf_logs.py output
- Added protection from BrokenPipeError exceptions when piping rf_logs.py output
- Added missing check for presence of 'Sensors' when deciding which model to follow for collecting sensor info
- Added 'rf_assembly.py' to manage Assembly resources on a service
- Added 'rf_test_event_listener.py' tool to manually build event payloads
- Added optional 'applytime' parameter to 'rf_update.py' to specify when to apply an update
- Added 'rf_power_equipment.py' to collect data from rack PDUs and other power equipment
- Minor changes to fix Python 3.12 warnings with usage of raw strings
- Added new subcommands to 'rf_manager_config.py' to display and configure network protocol settings
- Added PhysicalContext to rf_sensor_list.py
- Added workaround flag to attempt to set boot override properties on settings resources for non-conformant implementations
- Added 'rf_certificates.py' tool to manage certificates on a Redfish service
- Added handling for password change required scenarios
- Updated 'rf_accounts.py' to directly modify a user's password when handling a password change required scenario
- Added options for controlling how 'rf_sensor_list.py' constructs sensor names
- Added timesouts and max retries to all requests
- Added dynamic scaling of the timeout of a multipart push update
- Added ETag handling for PATCH and PUT operations in 'rf_raw_request.py'
- Corrected excaption raising in several manager methods to properly reference the manager's identifier
- Added 'settime' command to 'rf_manager_config.py'
- Added 'rf_licenses.py' tool to manage licenses on a Redfish service
- Added 'resettodefaults' subcommand to 'rf_manager_config.py'
- Updated 'setnet' in 'rf_manager_config.py' to allow for the 'Enabled' value for DHCPv6 control
- Updated collection handling for systems, managers, and chassis to differentiate between HTTP 404 from other non-successful responses
- Extended 'rf_raw_request.py' to allow it to send binary data from a file
- Added support for multipart HTTP push updates
- Corrected the usage of the 'workaround' flag in rf_bios_settings.py
- Added 'debug' argument to capture HTTP traces and exceptions to a log
- Enhanced system inventory logic to ensure properties are of the expected format instead of throwing an exception when malformed
- Fixed bug where rf_raw_request.py would perform 'HEAD' instead of 'DELETE' when 'DELETE' is specified
- Corrected passing of the event_types argument from rf_event_service.py when creating an event subscription
- Corrected flow when handling system reset exceptions to ensure it stays raised
- Corrected 'rf_sensor_list.py' to not assume all excerpts contain a reading
- Updated allowable reset types to include 'Suspend', 'Pause', and 'Resume'
- Updated error path for system reset requests to append reset types allowed by the system to the exception message
- Added exception handling in each script to avoid printing full traces
- Minor documentation updates
- Adding RPM packages to the build process
- Enhancement added to fall back on using the Id property in Sensor for building the name if Name is not valid
- Moved usage of 'workarounds' flag to be a module-level flag rather than an individual parameter on each method
- Added --mode argument to 'rf_boot_override.py' to control Legacy vs UEFI
- Added --info argument to 'rf_boot_override.py'
- Corrected usage of the 'request' parameter in 'rf_raw_request.py'
- Added 'rf_diagnostic_data.py' to collect diagnostic data from a log service
- Added power state reporting with the 'info' parameter in rf_power_reset.py
- Fixed usage of 'EventTypes' when creating an event subscription
- Added rf_raw_request.py for allowing a user to perform HTTP operations on a specified URI
- Updated rf_sensor_list.py to support new power and thermal models
- Added handling for lack of 'Destination' property in an event subscription when displaying the list of subscriptions
- Added support for legacy 'event types' subscriptions to enable usage with services that do not support newer methods of subscriptions
- Added --workaround flag to rf_sys_inventory.py to attempt workaround logic for non-conformant services
- Added support for cataloging switches in rf_sys_inventory.py
- Added --workaround flag to rf_bios_settings.py to attempt workaround logic for non-conformant services
- Added trailing slash checking in URI parsing of collections when extracting member identifiers
- Added helper routines to collect identifiers for systems, managers, and Ethernet interfaces for managers
- Modified collection searching routines to leverage standardized URI patterns to minimize the number of transactions performed
- Added rf_manager_config.py tool for configuring managers
- Added rf_virtual_media.py tool for managing virtual media on a system
- Added list of reset types to help text of rf_power_reset.py
- Fixed usage of the --expand option in rf_event_service.py
- Added rf_event_service.py tool for managing event subscriptions and displaying event service information
- Added option to the inventory script to save information to a spreadsheet
- Removed 'PushPowerButton' from simple reset list
- Added rf_bios_settings.py utility for displaying and setting BIOS attributes
- Added enhancement to account deletion fallback routine to send two PATCH operations when clearing an account to ensure compatibility
- Added sensor state to the sensor objects constructed
- Enhanced construction of the PCIe device name being built to use other properties
- Added enhancement to one time boot script to set the boot mode to Disabled when the target is selected to be None
- Added option in power/reset script to show available reset types
- Added enhancement to show valid Ids of resources when an exception is generated
- Fixed log script from hiding exceptions
- Added rf_logs.py utility for reading and displaying logs
- Added rf_discover.py utility to discover Redfish services via SSDP
- Added support for using ETags for PATCHing ComputerSystem resources
- Removed 'Account Lock' capability from rf_accounts
- Renamed all scripts to end in '.py' for Windows compatibility
- Added rf_accounts utility to manage user accounts
- Made fix to handling of Storage Controllers in the inventory tool
- Added rf_sys_inventory utility to scan a service and catalog system components
- Added rf_boot_override utility to perform one time boot operations
- Added rf_power_reset utility to perform power/reset operations
- Added local web server support for rf_update when a local file is specified
- Added rf_update utility
- Initial release