private long countOverlappingTargetsWithPreviousGroups(final String baseFilter, final List<RolloutGroup> groups, final RolloutGroup group, final int groupIndex, final Map<String, Long> targetFilterCounts) { // there can't be overlapping targets in the first group if (groupIndex == 0) { return 0; } final List<RolloutGroup> previousGroups = groups.subList(0, groupIndex); final String overlappingTargetsFilter = RolloutHelper.getOverlappingWithGroupsTargetFilter(baseFilter, previousGroups, group); if (targetFilterCounts.containsKey(overlappingTargetsFilter)) { return targetFilterCounts.get(overlappingTargetsFilter); } else { final long overlappingTargets = targetManagement.countByRsql(overlappingTargetsFilter); targetFilterCounts.put(overlappingTargetsFilter, overlappingTargets); return overlappingTargets; } }
@Override @Async public ListenableFuture<RolloutGroupsValidation> validateTargetsInGroups(final List<RolloutGroupCreate> groups, final String targetFilter, final Long createdAt) { final String baseFilter = RolloutHelper.getTargetFilterQuery(targetFilter, createdAt); final long totalTargets = targetManagement.countByRsql(baseFilter); if (totalTargets == 0) { throw new ConstraintDeclarationException("Rollout target filter does not match any targets"); } return new AsyncResult<>(validateTargetsInGroups( groups.stream().map(RolloutGroupCreate::build).collect(Collectors.toList()), baseFilter, totalTargets)); }
@Override @Async public ListenableFuture<RolloutGroupsValidation> validateTargetsInGroups(final List<RolloutGroupCreate> groups, final String targetFilter, final Long createdAt) { final String baseFilter = RolloutHelper.getTargetFilterQuery(targetFilter, createdAt); final long totalTargets = targetManagement.countByRsql(baseFilter); if (totalTargets == 0) { throw new ConstraintDeclarationException("Rollout target filter does not match any targets"); } return new AsyncResult<>(validateTargetsInGroups( groups.stream().map(RolloutGroupCreate::build).collect(Collectors.toList()), baseFilter, totalTargets)); }
@Override @Async public ListenableFuture<RolloutGroupsValidation> validateTargetsInGroups(final List<RolloutGroupCreate> groups, final String targetFilter, final Long createdAt) { final String baseFilter = RolloutHelper.getTargetFilterQuery(targetFilter, createdAt); final long totalTargets = targetManagement.countByRsql(baseFilter); if (totalTargets == 0) { throw new ConstraintDeclarationException("Rollout target filter does not match any targets"); } return new AsyncResult<>(validateTargetsInGroups( groups.stream().map(RolloutGroupCreate::build).collect(Collectors.toList()), baseFilter, totalTargets)); }
protected long calculateRemainingTargets(final List<RolloutGroup> groups, final String targetFilter, final Long createdAt) { final String baseFilter = RolloutHelper.getTargetFilterQuery(targetFilter, createdAt); final long totalTargets = targetManagement.countByRsql(baseFilter); if (totalTargets == 0) { throw new ConstraintDeclarationException("Rollout target filter does not match any targets"); } final RolloutGroupsValidation validation = validateTargetsInGroups(groups, baseFilter, totalTargets); return totalTargets - validation.getTargetsInGroups(); }
private JpaRollout createRollout(final JpaRollout rollout) { final Long totalTargets = targetManagement.countByRsql(rollout.getTargetFilterQuery()); if (totalTargets == 0) { throw new ValidationException("Rollout does not match any existing targets"); } rollout.setTotalTargets(totalTargets); return rolloutRepository.save(rollout); }
private JpaRollout createRollout(final JpaRollout rollout) { final Long totalTargets = targetManagement.countByRsql(rollout.getTargetFilterQuery()); if (totalTargets == 0) { throw new ValidationException("Rollout does not match any existing targets"); } rollout.setTotalTargets(totalTargets); return rolloutRepository.save(rollout); }
private void onTargetFilterChange(final ValueChangeEvent event) { final String filterQueryString = getTargetFilterQuery(); if (StringUtils.isEmpty(filterQueryString)) { totalTargetsCount = 0L; groupsLegendLayout.populateTotalTargets(null); defineGroupsLayout.setTargetFilter(null); } else { totalTargetsCount = targetManagement.countByRsql(filterQueryString); groupsLegendLayout.populateTotalTargets(totalTargetsCount); defineGroupsLayout.setTargetFilter(filterQueryString); } noOfGroups.markAsDirty(); onGroupNumberChange(event); }
private void onTargetFilterChange(final ValueChangeEvent event) { final String filterQueryString = getTargetFilterQuery(); if (StringUtils.isEmpty(filterQueryString)) { totalTargetsCount = 0L; groupsLegendLayout.populateTotalTargets(null); defineGroupsLayout.setTargetFilter(null); } else { totalTargetsCount = targetManagement.countByRsql(filterQueryString); groupsLegendLayout.populateTotalTargets(totalTargetsCount); defineGroupsLayout.setTargetFilter(filterQueryString); } noOfGroups.markAsDirty(); onGroupNumberChange(event); }
@Override public int size() { long size = 0; if (!StringUtils.isEmpty(filterQuery)) { size = getTargetManagement().countByRsql(filterQuery); } getFilterManagementUIState().setTargetsCountAll(size); if (size > SPUIDefinitions.MAX_TABLE_ENTRIES) { getFilterManagementUIState().setTargetsTruncated(size - SPUIDefinitions.MAX_TABLE_ENTRIES); size = SPUIDefinitions.MAX_TABLE_ENTRIES; } else { getFilterManagementUIState().setTargetsTruncated(null); } return (int) size; }
@Override public int size() { long size = 0; if (!StringUtils.isEmpty(filterQuery)) { size = getTargetManagement().countByRsql(filterQuery); } getFilterManagementUIState().setTargetsCountAll(size); if (size > SPUIDefinitions.MAX_TABLE_ENTRIES) { getFilterManagementUIState().setTargetsTruncated(size - SPUIDefinitions.MAX_TABLE_ENTRIES); size = SPUIDefinitions.MAX_TABLE_ENTRIES; } else { getFilterManagementUIState().setTargetsTruncated(null); } return (int) size; }
totalTargetsCount = targetManagement.countByRsql(rollout.getTargetFilterQuery()); groupsLegendLayout.populateTotalTargets(totalTargetsCount); } else {
totalTargetsCount = targetManagement.countByRsql(rollout.getTargetFilterQuery()); groupsLegendLayout.populateTotalTargets(totalTargetsCount); } else {