protected DomainGroupDeployStatusForRingGroup getDomainGroupDeployStatusForRingGroup(RingGroup ringGroup) throws IOException { DomainGroupDeployStatusForRingGroup status = new DomainGroupDeployStatusForRingGroup(); status.ringGroupName = ringGroup.getName(); ServingStatus servingStatus = RingGroups.computeServingStatusAggregator(ringGroup, ringGroup.getDomainGroup()).computeServingStatus(); status.numPartitions = servingStatus.getNumPartitions(); status.numPartitionsServedAndUpToDate = servingStatus.getNumPartitionsServedAndUpToDate(); return status; }
public ServingStatus computeUniquePartitionsServingStatus(DomainGroup domainGroup) throws IOException { ServingStatus result = new ServingStatus(); for (DomainAndVersion dgvdv : domainGroup.getDomainVersions()) { Domain domain = dgvdv.getDomain(); Map<Integer, ServingStatus> partitionToServingStatus = domainToPartitionToPartitionServingStatus.get(domain); int partitionsServedAndUpToDate = 0; if (partitionToServingStatus != null) { for (ServingStatus servingStatus : partitionToServingStatus.values()) { // A unique partition is served and up to date if all host corresponding domain partitions are // served and up to date if (servingStatus.getNumPartitionsServedAndUpToDate() == servingStatus.getNumPartitions()) { partitionsServedAndUpToDate += 1; } } } result.aggregate(domain.getNumParts(), partitionToServingStatus == null ? 0 : partitionsServedAndUpToDate); } return result; } }
private DomainDeployStatusForRingGroup getDomainDeployStatusForRingGroup(DomainGroup domainGroup, Domain domain, RingGroup ringGroup) throws IOException { DomainDeployStatusForRingGroup status = new DomainDeployStatusForRingGroup(); status.ringGroupName = ringGroup.getName(); if (domainGroup != null) { status.targetDomainVersion = domainGroup.getDomainVersion(domain) == null ? null : domainGroup.getDomainVersion(domain).getVersionNumber(); } ServingStatus servingStatus = RingGroups.computeServingStatusAggregator(ringGroup, domainGroup).computeServingStatus(); status.numPartitions = servingStatus.getNumPartitions(); status.numPartitionsServedAndUpToDate = servingStatus.getNumPartitionsServedAndUpToDate(); return status; }
protected RingGroupData getRingGroupData(RingGroup ringGroup) throws IOException { RingGroupData data = new RingGroupData(); data.name = ringGroup.getName(); data.isRingGroupConductorOnline = ringGroup.isRingGroupConductorOnline(); data.ringGroupConductorMode = ringGroup.getRingGroupConductorMode(); data.domainGroupName = ringGroup.getDomainGroup().getName(); ServingStatus servingStatus = RingGroups.computeServingStatusAggregator(ringGroup, ringGroup.getDomainGroup()).computeServingStatus(); data.numPartitions = servingStatus.getNumPartitions(); data.numPartitionsServedAndUpToDate = servingStatus.getNumPartitionsServedAndUpToDate(); Map<Integer, RingData> ringsMap = new HashMap<Integer, RingData>(); for (Ring ring : ringGroup.getRings()) { ringsMap.put(ring.getRingNumber(), getRingData(ring)); } data.ringsMap = ringsMap; data.clients = Maps.newHashMap(); for (ClientMetadata clientData : ringGroup.getClients()) { data.clients.put(clientData.get_host(), new ConnectedHostData( clientData.get_host(), Long.toString(clientData.get_connected_at()), clientData.get_type(), clientData.get_version() )); } return data; }