Skip to content

Conversation

@spesnova717
Copy link

Summary

Some Redfish implementations reject PATCH requests without If-Match.
This change updates boot device operations to use
patch_if_match, enabling ETag-based conditional PATCH when needed.

Problem

Certain BMC implementations require the If-Match header
with ETag values for PATCH operations.
The previous implementation using system.patch
did not include this header, causing operations to fail on some hardware.

Solution

Changed PATCH operations in modules/bmc/redfish.rb to use patch_if_match,
which automatically includes the If-Match header with the appropriate ETag value when available.

Some Redfish implementations reject PATCH requests without If-Match.
This change updates boot device operations to use
patch_if_match, enabling ETag-based conditional PATCH when needed.
# Temporarily use forked redfish_client with ETag support (draft PR)
# TODO: Update to released version once PR is merged
gem 'redfish_client', git: 'https://github.com/spesnova717/redfish-client-ruby.git', branch: 'feature/redfish-etag-support'
# gem 'redfish_client', '>= 0.7.0' # Uncomment after PR is merged
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants