Skip to content

Commit dda8a5f

Browse files
utils: fix extra slash in Redfish default systems url path
This removes extra slash from the base system url in Redfish oobm client utility. Fixes #10441 Signed-off-by: Rohit Yadav <[email protected]>
1 parent 5f93ce7 commit dda8a5f

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

utils/src/main/java/org/apache/cloudstack/utils/redfish/RedfishClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ public class RedfishClient {
7575
private boolean ignoreSsl;
7676
private int redfishRequestMaxRetries;
7777

78-
private final static String SYSTEMS_URL_PATH = "redfish/v1/Systems/";
79-
private final static String COMPUTER_SYSTEM_RESET_URL_PATH = "/Actions/ComputerSystem.Reset";
78+
private final static String SYSTEMS_URL_PATH = "redfish/v1/Systems";
79+
private final static String COMPUTER_SYSTEM_RESET_URL_PATH = "Actions/ComputerSystem.Reset";
8080
private final static String REDFISH_RESET_TYPE = "ResetType";
8181
private final static String POWER_STATE = "PowerState";
8282
private final static String APPLICATION_JSON = "application/json";
@@ -265,12 +265,12 @@ private String getRequestPathForCommand(RedfishCmdType cmd, String resourceId) {
265265
if (StringUtils.isBlank(resourceId)) {
266266
throw new RedfishException(String.format("Command '%s' requires a valid resource ID '%s'.", cmd, resourceId));
267267
}
268-
return String.format("%s%s", SYSTEMS_URL_PATH, resourceId);
268+
return String.format("%s/%s", SYSTEMS_URL_PATH, resourceId);
269269
case ComputerSystemReset:
270270
if (StringUtils.isBlank(resourceId)) {
271271
throw new RedfishException(String.format("Command '%s' requires a valid resource ID '%s'.", cmd, resourceId));
272272
}
273-
return String.format("%s%s%s", SYSTEMS_URL_PATH, resourceId, COMPUTER_SYSTEM_RESET_URL_PATH);
273+
return String.format("%s/%s/%s", SYSTEMS_URL_PATH, resourceId, COMPUTER_SYSTEM_RESET_URL_PATH);
274274
default:
275275
throw new RedfishException(String.format("Redfish client does not support command '%s'.", cmd));
276276
}

utils/src/test/java/org/apache/cloudstack/utils/redfish/RedfishClientTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ public class RedfishClientTest {
4141
private static final String PASSWORD = "password";
4242
private static final String oobAddress = "oob.host.address";
4343
private static final String systemId = "SystemID.1";
44-
private final static String COMPUTER_SYSTEM_RESET_URL_PATH = "/Actions/ComputerSystem.Reset";
44+
private final static String COMPUTER_SYSTEM_RESET_URL_PATH = "Actions/ComputerSystem.Reset";
4545
private final static Integer REDFISHT_REQUEST_RETRIES = Integer.valueOf(2);
46-
private static final String url = "https://address.system.net/redfish/v1/Systems/";
46+
private static final String url = "https://address.system.net/redfish/v1/Systems";
4747
private static final HttpRequestBase httpReq = new HttpGet(url);
4848

4949
@Mock
@@ -87,31 +87,31 @@ public void validateAddressAndPrepareForUrlTestIpv6() {
8787
public void buildRequestUrlTestHttpsGetSystemId() {
8888
RedfishClient redfishclient = new RedfishClient(USERNAME, PASSWORD, true, false, REDFISHT_REQUEST_RETRIES);
8989
String result = redfishclient.buildRequestUrl(oobAddress, RedfishClient.RedfishCmdType.GetSystemId, systemId);
90-
String expected = String.format("https://%s/redfish/v1/Systems/", oobAddress);
90+
String expected = String.format("https://%s/redfish/v1/Systems", oobAddress);
9191
Assert.assertEquals(expected, result);
9292
}
9393

9494
@Test
9595
public void buildRequestUrlTestGetSystemId() {
9696
RedfishClient redfishclient = new RedfishClient(USERNAME, PASSWORD, false, false, REDFISHT_REQUEST_RETRIES);
9797
String result = redfishclient.buildRequestUrl(oobAddress, RedfishClient.RedfishCmdType.GetSystemId, systemId);
98-
String expected = String.format("http://%s/redfish/v1/Systems/", oobAddress);
98+
String expected = String.format("http://%s/redfish/v1/Systems", oobAddress);
9999
Assert.assertEquals(expected, result);
100100
}
101101

102102
@Test
103103
public void buildRequestUrlTestHttpsComputerSystemReset() {
104104
RedfishClient redfishclient = new RedfishClient(USERNAME, PASSWORD, true, false, REDFISHT_REQUEST_RETRIES);
105105
String result = redfishclient.buildRequestUrl(oobAddress, RedfishClient.RedfishCmdType.ComputerSystemReset, systemId);
106-
String expected = String.format("https://%s/redfish/v1/Systems/%s%s", oobAddress, systemId, COMPUTER_SYSTEM_RESET_URL_PATH);
106+
String expected = String.format("https://%s/redfish/v1/Systems/%s/%s", oobAddress, systemId, COMPUTER_SYSTEM_RESET_URL_PATH);
107107
Assert.assertEquals(expected, result);
108108
}
109109

110110
@Test
111111
public void buildRequestUrlTestComputerSystemReset() {
112112
RedfishClient redfishclient = new RedfishClient(USERNAME, PASSWORD, false, false, REDFISHT_REQUEST_RETRIES);
113113
String result = redfishclient.buildRequestUrl(oobAddress, RedfishClient.RedfishCmdType.ComputerSystemReset, systemId);
114-
String expected = String.format("http://%s/redfish/v1/Systems/%s%s", oobAddress, systemId, COMPUTER_SYSTEM_RESET_URL_PATH);
114+
String expected = String.format("http://%s/redfish/v1/Systems/%s/%s", oobAddress, systemId, COMPUTER_SYSTEM_RESET_URL_PATH);
115115
Assert.assertEquals(expected, result);
116116
}
117117

0 commit comments

Comments
 (0)