@Override public ExperimentList getExperiments(Collection<Experiment.ID> experimentIDs) { // TODO: Implement this properly as a single query using e.g. WHERE IN ExperimentList result = new ExperimentList(experimentIDs.size()); for (Experiment.ID experimentID : experimentIDs) { result.addExperiment(getExperiment(experimentID)); } return result; }
/** * {@inheritDoc} */ @Override public List<ExperimentDetail> getExperimentDetailsBase() { List<Experiment.ID> experimentIDs = cassandraRepository.getExperiments(); List<Experiment> exps = cassandraRepository.getExperiments(experimentIDs).getExperiments(); List<ExperimentDetail> details = new ArrayList<>(); exps.forEach(e -> details.add(new ExperimentDetail(e))); //add bucket information details.parallelStream().forEach(this::getBucketData); return details; }
/** * {@inheritDoc} */ @Override public ExperimentList getExperiments(Collection<Experiment.ID> experimentIDs) { LOGGER.debug("Getting experiments {}", experimentIDs); ExperimentList result = new ExperimentList(); try { if (!experimentIDs.isEmpty()) { Map<Experiment.ID, Experiment> experimentMap = getExperimentsMap(experimentIDs); List<Experiment> experiments = new ArrayList<>(experimentMap.values()); result.setExperiments(experiments); } } catch (Exception e) { LOGGER.error("Error while getting experiments {}", experimentIDs, e); throw new RepositoryException("Could not retrieve the experiments for the collection of experimentIDs", e); } return result; }
ExperimentList allExperiments = new ExperimentList(); for (Experiment experiment : experimentList.getExperiments()) { if (!experiment.getState().equals(TERMINATED) && !experiment.getState().equals(DELETED)) { allExperiments.addExperiment(experiment);
/** * {@inheritDoc} */ @Override public ExperimentList getPageExperiments(Application.Name applicationName, Page.Name pageName) { ExperimentList result = new ExperimentList(); if (applicationName == null || applicationName.toString().isEmpty() || pageName == null || pageName.toString().isEmpty()) { return result; } else { List<PageExperiment> pageExperiments = pagesRepository.getExperiments(applicationName, pageName); List<Experiment.ID> expIDList = new ArrayList<>(); if (!pageExperiments.isEmpty()) { for (PageExperiment pageExperiment : pageExperiments) { Experiment.ID experimentID = pageExperiment.getId(); expIDList.add(experimentID); } } result = cassandraRepository.getExperiments(expIDList); } return result; }
authorizedExperiments = new ExperimentList(); for (Experiment experiment : experimentList.getExperiments()) { if (experiment == null) { continue; authorizedExperiments.addExperiment(experiment); } else { try { authorization.checkUserPermissions(userName, applicationName, READ); authorizedExperiments.addExperiment(experiment); allowed.add(applicationName); } catch (AuthenticationException ignored) { authorizedExperiments.getExperiments(). parallelStream().filter(experiment -> favoriteList.contains(experiment.getID())) .forEach(experiment -> experiment.setFavorite(true)); List<Experiment> experimentsList = authorizedExperiments.getExperiments(); Map<String, Object> experimentResponse = experimentPaginationHelper .paginate(experimentsResponseJsonKey, BucketList bucketList = buckets.getBuckets(experimentID, false); ExperimentList exclusionExperimentList = mutex.getExclusions(experimentID); List<Experiment> exclusionList = exclusionExperimentList.getExperiments(); List<Experiment.ID> exclusionIdList = new ArrayList<>(); for (Experiment exclusionExperiment : exclusionList) {
/** * {@inheritDoc} */ @Override public ExperimentList getExclusions(Experiment.ID base) { LOGGER.debug("Getting exclusion list for {}", base); try { List<Exclusion> exclusions = mutexAccessor.getExclusions(base.getRawID()).all(); List<UUID> experimentIds = new ArrayList<>(); for (Exclusion exclusion : exclusions) experimentIds.add(exclusion.getPair()); List<com.intuit.wasabi.repository.cassandra.pojo.Experiment> experimentPojos = experimentAccessor.getExperiments(experimentIds).all(); List<Experiment> experiments = new ArrayList<>(); for (com.intuit.wasabi.repository.cassandra.pojo.Experiment experimentPojo : experimentPojos) { experiments.add(ExperimentHelper.makeExperiment(experimentPojo)); } ExperimentList experimentList = new ExperimentList(); experimentList.setExperiments(experiments); return experimentList; } catch (Exception e) { LOGGER.error("Error whil getting exclusion list for {}", base, e); throw new RepositoryException("Could not retrieve the exclusions for \"" + base + "\"", e); } }
/** * {@inheritDoc} */ public List<Experiment> getRecursiveMutualExclusions(Experiment experiment) { List<Experiment> visitedExperiments = new ArrayList<>(); Set<Experiment> unvisitedExperiments = new HashSet<>(); unvisitedExperiments.add(experiment); do { Set<Experiment> newUnvisitedExperiments = new HashSet<>(); for (Experiment tempExperiment : unvisitedExperiments) { visitedExperiments.add(tempExperiment); newUnvisitedExperiments.addAll( this.getExclusions(tempExperiment.getID()) .getExperiments() // Hack: We need to make experiments compatible, converting CassandraExperiments .parallelStream() .map(ce -> Experiment.from(ce).build()) .collect(Collectors.toList()) ); } unvisitedExperiments.addAll(newUnvisitedExperiments); unvisitedExperiments.removeAll(visitedExperiments); } while (!unvisitedExperiments.isEmpty()); return visitedExperiments; } }
ExperimentList result = new ExperimentList(); result.setExperiments(notMutex);