This is an automated email from the ASF dual-hosted git repository. dahn pushed a commit to branch 6778-if-kafka-is-turned-on-internal-subs-dont-work in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit 9673099d042f3b29fd1519eba9b6f28d8e61b637 Author: Daan Hoogland <[email protected]> AuthorDate: Mon Sep 25 11:00:41 2023 +0200 publish to list --- .../cloudstack/framework/events/EventDistributor.java | 8 ++++++++ .../cloudstack/framework/events/EventDistributorImpl.java | 14 ++++++++++++-- server/src/main/java/com/cloud/api/ApiServer.java | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/framework/events/src/main/java/org/apache/cloudstack/framework/events/EventDistributor.java b/framework/events/src/main/java/org/apache/cloudstack/framework/events/EventDistributor.java index 8a65cf25cd3..4f477531710 100644 --- a/framework/events/src/main/java/org/apache/cloudstack/framework/events/EventDistributor.java +++ b/framework/events/src/main/java/org/apache/cloudstack/framework/events/EventDistributor.java @@ -21,5 +21,13 @@ package org.apache.cloudstack.framework.events; import com.cloud.utils.component.Manager; +import java.util.List; + public interface EventDistributor extends Manager { + /** + * publish an event on to the event busses + * + * @param event event that needs to be published on the event bus + */ + List<EventBusException> publish(Event event); } diff --git a/framework/events/src/main/java/org/apache/cloudstack/framework/events/EventDistributorImpl.java b/framework/events/src/main/java/org/apache/cloudstack/framework/events/EventDistributorImpl.java index 0ef9e09cff6..1b151eb363c 100644 --- a/framework/events/src/main/java/org/apache/cloudstack/framework/events/EventDistributorImpl.java +++ b/framework/events/src/main/java/org/apache/cloudstack/framework/events/EventDistributorImpl.java @@ -23,6 +23,7 @@ import com.cloud.utils.component.ManagerBase; import org.apache.log4j.Logger; import javax.annotation.PostConstruct; +import java.util.ArrayList; import java.util.List; public class EventDistributorImpl extends ManagerBase implements EventDistributor { @@ -39,12 +40,21 @@ public class EventDistributorImpl extends ManagerBase implements EventDistributo if (LOGGER.isTraceEnabled()) { LOGGER.trace(String.format("testing %d event busses", eventBusses.size())); } + publish(new Event("server", "NONE","starting", "server", "NONE")); + } + + @Override + public List<EventBusException> publish(Event event) { + List<EventBusException> exceptions = new ArrayList<>(); for (EventBus bus : eventBusses) { try { - bus.publish(new Event("server", "NONE","starting", "server", "NONE")); + bus.publish(event); } catch (EventBusException e) { - LOGGER.debug(String.format("no publish for bus %s", bus.getClass().getName()), e); + LOGGER.warn(String.format("no publish for bus %s of event %s", bus.getClass().getName(), event.getDescription())); + exceptions.add(e); } } + return exceptions; } + } diff --git a/server/src/main/java/com/cloud/api/ApiServer.java b/server/src/main/java/com/cloud/api/ApiServer.java index cea50273a6e..490e6a8512e 100644 --- a/server/src/main/java/com/cloud/api/ApiServer.java +++ b/server/src/main/java/com/cloud/api/ApiServer.java @@ -374,7 +374,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer event.setDescription(eventDescription); try { - eventBus.publish(event); + eventDistributor.publish(event); } catch (EventBusException evx) { String errMsg = "Failed to publish async job event on the event bus."; s_logger.warn(errMsg, evx);
