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

ifesdjeen pushed a commit to branch cassandra-3.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 3320f08269eaedd06418d0b8b8fdd2be6f467b51
Merge: 09fd7e8 9705d82
Author: Alex Petrov <oleksandr.pet...@gmail.com>
AuthorDate: Wed Feb 5 11:51:02 2020 +0100

    Merge branch 'cassandra-2.2' into cassandra-3.0

 .../org/apache/cassandra/service/GCInspector.java  |   3 +-
 .../cassandra/distributed/api/IInstanceConfig.java |   4 +
 .../distributed/impl/AbstractCluster.java          | 170 +++++++++++++++------
 .../distributed/impl/DistributedTestSnitch.java    |  60 +++++++-
 .../cassandra/distributed/impl/InstanceConfig.java |  10 +-
 .../distributed/impl/NetworkTopology.java          |  60 +++++++-
 .../cassandra/distributed/test/BootstrapTest.java  | 104 +++++++++++++
 .../distributed/test/DistributedTestBase.java      |   1 +
 .../distributed/test/NetworkTopologyTest.java      |   5 +-
 9 files changed, 357 insertions(+), 60 deletions(-)

diff --cc src/java/org/apache/cassandra/service/GCInspector.java
index e7cfcd0,4f93097..787d79a
--- a/src/java/org/apache/cassandra/service/GCInspector.java
+++ b/src/java/org/apache/cassandra/service/GCInspector.java
@@@ -41,7 -41,8 +41,8 @@@ import org.slf4j.LoggerFactory
  
  import org.apache.cassandra.config.DatabaseDescriptor;
  
 -import org.apache.cassandra.io.sstable.SSTableDeletingTask;
 +import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
+ import org.apache.cassandra.utils.MBeanWrapper;
  import org.apache.cassandra.utils.StatusLogger;
  
  public class GCInspector implements NotificationListener, GCInspectorMXBean
diff --cc 
test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java
index 35e2903,f8f157a..9147169
--- 
a/test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java
+++ 
b/test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java
@@@ -51,11 -61,49 +61,49 @@@ public class DistributedTestSnitch exte
      public String getDatacenter(InetAddressAndPort endpoint)
      {
          assert mapping != null : "network topology must be assigned before 
using snitch";
-         return mapping.localDC(endpoint);
+         return maybeGetFromEndpointState(mapping.localDC(endpoint), endpoint, 
ApplicationState.DC, DEFAULT_DC);
+     }
+ 
+     // Here, the logic is slightly different from what we have in 
GossipingPropertyFileSnitch since we have a different
+     // goal. Passed argument (topology that was set on the node) overrides 
anything that is passed elsewhere.
+     private String maybeGetFromEndpointState(String current, 
InetAddressAndPort endpoint, ApplicationState state, String defaultValue)
+     {
+         if (current != null)
+             return current;
+ 
+         EndpointState epState = 
Gossiper.instance.getEndpointStateForEndpoint(endpoint.address);
+         if (epState == null || epState.getApplicationState(state) == null)
+         {
+             if (savedEndpoints == null)
+             {
+                 savedEndpoints = new HashMap<>();
+                 int storage_port = 
Config.getOverrideLoadConfig().get().storage_port;
+                 for (Map.Entry<InetAddress, Map<String, String>> entry : 
SystemKeyspace.loadDcRackInfo().entrySet())
+                 {
+                     
savedEndpoints.put(InetAddressAndPort.getByAddressOverrideDefaults(endpoint.address,
 storage_port),
+                                        entry.getValue());
+                 }
+             }
 -
+             if (savedEndpoints.containsKey(endpoint))
+                 return savedEndpoints.get(endpoint).get("data_center");
+ 
+             return defaultValue;
+         }
+ 
+         return epState.getApplicationState(state).value;
      }
  
      static void assign(NetworkTopology newMapping)
      {
          mapping = new NetworkTopology(newMapping);
      }
+ 
+     public void gossiperStarting()
+     {
+         super.gossiperStarting();
+ 
++
+         
Gossiper.instance.addLocalApplicationState(ApplicationState.INTERNAL_IP,
+                                                    
StorageService.instance.valueFactory.internalIP(FBUtilities.getLocalAddress().getHostAddress()));
+     }
  }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to