/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.ClusterMembership from) { setId(from.getId()); setName(from.getName()); setUuid(from.getUuid()); setHeartbeat(from.getHeartbeat()); setConfig(from.getConfig()); setClustered(from.getClustered()); }
/** * {@inheritDoc} */ @Override public <E extends io.cattle.platform.core.model.ClusterMembership> E into(E into) { into.from(this); return into; }
protected void setupMembers(Map<Long, ClusterMembership> activeSet, ClusterConfig config) throws IOException { Map<Long, ClusteredMember> members = new TreeMap<>(); for (Map.Entry<Long, ClusterMembership> entry : activeSet.entrySet()) { Long id = entry.getKey(); ClusterMembership member = entry.getValue(); ClusterConfig memberConfig = jsonMapper.readValue(member.getConfig(), ClusterConfig.class); members.put(id, new ClusteredMember(id, memberConfig, uuid.equals(member.getUuid()), member.getClustered())); } this.members = members; }
protected void setupHz(Map<Long, ClusterMembership> activeSet, ClusterConfig selfConfig) { Map<String, DiscoveryNode> newNodes = new TreeMap<>(); for (ClusterMembership member : activeSet.values()) { try { ClusterConfig config = jsonMapper.readValue(member.getConfig(), ClusterConfig.class); String address = getAddress(config.getAdvertiseAddress()); String[] parts = address.split(":"); newNodes.put(address, new SimpleDiscoveryNode(new Address(parts[0], Integer.parseInt(parts[1])))); } catch (Exception e) { log.error("Failed to register cluster member {} {}", member.getUuid(), member.getConfig()); } } if (selfNode != null) { newNodes.put(selfConfig.getAdvertiseAddress(), selfNode); } if (!this.hzNodes.keySet().equals(newNodes.keySet())) { log.info("Cluster membership changed {}", newNodes.keySet()); } this.hzNodes = newNodes; }
Checkin checkin = heartbeats.get(member.getId()); if (checkin == null) { checkin = new Checkin(); if (member.getHeartbeat().equals(checkin.heartbeat)) { checkin.count += 1; } else { clusterMembershipDao.delete(member); } else { activeSet.put(member.getId(), member); checkin.heartbeat = member.getHeartbeat(); heartbeats.put(member.getId(), checkin);
@Override public void delete(ClusterMembership member) { create().delete(CLUSTER_MEMBERSHIP) .where(CLUSTER_MEMBERSHIP.ID.eq(member.getId())) .execute(); }