You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by we...@apache.org on 2026/08/19 10:28:24 UTC
(cloudstack) 02/02: fixes after forward-merge
This is an automated email from the ASF dual-hosted git repository.
weizhouapache pushed a commit to branch 4.23.0-merge-4.22.1.1
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit dc9438a0cee757756a9e4515b656841b3c765e16
Author: Wei Zhou <we...@apache.org>
AuthorDate: Wed Aug 19 12:26:04 2026 +0200
fixes after forward-merge
---
.../acl/DynamicRoleBasedAPIAccessChecker.java | 5 ++++-
.../mom/webhook/WebhookServiceImplTest.java | 20 ++++++++++++--------
.../mom/webhook/dao/WebhookDeliveryDaoImplTest.java | 6 +++---
.../webhook/dao/WebhookDeliveryJoinDaoImplTest.java | 6 +++---
4 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/plugins/acl/dynamic-role-based/src/main/java/org/apache/cloudstack/acl/DynamicRoleBasedAPIAccessChecker.java b/plugins/acl/dynamic-role-based/src/main/java/org/apache/cloudstack/acl/DynamicRoleBasedAPIAccessChecker.java
index b9b41722c32..1278adc0b88 100644
--- a/plugins/acl/dynamic-role-based/src/main/java/org/apache/cloudstack/acl/DynamicRoleBasedAPIAccessChecker.java
+++ b/plugins/acl/dynamic-role-based/src/main/java/org/apache/cloudstack/acl/DynamicRoleBasedAPIAccessChecker.java
@@ -101,9 +101,12 @@ public class DynamicRoleBasedAPIAccessChecker extends AdapterBase implements API
return apiNames;
}
List<RolePermission> allPermissions = roleAndPermissions.second();
+ List<RolePermissionEntity> allPermissionEntities = allPermissions.stream().map(permission -> (RolePermissionEntity) permission)
+ .collect(Collectors.toList());
+
List<String> allowedApis = new ArrayList<>();
for (String api : apiNames) {
- if (checkApiPermissionByRole(accountRole, api, allPermissions)) {
+ if (checkApiPermissionByRole(accountRole, api, allPermissionEntities, false)) {
allowedApis.add(api);
}
}
diff --git a/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/WebhookServiceImplTest.java b/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/WebhookServiceImplTest.java
index 90c0c323d0d..e945b990c80 100644
--- a/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/WebhookServiceImplTest.java
+++ b/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/WebhookServiceImplTest.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.mom.webhook;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -28,6 +29,7 @@ import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.events.Event;
import org.apache.cloudstack.framework.events.EventBusException;
+import org.apache.cloudstack.mom.webhook.WebhookServiceImpl.DeliveryConfig;
import org.apache.cloudstack.mom.webhook.dao.WebhookDao;
import org.apache.cloudstack.mom.webhook.dao.WebhookDeliveryDao;
import org.apache.cloudstack.mom.webhook.dao.WebhookFilterDao;
@@ -98,7 +100,7 @@ public class WebhookServiceImplTest {
public void getDeliveryJobReturnsProperlyConfiguredJob() {
Event event = Mockito.mock(Event.class);
Webhook webhook = Mockito.mock(Webhook.class);
- Pair<Integer, Integer> configs = new Pair<>(4, 5000);
+ DeliveryConfig configs = new DeliveryConfig(4, 5000, null, false, true, true);
Mockito.when(event.getEventId()).thenReturn(123L);
Mockito.when(webhook.getId()).thenReturn(456L);
@@ -114,7 +116,7 @@ public class WebhookServiceImplTest {
public void getDeliveryJobInjectsDependencies() {
Event event = Mockito.mock(Event.class);
Webhook webhook = Mockito.mock(Webhook.class);
- Pair<Integer, Integer> configs = new Pair<>(1, 1000);
+ DeliveryConfig configs = new DeliveryConfig(1, 1000, null, false, true, true);
WebhookDeliveryThread job = webhookServiceImpl.getDeliveryJob(event, webhook, configs);
@@ -413,9 +415,11 @@ public class WebhookServiceImplTest {
Account account = Mockito.mock(Account.class);
Mockito.when(webhook.getAccountId()).thenReturn(2L);
+ Mockito.when(webhook.getPayloadUrl()).thenReturn("https://example.com");
Mockito.when(accountManager.getAccount(Mockito.anyLong())).thenReturn(account);
- Runnable job = webhookServiceImpl.getManualDeliveryJob(null, webhook, " ", future);
+ URI uri = WebhookUrlValidator.validateWebhookDestinationUrl(webhook.getPayloadUrl(), false, null, true);
+ Runnable job = webhookServiceImpl.getManualDeliveryJob(null, webhook, " ", uri, future);
Assert.assertNotNull(job);
Event event = (Event) ReflectionTestUtils.getField(job, "event");
@@ -438,7 +442,7 @@ public class WebhookServiceImplTest {
Mockito.when(existingDelivery.getPayload()).thenReturn("test-payload");
Mockito.when(eventJoinVO.getAccountUuid()).thenReturn("account-uuid");
- Runnable job = webhookServiceImpl.getManualDeliveryJob(existingDelivery, webhook, null, future);
+ Runnable job = webhookServiceImpl.getManualDeliveryJob(existingDelivery, webhook, null, null, future);
Assert.assertNotNull(job);
Mockito.verify(eventJoinDao, Mockito.times(1)).findById(123L);
@@ -454,7 +458,7 @@ public class WebhookServiceImplTest {
Mockito.when(accountManager.getAccount(1L)).thenReturn(account);
Mockito.when(account.getUuid()).thenReturn("account-uuid");
- Runnable job = webhookServiceImpl.getManualDeliveryJob(null, webhook, "test-payload", future);
+ Runnable job = webhookServiceImpl.getManualDeliveryJob(null, webhook, "test-payload", null, future);
Assert.assertNotNull(job);
Mockito.verify(accountManager, Mockito.times(1)).getAccount(1L);
@@ -470,7 +474,7 @@ public class WebhookServiceImplTest {
Mockito.when(webhook.getAccountId()).thenReturn(2L);
Mockito.when(accountManager.getAccount(Mockito.anyLong())).thenReturn(account);
- WebhookDeliveryThread job = (WebhookDeliveryThread) webhookServiceImpl.getManualDeliveryJob(null, webhook, "test-payload", future);
+ WebhookDeliveryThread job = (WebhookDeliveryThread) webhookServiceImpl.getManualDeliveryJob(null, webhook, "test-payload", null, future);
Assert.assertEquals(3, ReflectionTestUtils.getField(job, "deliveryTries"));
Assert.assertEquals(10, ReflectionTestUtils.getField(job, "deliveryTimeout"));
@@ -607,7 +611,7 @@ public class WebhookServiceImplTest {
WebhookDeliveryVO persistedDelivery = Mockito.mock(WebhookDeliveryVO.class);
Mockito.when(webhookDeliveryDao.persist(Mockito.any(WebhookDeliveryVO.class))).thenReturn(persistedDelivery);
- WebhookDelivery returnedDelivery = webhookServiceImpl.executeWebhookDelivery(delivery, webhook, "payload");
+ WebhookDelivery returnedDelivery = webhookServiceImpl.executeWebhookDelivery(delivery, webhook, "payload", null);
Assert.assertEquals(persistedDelivery, returnedDelivery);
Mockito.verify(webhookDeliveryDao, Mockito.times(1)).persist(Mockito.any(WebhookDeliveryVO.class));
@@ -638,7 +642,7 @@ public class WebhookServiceImplTest {
});
ReflectionTestUtils.setField(webhookServiceImpl, "webhookJobExecutor", executorService);
- WebhookDelivery returnedDelivery = webhookServiceImpl.executeWebhookDelivery(null, webhook, "payload");
+ WebhookDelivery returnedDelivery = webhookServiceImpl.executeWebhookDelivery(null, webhook, "payload", null);
Assert.assertNotNull(returnedDelivery);
Assert.assertEquals("headers", returnedDelivery.getHeaders());
diff --git a/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryDaoImplTest.java b/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryDaoImplTest.java
index ff0f222cdcc..bc3fc034720 100644
--- a/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryDaoImplTest.java
+++ b/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryDaoImplTest.java
@@ -69,11 +69,11 @@ public class WebhookDeliveryDaoImplTest {
doReturn(1).when(webhookDeliveryDao).remove(any(SearchCriteria.class));
- int result = webhookDeliveryDao.deleteByDeleteApiParams(null, webhookId, null, startDate, null);
+ int result = webhookDeliveryDao.deleteByDeleteApiParams(null, List.of(webhookId), null, startDate, null, true);
assertEquals(1, result);
verify(webhookDeliveryDao).remove(any(SearchCriteria.class));
- verify(mockSearchBuilder).and(eq("webhookId"), any(), eq(SearchCriteria.Op.EQ));
+ verify(mockSearchBuilder).and(eq("webhookId"), any(), eq(SearchCriteria.Op.IN));
verify(mockSearchCriteria).setParameters("webhookId", webhookId);
}
@@ -87,7 +87,7 @@ public class WebhookDeliveryDaoImplTest {
doReturn(0).when(webhookDeliveryDao).remove(any(SearchCriteria.class));
- int result = webhookDeliveryDao.deleteByDeleteApiParams(id, webhookId, managementServerId, startDate, endDate);
+ int result = webhookDeliveryDao.deleteByDeleteApiParams(id, List.of(webhookId), managementServerId, startDate, endDate, true);
assertEquals(0, result);
}
diff --git a/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryJoinDaoImplTest.java b/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryJoinDaoImplTest.java
index f7561536a3f..c475e1e20db 100644
--- a/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryJoinDaoImplTest.java
+++ b/plugins/event-bus/webhook/src/test/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryJoinDaoImplTest.java
@@ -72,7 +72,7 @@ public class WebhookDeliveryJoinDaoImplTest {
Pair<List<WebhookDeliveryJoinVO>, Integer> result =
webhookDeliveryJoinDao.searchAndCountByListApiParameters(id, null, null,
- null, null, null, null,null);
+ null, null, null, null, null, true);
assertNotNull(result);
assertTrue(result.second() > 0);
@@ -90,7 +90,7 @@ public class WebhookDeliveryJoinDaoImplTest {
Pair<List<WebhookDeliveryJoinVO>, Integer> result =
webhookDeliveryJoinDao.searchAndCountByListApiParameters(null, List.of(webhookId),
- null, null, null, null, null, null);
+ null, null, null, null, null, null, true);
assertNotNull(result);
assertTrue(result.second() > 0);
@@ -112,7 +112,7 @@ public class WebhookDeliveryJoinDaoImplTest {
Pair<List<WebhookDeliveryJoinVO>, Integer> result =
webhookDeliveryJoinDao.searchAndCountByListApiParameters(null, null,
- managementServerId, keyword, start, end, null, searchFilter);
+ managementServerId, keyword, start, end, null, searchFilter, true);
assertNotNull(result);
assertTrue(result.second() > 0);