private void buildMaps(Map<String, DistributedMember> hostMemberMap, Map<String, List<String>> hostMemberListMap, String memberIdOrName, DistributedMember distributedMember) { String host = distributedMember.getHost(); // Maintain one member for a host - function execution purpose - once only for a host if (!hostMemberMap.containsKey(host)) { hostMemberMap.put(host, distributedMember); } // Maintain all members for a host - display purpose List<String> list; if (!hostMemberListMap.containsKey(host)) { list = new ArrayList<>(); hostMemberListMap.put(host, list); } else { list = hostMemberListMap.get(host); } list.add(memberIdOrName); } }
/** * This method returns the name that will be used for a DistributedMember when it is registered as * a JMX bean. * * @param member Member to find the name for * @return The name used to register this member as a JMX bean. */ public static String getMemberNameOrUniqueId(DistributedMember member) { if (member.getName() != null && !member.getName().equals("")) { return makeCompliantName(member.getName()); } return makeCompliantName(member.getUniqueId()); }
@Override public String getMemberId() { return this.member == null ? "unknown" : this.member.getId(); }
memberInformation.setName(memberToBeDescribed.getName()); memberInformation.setId(memberToBeDescribed.getId()); memberInformation.setHost(memberToBeDescribed.getHost()); memberInformation.setProcessId("" + memberToBeDescribed.getProcessId());
logInfo(() -> String.format("Connected to Distributed System [%1$s] as Member [%2$s]" .concat(" in Group(s) [%3$s] with Role(s) [%4$s] on Host [%5$s] having PID [%6$d]"), cache.getDistributedSystem().getName(), member.getId(), member.getGroups(), member.getRoles(), member.getHost(), member.getProcessId())));
@Before public void before() { command = spy(ListMembersCommand.class); members = new HashSet<>(); doReturn(members).when(command).findMembersIncludingLocators(any(), any()); member1 = mock(DistributedMember.class); when(member1.getName()).thenReturn("name"); when(member1.getId()).thenReturn("id"); doReturn(member1).when(command).getCoordinator(); member2 = mock(DistributedMember.class); when(member2.getName()).thenReturn("name2"); when(member2.getId()).thenReturn("id2"); // This will enforce the sort order in TreeSet used by ListMembersCommand. when(member1.compareTo(member2)).thenReturn(-1); when(member2.compareTo(member1)).thenReturn(1); }
@Override public DistributedMember getMemberWithName(String name) { for (DistributedMember id : members.values()) { if (Objects.equals(id.getName(), name)) { return id; } } if (Objects.equals(localAddress, name)) { return localAddress; } return null; }
@Override public Set<DistributedMember> getGroupMembers(String group) { HashSet<DistributedMember> result = null; for (DistributedMember m : getDistributionManagerIdsIncludingAdmin()) { if (m.getGroups().contains(group)) { if (result == null) { result = new HashSet<>(); } result.add(m); } } if (result == null) { return Collections.emptySet(); } else { return result; } }
private boolean basicIsRoleInRegionMembership(Role role) { if (getSystem().getDistributedMember().getRoles().contains(role)) { // since we are playing the role return true; } for (DistributedMember member : this.distAdvisor.adviseGeneric()) { Set<Role> roles = member.getRoles(); if (roles.contains(role)) { return true; } } return false; }
@Override public int compareTo(InternalPartitionDetails other) { // memberId is InternalDistributedMember which implements Comparable return this.distributedMember.compareTo(other.getDistributedMember()); } }
private Function<Health.Builder, Health.Builder> withDistributedMemberDetails() { return healthBuilder -> getGemFireCache() .map(GemFireCache::getDistributedSystem) .map(DistributedSystem::getDistributedMember) .map(distributedMember -> healthBuilder .withDetail("geode.distributed-member.id", distributedMember.getId()) .withDetail("geode.distributed-member.name", distributedMember.getName()) .withDetail("geode.distributed-member.groups", distributedMember.getGroups()) .withDetail("geode.distributed-member.host", distributedMember.getHost()) .withDetail("geode.distributed-member.process-id", distributedMember.getProcessId()) ) .orElse(healthBuilder); }
logInfo(() -> String.format("Connected to Distributed System [%1$s] as Member [%2$s]" .concat(" in Group(s) [%3$s] with Role(s) [%4$s] on Host [%5$s] having PID [%6$d]"), cache.getDistributedSystem().getName(), member.getId(), member.getGroups(), member.getRoles(), member.getHost(), member.getProcessId())));
@Override public DistributedMember findDistributedMember(String name) { for (DistributedMember member : dm.getDistributionManagerIdsIncludingAdmin()) { if (member.getName().equals(name)) { return member; } } return null; }
public String[] getGroups() { List<String> groups = cache.getDistributedSystem().getDistributedMember().getGroups(); String[] groupsArray = new String[groups.size()]; groupsArray = groups.toArray(groupsArray); return groupsArray; }
for (Object other1 : others) { DistributedMember other = (DistributedMember) other1; this.missingRequiredRoles.removeAll(other.getRoles());