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);

Reply via email to