Author: remm
Date: Mon Oct 15 08:39:26 2018
New Revision: 1843886

URL: http://svn.apache.org/viewvc?rev=1843886&view=rev
Log:
Try to get the member uid from the cloud, it seems more appropriate overall.

Modified:
    
tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java
    
tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java?rev=1843886&r1=1843885&r2=1843886&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java
 Mon Oct 15 08:39:26 2018
@@ -18,9 +18,6 @@
 package org.apache.catalina.tribes.membership.cloud;
 
 import java.io.IOException;
-import java.net.InetAddress;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
 
 import javax.management.ObjectName;
 
@@ -42,6 +39,7 @@ public class CloudMembershipService exte
     public static final String MEMBERSHIP_PROVIDER_CLASS_NAME = 
"membershipProviderClassName";
     private static final String KUBE = "kubernetes";
     private static final String KUBE_PROVIDER_CLASS = 
"org.apache.catalina.tribes.membership.cloud.KubernetesMembershipProvider";
+    static final byte[] INITIAL_ID = new byte[16];
 
     private MembershipProvider membershipProvider;
     private MemberImpl localMember;
@@ -173,13 +171,7 @@ public class CloudMembershipService exte
 
         if (localMember == null) {
             localMember = new MemberImpl();
-            try {
-                // Set localMember unique ID to md5 hash of hostname
-                localMember.setUniqueId(MessageDigest.getInstance("md5")
-                        
.digest(InetAddress.getLocalHost().getHostName().getBytes()));
-            } catch (NoSuchAlgorithmException e) {
-                throw new IOException(e);
-            }
+            localMember.setUniqueId(INITIAL_ID);
             localMember.setLocal(true);
         }
         localMember.setHostname(host);

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java?rev=1843886&r1=1843885&r2=1843886&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
 Mon Oct 15 08:39:26 2018
@@ -203,10 +203,15 @@ public class KubernetesMembershipProvide
 
                 // We found ourselves, ignore
                 if (name.equals(hostName)) {
+                    // Update the UID on initial lookup
+                    Member localMember = service.getLocalMember(false);
+                    if (localMember.getUniqueId() == 
CloudMembershipService.INITIAL_ID && localMember instanceof MemberImpl) {
+                        byte[] id = 
md5.digest(uid.getBytes(StandardCharsets.US_ASCII));
+                        ((MemberImpl) localMember).setUniqueId(id);
+                    }
                     continue;
                 }
 
-                byte[] id = 
md5.digest(uid.getBytes(StandardCharsets.US_ASCII));
                 long aliveTime = 
Duration.between(Instant.parse(creationTimestamp), startTime).getSeconds() * 
1000; // aliveTime is in ms
 
                 MemberImpl member = null;
@@ -218,6 +223,7 @@ public class KubernetesMembershipProvide
                     
log.error(sm.getString("kubernetesMembershipProvider.memberError"), e);
                     continue;
                 }
+                byte[] id = 
md5.digest(uid.getBytes(StandardCharsets.US_ASCII));
                 member.setUniqueId(id);
                 members.add(member);
             }



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

Reply via email to