You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by kh...@apache.org on 2020/09/15 19:47:35 UTC

[incubator-pinot] 03/04: Add change for Helix Configs

This is an automated email from the ASF dual-hosted git repository.

kharekartik pushed a commit to branch controller_api_patch
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git

commit e30ffb9ecb2be33ad5e1d6161deb838884b08fe1
Author: Kartik Khare <kh...@Kartiks-MacBook-Pro.local>
AuthorDate: Wed Sep 16 01:08:33 2020 +0530

    Add change for Helix Configs
---
 .../ClusterExternalViewChangeListener.java         | 21 -----------------
 .../ClusterInstanceConfigChangeListener.java       | 10 +++++++-
 .../ClusterLiveInstanceChangeListener.java         | 27 ++++++++++++++++------
 3 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterExternalViewChangeListener.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterExternalViewChangeListener.java
deleted file mode 100644
index 6400f47..0000000
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterExternalViewChangeListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.apache.pinot.controller.helix.core.listener;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.helix.NotificationContext;
-import org.apache.helix.api.listeners.ExternalViewChangeListener;
-import org.apache.helix.model.ExternalView;
-
-
-public class ClusterExternalViewChangeListener implements ExternalViewChangeListener {
-  private List<ExternalView> _externalViewList = new ArrayList<>();
-
-  @Override
-  public void onExternalViewChange(List<ExternalView> externalViewList, NotificationContext changeContext) {
-    _externalViewList = externalViewList;
-  }
-
-  public List<ExternalView> getExternalViewList() {
-    return _externalViewList;
-  }
-}
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterInstanceConfigChangeListener.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterInstanceConfigChangeListener.java
index 940230c..88bdd40 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterInstanceConfigChangeListener.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterInstanceConfigChangeListener.java
@@ -1,16 +1,21 @@
 package org.apache.pinot.controller.helix.core.listener;
 
+import org.apache.helix.HelixManager;
 import org.apache.helix.NotificationContext;
 import org.apache.helix.api.listeners.InstanceConfigChangeListener;
 import org.apache.helix.model.InstanceConfig;
 
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.pinot.common.utils.helix.HelixHelper;
+
 
 public class ClusterInstanceConfigChangeListener implements InstanceConfigChangeListener {
+    private HelixManager _helixManager;
     private List<InstanceConfig> _instanceConfigs = new ArrayList<>();
 
-    public ClusterInstanceConfigChangeListener() {
+    public ClusterInstanceConfigChangeListener(HelixManager helixManager) {
+        _helixManager = helixManager;
     }
 
     @Override
@@ -19,6 +24,9 @@ public class ClusterInstanceConfigChangeListener implements InstanceConfigChange
     }
 
     public List<InstanceConfig> getInstanceConfigs() {
+        if(_instanceConfigs.isEmpty()){
+            _instanceConfigs = HelixHelper.getInstanceConfigs(_helixManager);
+        }
         return _instanceConfigs;
     }
 }
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterLiveInstanceChangeListener.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterLiveInstanceChangeListener.java
index 777b41a..e3623c7 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterLiveInstanceChangeListener.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterLiveInstanceChangeListener.java
@@ -1,21 +1,34 @@
 package org.apache.pinot.controller.helix.core.listener;
 
 import java.util.ArrayList;
+import org.apache.helix.HelixDataAccessor;
 import org.apache.helix.NotificationContext;
 import org.apache.helix.api.listeners.LiveInstanceChangeListener;
 import org.apache.helix.model.LiveInstance;
 
 import java.util.List;
+import org.apache.helix.PropertyKey.Builder;
+
 
 public class ClusterLiveInstanceChangeListener implements LiveInstanceChangeListener {
-    private List<LiveInstance> _liveInstances = new ArrayList<>();
+  private HelixDataAccessor _helixDataAccessor;
+  private Builder _keyBuilder;
+  private List<LiveInstance> _liveInstances = new ArrayList<>();
 
-    @Override
-    public void onLiveInstanceChange(List<LiveInstance> liveInstances, NotificationContext changeContext) {
-        _liveInstances = liveInstances;
-    }
+  public ClusterLiveInstanceChangeListener(HelixDataAccessor helixDataAccessor, Builder keyBuilder) {
+    _helixDataAccessor = helixDataAccessor;
+    _keyBuilder = keyBuilder;
+  }
+
+  @Override
+  public void onLiveInstanceChange(List<LiveInstance> liveInstances, NotificationContext changeContext) {
+    _liveInstances = liveInstances;
+  }
 
-    public List<LiveInstance> getLiveInstances() {
-        return _liveInstances;
+  public List<LiveInstance> getLiveInstances() {
+    if (_liveInstances.isEmpty()) {
+      _liveInstances = _helixDataAccessor.getProperty(_keyBuilder.liveInstances());
     }
+    return _liveInstances;
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org