/** * @return finished percentage of targets */ public float getFinishedPercent() { return ((float) getTotalTargetCountByStatus(TotalTargetCountStatus.Status.FINISHED) / totalTargetCount) * 100; }
@Override public TotalTargetCountStatus getTotalTargetCountStatus() { if (totalTargetCountStatus == null) { totalTargetCountStatus = new TotalTargetCountStatus(totalTargets); } return totalTargetCountStatus; }
@Override public String convertToPresentation(final TotalTargetCountStatus value, final Class<? extends String> targetType, final Locale locale) { return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); }
private static ProxyRolloutGroup createProxy(final RolloutGroup rolloutGroup) { final ProxyRolloutGroup proxyRolloutGroup = new ProxyRolloutGroup(); proxyRolloutGroup.setName(rolloutGroup.getName()); proxyRolloutGroup.setDescription(rolloutGroup.getDescription()); proxyRolloutGroup.setCreatedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getCreatedAt())); proxyRolloutGroup.setModifiedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getLastModifiedAt())); proxyRolloutGroup.setCreatedBy(UserDetailsFormatter.loadAndFormatCreatedBy(rolloutGroup)); proxyRolloutGroup.setLastModifiedBy(UserDetailsFormatter.loadAndFormatLastModifiedBy(rolloutGroup)); proxyRolloutGroup.setId(rolloutGroup.getId()); proxyRolloutGroup.setStatus(rolloutGroup.getStatus()); proxyRolloutGroup.setErrorAction(rolloutGroup.getErrorAction()); proxyRolloutGroup.setErrorActionExp(rolloutGroup.getErrorActionExp()); proxyRolloutGroup.setErrorCondition(rolloutGroup.getErrorCondition()); proxyRolloutGroup.setErrorConditionExp(rolloutGroup.getErrorConditionExp()); proxyRolloutGroup.setSuccessCondition(rolloutGroup.getSuccessCondition()); proxyRolloutGroup.setSuccessConditionExp(rolloutGroup.getSuccessConditionExp()); proxyRolloutGroup.setFinishedPercentage(HawkbitCommonUtil.formattingFinishedPercentage(rolloutGroup, rolloutGroup.getTotalTargetCountStatus().getFinishedPercent())); proxyRolloutGroup.setRolloutRendererData(new RolloutRendererData(rolloutGroup.getName(), null)); proxyRolloutGroup.setTotalTargetsCount(String.valueOf(rolloutGroup.getTotalTargets())); proxyRolloutGroup.setTotalTargetCountStatus(rolloutGroup.getTotalTargetCountStatus()); return proxyRolloutGroup; }
/** * Create a new states map with the target count for each state. * * @param targetCountActionStatus * the action state map * @param totalTargetCount * the total target count */ public TotalTargetCountStatus(final List<TotalTargetCountActionStatus> targetCountActionStatus, final Long totalTargetCount) { this.totalTargetCount = totalTargetCount; mapActionStatusToTotalTargetCountStatus(targetCountActionStatus); }
/** * Populate all target status to a the given map * * @param statusTotalCountMap * the map * @param rolloutStatusCountItems * all target {@link Status} with total count */ private final void mapActionStatusToTotalTargetCountStatus( final List<TotalTargetCountActionStatus> targetCountActionStatus) { if (targetCountActionStatus == null) { statusTotalCountMap.put(TotalTargetCountStatus.Status.NOTSTARTED, totalTargetCount); return; } statusTotalCountMap.put(Status.RUNNING, 0L); Long notStartedTargetCount = totalTargetCount; for (final TotalTargetCountActionStatus item : targetCountActionStatus) { convertStatus(item); notStartedTargetCount -= item.getCount(); } statusTotalCountMap.put(TotalTargetCountStatus.Status.NOTSTARTED, notStartedTargetCount); }
private static ProxyRolloutGroup createProxy(final RolloutGroup rolloutGroup) { final ProxyRolloutGroup proxyRolloutGroup = new ProxyRolloutGroup(); proxyRolloutGroup.setName(rolloutGroup.getName()); proxyRolloutGroup.setDescription(rolloutGroup.getDescription()); proxyRolloutGroup.setCreatedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getCreatedAt())); proxyRolloutGroup.setModifiedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getLastModifiedAt())); proxyRolloutGroup.setCreatedBy(UserDetailsFormatter.loadAndFormatCreatedBy(rolloutGroup)); proxyRolloutGroup.setLastModifiedBy(UserDetailsFormatter.loadAndFormatLastModifiedBy(rolloutGroup)); proxyRolloutGroup.setId(rolloutGroup.getId()); proxyRolloutGroup.setStatus(rolloutGroup.getStatus()); proxyRolloutGroup.setErrorAction(rolloutGroup.getErrorAction()); proxyRolloutGroup.setErrorActionExp(rolloutGroup.getErrorActionExp()); proxyRolloutGroup.setErrorCondition(rolloutGroup.getErrorCondition()); proxyRolloutGroup.setErrorConditionExp(rolloutGroup.getErrorConditionExp()); proxyRolloutGroup.setSuccessCondition(rolloutGroup.getSuccessCondition()); proxyRolloutGroup.setSuccessConditionExp(rolloutGroup.getSuccessConditionExp()); proxyRolloutGroup.setFinishedPercentage(HawkbitCommonUtil.formattingFinishedPercentage(rolloutGroup, rolloutGroup.getTotalTargetCountStatus().getFinishedPercent())); proxyRolloutGroup.setRolloutRendererData(new RolloutRendererData(rolloutGroup.getName(), null)); proxyRolloutGroup.setTotalTargetsCount(String.valueOf(rolloutGroup.getTotalTargets())); proxyRolloutGroup.setTotalTargetCountStatus(rolloutGroup.getTotalTargetCountStatus()); return proxyRolloutGroup; }
for (final TotalTargetCountStatus.Status status : TotalTargetCountStatus.Status.values()) { body.addTotalTargetsPerStatus(status.name().toLowerCase(), rolloutGroup.getTotalTargetCountStatus().getTotalTargetCountByStatus(status));
@Override public TotalTargetCountStatus getTotalTargetCountStatus() { if (totalTargetCountStatus == null) { totalTargetCountStatus = new TotalTargetCountStatus(totalTargets); } return totalTargetCountStatus; }
@Override public String convertToPresentation(final TotalTargetCountStatus value, final Class<? extends String> targetType, final Locale locale) { return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); }
for (final TotalTargetCountStatus.Status status : TotalTargetCountStatus.Status.values()) { body.addTotalTargetsPerStatus(status.name().toLowerCase(), rollout.getTotalTargetCountStatus().getTotalTargetCountByStatus(status));
/** * @return the totalTargetCountStatus */ @Override public TotalTargetCountStatus getTotalTargetCountStatus() { if (totalTargetCountStatus == null) { totalTargetCountStatus = new TotalTargetCountStatus(Long.valueOf(totalTargets)); } return totalTargetCountStatus; }
@Override public String convertToPresentation(final TotalTargetCountStatus value, final Class<? extends String> targetType, final Locale locale) { return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); }
/** * @return the totalTargetCountStatus */ @Override public TotalTargetCountStatus getTotalTargetCountStatus() { if (totalTargetCountStatus == null) { totalTargetCountStatus = new TotalTargetCountStatus(Long.valueOf(totalTargets)); } return totalTargetCountStatus; }
@Override public String convertToPresentation(final TotalTargetCountStatus value, final Class<? extends String> targetType, final Locale locale) { return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); }
private void setRolloutStatusDetails(final Slice<JpaRollout> rollouts) { final List<Long> rolloutIds = rollouts.getContent().stream().map(Rollout::getId).collect(Collectors.toList()); final Map<Long, List<TotalTargetCountActionStatus>> allStatesForRollout = getStatusCountItemForRollout( rolloutIds); if (allStatesForRollout != null) { rollouts.forEach(rollout -> { final TotalTargetCountStatus totalTargetCountStatus = new TotalTargetCountStatus( allStatesForRollout.get(rollout.getId()), rollout.getTotalTargets()); rollout.setTotalTargetCountStatus(totalTargetCountStatus); }); } }
private String getConfirmationQuestion(final Rollout rollout) { final Map<Status, Long> statusTotalCount = rollout.getTotalTargetCountStatus().getStatusTotalCountMap(); Long scheduledActions = statusTotalCount.get(Status.SCHEDULED); if (scheduledActions == null) { scheduledActions = 0L; } final Long runningActions = statusTotalCount.get(Status.RUNNING); String rolloutDetailsMessage = ""; if ((scheduledActions > 0) || (runningActions > 0)) { rolloutDetailsMessage = i18n.getMessage("message.delete.rollout.details", runningActions, scheduledActions); } return i18n.getMessage("message.delete.rollout", rollout.getName(), rolloutDetailsMessage); }
private void setRolloutStatusDetails(final Slice<JpaRollout> rollouts) { final List<Long> rolloutIds = rollouts.getContent().stream().map(Rollout::getId).collect(Collectors.toList()); final Map<Long, List<TotalTargetCountActionStatus>> allStatesForRollout = getStatusCountItemForRollout( rolloutIds); if (allStatesForRollout != null) { rollouts.forEach(rollout -> { final TotalTargetCountStatus totalTargetCountStatus = new TotalTargetCountStatus( allStatesForRollout.get(rollout.getId()), rollout.getTotalTargets()); rollout.setTotalTargetCountStatus(totalTargetCountStatus); }); } }
private String getConfirmationQuestion(final Rollout rollout) { final Map<Status, Long> statusTotalCount = rollout.getTotalTargetCountStatus().getStatusTotalCountMap(); Long scheduledActions = statusTotalCount.get(Status.SCHEDULED); if (scheduledActions == null) { scheduledActions = 0L; } final Long runningActions = statusTotalCount.get(Status.RUNNING); String rolloutDetailsMessage = ""; if ((scheduledActions > 0) || (runningActions > 0)) { rolloutDetailsMessage = i18n.getMessage("message.delete.rollout.details", runningActions, scheduledActions); } return i18n.getMessage("message.delete.rollout", rollout.getName(), rolloutDetailsMessage); }
@Override public Optional<Rollout> getWithDetailedStatus(final long rolloutId) { final Optional<Rollout> rollout = get(rolloutId); if (!rollout.isPresent()) { return rollout; } List<TotalTargetCountActionStatus> rolloutStatusCountItems = rolloutStatusCache.getRolloutStatus(rolloutId); if (CollectionUtils.isEmpty(rolloutStatusCountItems)) { rolloutStatusCountItems = actionRepository.getStatusCountByRolloutId(rolloutId); rolloutStatusCache.putRolloutStatus(rolloutId, rolloutStatusCountItems); } final TotalTargetCountStatus totalTargetCountStatus = new TotalTargetCountStatus(rolloutStatusCountItems, rollout.get().getTotalTargets()); ((JpaRollout) rollout.get()).setTotalTargetCountStatus(totalTargetCountStatus); return rollout; }