Thanks to visit codestin.com
Credit goes to github.com

Skip to content

utils: fix extra slash in Redfish default systems url path #10630

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 17, 2025

Conversation

rohityadavcloud
Copy link
Member

This removes extra slash from the base system url in Redfish oobm client utility.

Fixes #10441

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)
  • build/CI
  • test (unit or integration test code)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • Major
  • Minor

Bug Severity

  • BLOCKER
  • Critical
  • Major
  • Minor
  • Trivial

This removes extra slash from the base system url in Redfish oobm client
utility.

Fixes apache#10441

Signed-off-by: Rohit Yadav <[email protected]>
@rohityadavcloud
Copy link
Member Author

Requesting @kiranchavala for any quick tips, review & tests. Also cc @Pearl1594 @DaanHoogland @andrijapanicsb @steveroles

@rohityadavcloud
Copy link
Member Author

@blueorangutan package

@blueorangutan
Copy link

@rohityadavcloud a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Copy link

codecov bot commented Mar 28, 2025

Codecov Report

Attention: Patch coverage is 12.50000% with 14 lines in your changes missing coverage. Please review.

Project coverage is 16.02%. Comparing base (5300141) to head (b66f149).
Report is 13 commits behind head on 4.20.

Files with missing lines Patch % Lines
...apache/cloudstack/utils/redfish/RedfishClient.java 12.50% 14 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff            @@
##               4.20   #10630   +/-   ##
=========================================
  Coverage     16.01%   16.02%           
- Complexity    13110    13127   +17     
=========================================
  Files          5652     5652           
  Lines        495845   495928   +83     
  Branches      60046    60056   +10     
=========================================
+ Hits          79409    79451   +42     
- Misses       407574   407612   +38     
- Partials       8862     8865    +3     
Flag Coverage Δ
uitests 4.00% <ø> (ø)
unittests 16.86% <12.50%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@DaanHoogland DaanHoogland left a comment

Choose a reason for hiding this comment

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

clgtm

Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR fixes an issue with an extra slash in the Redfish default systems URL path used by the OOBM client utility.

  • Removed the trailing slash from the base systems URL.
  • Updated the URL composition in both the main client code and its corresponding tests.

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
utils/src/test/java/org/apache/cloudstack/utils/redfish/RedfishClientTest.java Updated test constants and expected URL strings to reflect the removal of the trailing slash.
utils/src/main/java/org/apache/cloudstack/utils/redfish/RedfishClient.java Adjusted the URL constants and string concatenation to correctly format the request URL without the extra slash.

@blueorangutan
Copy link

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 12913

@rohityadavcloud
Copy link
Member Author

@blueorangutan test

@blueorangutan
Copy link

@rohityadavcloud a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

@blueorangutan
Copy link

[SF] Trillian Build Failed (tid-12841)

Copy link
Contributor

@kiranchavala kiranchavala left a comment

Choose a reason for hiding this comment

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

@rohityadavcloud

getting the following exception

2025-03-28 10:48:38,052 ERROR [c.c.a.ApiAsyncJobDispatcher] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Unexpected exception while executing org.apache.cloudstack.api.command.admin.outofbandmanagement.IssueOutOfBandManagementPowerActionCmd java.lang.IllegalStateException: This is not a JSON Object.


[root@ref-trl-8237-k-Mol8-kiran-chavala-mgmt1 ~]# cat /var/log/cloudstack/management/management-server.log  |grep -i "logid:75fbfd7a"
2025-03-28 10:48:38,016 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl$5] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Executing AsyncJob {"accountId":2,"cmd":"org.apache.cloudstack.api.command.admin.outofbandmanagement.IssueOutOfBandManagementPowerActionCmd","cmdInfo":"{\"response\":\"json\",\"ctxUserId\":\"2\",\"sessionkey\":\"ACPGChmkdLjBVz9y7ogyTXjzkkU\",\"action\":\"OFF\",\"hostid\":\"f4fe4f90-1e3b-4c5f-974e-e9d48e5e4c52\",\"httpmethod\":\"GET\",\"ctxStartEventId\":\"177\",\"ctxDetails\":\"{\\\"interface com.cloud.host.Host\\\":\\\"f4fe4f90-1e3b-4c5f-974e-e9d48e5e4c52\\\"}\",\"ctxAccountId\":\"2\",\"cmdEventType\":\"HOST.OOBM.ACTION\"}","cmdVersion":0,"completeMsid":null,"created":null,"id":40,"initMsid":32989224370467,"instanceId":1,"instanceType":"Host","lastPolled":null,"lastUpdated":null,"processStatus":0,"removed":null,"result":null,"resultCode":0,"status":"IN_PROGRESS","userId":2,"uuid":"75fbfd7a-84ee-484e-8744-121d82949182"}
2025-03-28 10:48:38,041 WARN  [o.a.c.m.w.WebhookServiceImpl] (API-Job-Executor-32:[ctx-1ed229cb, job-40, ctx-291cbd2e]) (logid:75fbfd7a) Skipping delivering event Event {"description":"{\"details\":\"Host Id: 1 Action: OFF\",\"event\":\"HOST.OOBM.ACTION\",\"status\":\"Completed\"}","eventId":null,"eventType":"HOST.OOBM.ACTION","eventUuid":null,"resourceType":"Host","resourceUUID":null} to any webhook as account ID is missing
2025-03-28 10:48:38,042 WARN  [o.a.c.f.e.EventDistributorImpl] (API-Job-Executor-32:[ctx-1ed229cb, job-40, ctx-291cbd2e]) (logid:75fbfd7a) Failed to publish event [category: ActionEvent, type: HOST.OOBM.ACTION] on bus webhookEventBus
2025-03-28 10:48:38,052 ERROR [c.c.a.ApiAsyncJobDispatcher] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Unexpected exception while executing org.apache.cloudstack.api.command.admin.outofbandmanagement.IssueOutOfBandManagementPowerActionCmd java.lang.IllegalStateException: This is not a JSON Object.
2025-03-28 10:48:38,053 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Complete async job-40, jobStatus: FAILED, resultCode: 530, result: org.apache.cloudstack.api.response.ExceptionResponse/null/{"uuidList":[],"errorcode":"530","errortext":"This is not a JSON Object."}
2025-03-28 10:48:38,054 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Publish async job-40 complete on message bus
2025-03-28 10:48:38,054 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Wake up jobs related to job-40
2025-03-28 10:48:38,054 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Update db status for job-40
2025-03-28 10:48:38,055 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Wake up jobs joined with job-40 and disjoin all subjobs created from job- 40
2025-03-28 10:48:38,062 DEBUG [c.c.a.ApiServer] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Retrieved cmdEventType from job info: HOST.OOBM.ACTION
2025-03-28 10:48:38,064 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl$5] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Done executing org.apache.cloudstack.api.command.admin.outofbandmanagement.IssueOutOfBandManagementPowerActionCmd for job-40
2025-03-28 10:48:38,064 INFO  [o.a.c.f.j.i.AsyncJobMonitor] (API-Job-Executor-32:[ctx-1ed229cb, job-40]) (logid:75fbfd7a) Remove job-40 from job monitoring

@Pearl1594 Pearl1594 moved this to In Progress in ACS 4.20.1 Mar 28, 2025
@rohityadavcloud rohityadavcloud marked this pull request as draft March 29, 2025 06:01
Copy link
Contributor

@wido wido left a comment

Choose a reason for hiding this comment

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

CLGTM

Changes look good, thanks!

Fix the code to read all of the json content and now just upto newline
:facepalm:

Signed-off-by: Rohit Yadav <[email protected]>
@rohityadavcloud rohityadavcloud marked this pull request as ready for review April 15, 2025 08:09
@blueorangutan
Copy link

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 13056

@rohityadavcloud
Copy link
Member Author

@blueorangutan test

@blueorangutan
Copy link

@rohityadavcloud a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

Copy link
Contributor

@kiranchavala kiranchavala left a comment

Choose a reason for hiding this comment

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

@rohityadavcloud

Found the following issues when testing

  1. If the port is configured as 8000 , Cloudstack sends the request on the default port 80

Screenshot 2025-04-16 at 4 26 41 PM

Screenshot 2025-04-16 at 4 25 33 PM

  1. Cloudstack should send a POST request to control the hardware , currently we are sending only GET request

Screenshot 2025-04-16 at 2 21 04 PM

Example :

[root@ref-trl-8237-k-Mol8-kiran-chavala-kvm1 ~]# curl -s http://10.0.32.140:8000/redfish/v1/Systems/148a3231-209a-49ce-a8a9-b973dbb623c6

It supports the following operations

  "Actions": {
        "#ComputerSystem.Reset": {
            "target": "/redfish/v1/Systems/148a3231-209a-49ce-a8a9-b973dbb623c6/Actions/ComputerSystem.Reset",
            "[email protected]": [
                "On",
                "ForceOff",
                "GracefulShutdown",
                "GracefulRestart",
                "ForceRestart",
                "Nmi",
                "ForceOn"
            ]
        }
    },

curl -s -d '{"ResetType":"ForceOff"}' -H "Content-Type: application/json" -X POST http://$REDFISH_HOST:$REDFISH_PORT/redfish/v1/Systems/$REDFISH_SYSTEM/Actions/ComputerSystem.Reset

curl -s -d '{"ResetType":"ForceOn"}' -H "Content-Type: application/json" -X POST http://$REDFISH_HOST:$REDFISH_PORT/redfish/v1/Systems/$REDFISH_SYSTEM/Actions/ComputerSystem.Reset

I have followed the following blogs to test post request

https://cloudcult.dev/sushy-emulator-redfish-for-the-virtualization-nation/#part-ii-containerized-sushy-tools

https://cloudcult.dev/fishing-for-sushy-with-curl/

@blueorangutan
Copy link

[SF] Trillian test result (tid-13014)
Environment: kvm-ol8 (x2), Advanced Networking with Mgmt server ol8
Total time taken: 53064 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr10630-t13014-kvm-ol8.zip
Smoke tests completed. 141 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File

@rohityadavcloud
Copy link
Member Author

rohityadavcloud commented Apr 17, 2025

Thanks @kiranchavala

The issue 1 you've raised is a known problem as generally redfish is only on 443/https (when the global setting is on, it only works with 443/https). I've logged this issue for future fix #10742

2 is easily fixable but I don't know if it's a real-world issue or an issue with the emulator.

@wido @GabrielBrascher do you remember or know if the redfish based servers you've, use GET or POST for actions (power operations including status checks)?

@kiranchavala
Copy link
Contributor

Thanks @kiranchavala

The issue 1 you've raised is a known problem as generally redfish is only on 443/https (when the global setting is on, it only works with 443/https). I've logged this issue for future fix #10742

2 is easily fixable but I don't know if it's a real-world issue or an issue with the emulator.

@wido @GabrielBrascher do you remember or know if the redfish based servers you've, use GET or POST for actions (power operations including status checks)?

thanks @rohityadavcloud

According to the official redfish API reference guide , post request is used

pg 59 in

https://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.6.0.pdf

This fixes the error message when Redfish doesn't support power related
POST requests. Also fixes an NPE edge case discovered via the emulator.

Signed-off-by: Rohit Yadav <[email protected]>
@rohityadavcloud
Copy link
Member Author

Thanks @kiranchavala I double checked, I think the problem is in your setup. The error message wasn't clear so I've pushed a commit, it was actually sending a POST request but the emulator isn't supporting them. The default emulator mode is static and states here https://github.com/DMTF/Redfish-Interface-Emulator?tab=readme-ov-file#static-emulation-of-a-mockup that In a static mock, only HTTP GETs will work.

Now, the error will say this when it happens:

Screenshot 2025-04-17 at 10 39 00 AM

Using the emulator, the dynamic one seems to be supporting POST requests:

$ cp emulator-config_dynamic_populate.json emulator-config.json
$ python3 emulator.py -port 80
...
INFO:werkzeug:127.0.0.1 - - [17/Apr/2025 10:40:38] "POST /redfish/v1/Systems/System-1/Actions/ComputerSystem.Reset HTTP/1.1" 200 -
INFO:root:ComputerSystemCollectionAPI init called
INFO:root:ComputerSystemCollectionAPI GET called
...

Maybe could you also try/test against the sushy tools?

@blueorangutan package

@blueorangutan
Copy link

@rohityadavcloud a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@rohityadavcloud
Copy link
Member Author

rohityadavcloud commented Apr 17, 2025

Tested with:

  1. DTMF Redfish Emulator - with the dynamic profile, it worked except that the power state wouldn't change (something to do with the emulator itself).
  2. Sushy-tools fake emulator - it just worked out of the box and worked as expected incl. oobm power commands (on/off etc) updating the power state returned by status command, except for power cycle oobm command which it doesn't support:
[2025-04-17 10:56:08,318] DEBUG in main: Request failed with NotSupportedError: Power state PowerCycle is not supported
127.0.0.1 - - [17/Apr/2025 10:56:08] "POST /redfish/v1/Systems/27946b59-9e44-4fa7-8e91-f3527a1ef094/Actions/ComputerSystem.Reset HTTP/1.1" 500 -
in fake done

On mac did this:

pip3 install sushy-tools
sudo -s
sushy-emulator --fake -p 80 --debug

@blueorangutan
Copy link

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 13087

@rohityadavcloud
Copy link
Member Author

@blueorangutan test

@blueorangutan
Copy link

@rohityadavcloud a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

Copy link
Contributor

@kiranchavala kiranchavala left a comment

Choose a reason for hiding this comment

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

LGTM, Tested with the following emulators and Cloudstack is sending the correct POST request

https://github.com/DMTF/Redfish-Interface-Emulator

https://github.com/openstack/sushy-tools/tree/master/sushy_tools/emulator

LOGS for DTMF

2025-04-17 08:49:24,832 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-1:[ctx-24843844, job-62, ctx-67948a30]) (logid:6b7a8269) Sending ComputerSystem.Reset Command 'GracefulShutdown' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/System-1/Actions/ComputerSystem.Reset'




2025-04-17 08:52:24,201 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-2:[ctx-0054bdcc, job-63, ctx-660040bc]) (logid:85f4142f) Sending ComputerSystem.Reset Command 'On' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/System-1/Actions/ComputerSystem.Reset'




2025-04-17 08:53:07,955 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-3:[ctx-94a92e90, job-64, ctx-74bac251]) (logid:47a5a05e) Sending ComputerSystem.Reset Command 'PowerCycle' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/System-1/Actions/ComputerSystem.Reset'





2025-04-17 08:53:46,461 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-4:[ctx-fa2d589c, job-65, ctx-b67d16fa]) (logid:56520d5e) Sending ComputerSystem.Reset Command 'ForceRestart' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/System-1/Actions/ComputerSystem.Reset'




2025-04-17 08:55:59,417 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-5:[ctx-e0480ddb, job-66, ctx-7fa91049]) (logid:aa398dc4) Sending ComputerSystem.Reset Command 'GracefulShutdown' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/System-1/Actions/ComputerSystem.Reset'



2025-04-17 08:56:57,601 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-6:[ctx-310053aa, job-67, ctx-7d3ef831]) (logid:13c86fa5) Retrieved System ID 'System-1' with request 'GET: http://10.0.32.140/redfish/v1/Systems'

2025-04-17 08:56:57,605 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-6:[ctx-310053aa, job-67, ctx-7d3ef831]) (logid:13c86fa5) Retrieved System power state 'On' with request 'GET: http://10.0.32.140/redfish/v1/Systems/System-1'

Sushy tool


2025-04-17 09:18:52,658 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-7:[ctx-4db9f593, job-68, ctx-9d1e43cd]) (logid:c1f7b01c) Sending ComputerSystem.Reset Command 'GracefulShutdown' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/2d75be19-84fe-41a8-9a9e-111c28b0ea9a/Actions/ComputerSystem.Reset'


2025-04-17 09:20:15,604 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-8:[ctx-4d7c918c, job-69, ctx-38e7cd37]) (logid:5e0c53ad) Sending ComputerSystem.Reset Command 'On' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/2d75be19-84fe-41a8-9a9e-111c28b0ea9a/Actions/ComputerSystem.Reset'


2025-04-17 09:22:42,301 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-9:[ctx-5d5b161d, job-70, ctx-156bac08]) (logid:9a065e18) Sending ComputerSystem.Reset Command 'PowerCycle' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/2d75be19-84fe-41a8-9a9e-111c28b0ea9a/Actions/ComputerSystem.Reset'

2025-04-17 09:23:38,048 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-10:[ctx-c1b96157, job-71, ctx-5e030896]) (logid:dadd195f) Sending ComputerSystem.Reset Command 'ForceRestart' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/2d75be19-84fe-41a8-9a9e-111c28b0ea9a/Actions/ComputerSystem.Reset


2025-04-17 09:24:22,849 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-11:[ctx-e35a4a38, job-72, ctx-8e74fbce]) (logid:34220137) Sending ComputerSystem.Reset Command 'GracefulShutdown' to host '10.0.32.140' with request 'POST http://10.0.32.140/redfish/v1/Systems/2d75be19-84fe-41a8-9a9e-111c28b0ea9a/Actions/ComputerSystem.Reset'

2025-04-17 09:24:48,304 DEBUG [o.a.c.u.r.RedfishClient] (API-Job-Executor-12:[ctx-ee26da42, job-73, ctx-d7ab286c]) (logid:79af02f4) Retrieved System power state 'Off' with request 'GET: http://10.0.32.140/redfish/v1/Systems/2d75be19-84fe-41a8-9a9e-111c28b0ea9a'

@rohityadavcloud
Copy link
Member Author

rohityadavcloud commented Apr 17, 2025

Please merge this as/when you may @Pearl1594 @DaanHoogland
Thanks @kiranchavala for the extended testing. There's still a slight chance we have only tested against emulators, that some edge case was missed.

@DaanHoogland
Copy link
Contributor

Please merge this as/when you may @Pearl1594 @DaanHoogland Thanks @kiranchavala for the extended testing. There's still a slight chance we have only tested against emulators, that some edge case was missed.

we cannot know/test against all hardware, merging.

@DaanHoogland DaanHoogland merged commit 199170b into apache:4.20 Apr 17, 2025
25 of 26 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in ACS 4.20.1 Apr 17, 2025
@DaanHoogland DaanHoogland deleted the redfish-attempted-fix branch April 17, 2025 14:54
@blueorangutan
Copy link

[SF] Trillian test result (tid-13032)
Environment: kvm-ol8 (x2), Advanced Networking with Mgmt server ol8
Total time taken: 56642 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr10630-t13032-kvm-ol8.zip
Smoke tests completed. 141 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File

DaanHoogland added a commit that referenced this pull request Apr 18, 2025
* 4.20:
  utils: fix extra slash in Redfish default systems url path (#10630)
@DaanHoogland DaanHoogland linked an issue Apr 18, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Redfish OOBM plugin doesn't support custom port Redfish OOBM integration is broken in cloudstack
5 participants