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