private void updateGroupsChart(final List<RolloutGroup> savedGroups, final long totalTargetsCount) { final List<Long> targetsPerGroup = savedGroups.stream().map(group -> (long) group.getTotalTargets()) .collect(Collectors.toList()); groupsPieChart.setChartState(targetsPerGroup, totalTargetsCount); groupsLegendLayout.populateGroupsLegendByGroups(savedGroups); }
private void updateGroupsChart(final List<RolloutGroup> savedGroups, final long totalTargetsCount) { final List<Long> targetsPerGroup = savedGroups.stream().map(group -> (long) group.getTotalTargets()) .collect(Collectors.toList()); groupsPieChart.setChartState(targetsPerGroup, totalTargetsCount); groupsLegendLayout.populateGroupsLegendByGroups(savedGroups); }
@Override public boolean eval(final Rollout rollout, final RolloutGroup rolloutGroup, final String expression) { final long totalGroup = rolloutGroup.getTotalTargets(); if (totalGroup == 0) { // in case e.g. targets has been deleted we don't have any // actions left for this group, so the group is finished return true; } final long finished = this.actionRepository.countByRolloutIdAndRolloutGroupIdAndStatus(rollout.getId(), rolloutGroup.getId(), Action.Status.FINISHED); try { final Integer threshold = Integer.valueOf(expression); // calculate threshold return ((float) finished / (float) totalGroup) >= ((float) threshold / 100F); } catch (final NumberFormatException e) { LOGGER.error("Cannot evaluate condition expression " + expression, e); return false; } }
@Override public boolean eval(final Rollout rollout, final RolloutGroup rolloutGroup, final String expression) { final long totalGroup = rolloutGroup.getTotalTargets(); if (totalGroup == 0) { // in case e.g. targets has been deleted we don't have any // actions left for this group, so the group is finished return true; } final long finished = this.actionRepository.countByRolloutIdAndRolloutGroupIdAndStatus(rollout.getId(), rolloutGroup.getId(), Action.Status.FINISHED); try { final Integer threshold = Integer.valueOf(expression); // calculate threshold return ((float) finished / (float) totalGroup) >= ((float) threshold / 100F); } catch (final NumberFormatException e) { LOGGER.error("Cannot evaluate condition expression " + expression, e); return false; } }
/** * Populates the legend based on a list of groups. * * @param groups * List of groups with their name */ public void populateGroupsLegendByGroups(final List<RolloutGroup> groups) { loadingLabel.setVisible(false); for (int i = 0; i < getGroupsWithoutToBeContinuedLabel(groups.size()); i++) { final Component component = groupsLegend.getComponent(i); final Label label = (Label) component; if (groups.size() > i) { final int targetCount = groups.get(i).getTotalTargets(); final String groupName = groups.get(i).getName(); label.setValue(getTargetsInGroupMessage((long) targetCount, groupName)); label.setVisible(true); } else { label.setValue(""); label.setVisible(false); } } showOrHideToBeContinueLabel(groups); }
/** * Populates the legend based on a list of groups. * * @param groups * List of groups with their name */ public void populateGroupsLegendByGroups(final List<RolloutGroup> groups) { loadingLabel.setVisible(false); for (int i = 0; i < getGroupsWithoutToBeContinuedLabel(groups.size()); i++) { final Component component = groupsLegend.getComponent(i); final Label label = (Label) component; if (groups.size() > i) { final int targetCount = groups.get(i).getTotalTargets(); final String groupName = groups.get(i).getName(); label.setValue(getTargetsInGroupMessage((long) targetCount, groupName)); label.setVisible(true); } else { label.setValue(""); label.setVisible(false); } } showOrHideToBeContinueLabel(groups); }
if (RolloutGroupStatus.READY.equals(group.getStatus())) { readyGroups++; totalTargets += group.getTotalTargets(); continue; if (RolloutGroupStatus.READY.equals(filledGroup.getStatus())) { readyGroups++; totalTargets += filledGroup.getTotalTargets();
if (RolloutGroupStatus.READY.equals(group.getStatus())) { readyGroups++; totalTargets += group.getTotalTargets(); continue; if (RolloutGroupStatus.READY.equals(filledGroup.getStatus())) { readyGroups++; totalTargets += filledGroup.getTotalTargets();
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; }
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; }
body.setTargetPercentage(rolloutGroup.getTargetPercentage()); body.setTargetFilterQuery(rolloutGroup.getTargetFilterQuery()); body.setTotalTargets(rolloutGroup.getTotalTargets());