private void runExperimentSeries( ScenarioInstance scenarioInstance, Map<MeasurementSpecification, List<ExperimentSeriesDefinition>> experimentSeries) { boolean mecAcquired = false; try { experimentController.acquireMEController(); mecAcquired = true; for (MeasurementSpecification measSpec : experimentSeries.keySet()) { experimentController.initialize( EngineTools.getConstantParameterValues(measSpec.getInitializationAssignemts()), scenarioInstance.getScenarioDefinition().getMeasurementEnvironmentDefinition()); for (ExperimentSeriesDefinition esd : experimentSeries.get(measSpec)) { ExperimentSeries series = scenarioInstance.getExperimentSeries(esd.getName()); if (series == null) { series = EntityFactory.createExperimentSeries(esd); scenarioInstance.getExperimentSeriesList().add(series); series.setScenarioInstance(scenarioInstance); persistenceProvider.store(series); } experimentSeriesManager.runExperimentSeries(series); } } } catch (Exception e) { throw new RuntimeException("Failed executing experiments!", e); } finally { if (mecAcquired) { experimentController.releaseMEController(); } } }
private ExperimentSeries getSeries(ScenarioInstance instance, String name) throws DataNotFoundException { for (ExperimentSeries series : instance.getExperimentSeriesList()) { if (series.getName().equals(name)) { return series; } } throw new DataNotFoundException("No ExperimentSeries '" + name + "' found.."); }
/** @return a dummy scenario instance */ public static ScenarioInstance createDummyScenarioInstance() { scenarioDefinition = loadScenarioDefinition(); ScenarioInstance scenarioInstance = EntityFactory.createScenarioInstance(scenarioDefinition, "Dummy"); for (ExperimentSeries es : createDummyExperimentSeries()) { scenarioInstance.getExperimentSeriesList().add(es); es.setScenarioInstance(scenarioInstance); } return scenarioInstance; }
private static List<ExperimentSeries> createDummyExperimentSeries() { List<ExperimentSeries> seriesList = new LinkedList<ExperimentSeries>(); for (ExperimentSeriesDefinition esd : scenarioDefinition.getMeasurementSpecifications().get(0).getExperimentSeriesDefinitions()) { ExperimentSeries es = EntityFactory.createExperimentSeries(esd); for (ExperimentSeriesRun run : createDummyExperimentSeriesRuns(_10)) { es.getExperimentSeriesRuns().add(run); run.setExperimentSeries(es); } seriesList.add(es); } return seriesList; }
private ExperimentSeriesRun getRun(ExperimentSeries series, Long timestamp) throws DataNotFoundException { for (ExperimentSeriesRun run : series.getExperimentSeriesRuns()) { System.out.println(run.getTimestamp() + " " + timestamp); if (timestamp.equals(run.getTimestamp())) { return run; } } throw new DataNotFoundException( "No ExperimentSeriesRun with timestamp '" + timestamp + "' found.."); }
/** * Creates a SharedScenarioInstance out of a ScenarioInstance which can send to the FrontEnd. * * @param instance * @return */ private SharedScenarioInstance convertInstance(ScenarioInstance instance) { SharedScenarioInstance retInstance = new SharedScenarioInstance(); retInstance.setScenarioName(instance.getName()); retInstance.setControllerUrl(instance.getMeasurementEnvironmentUrl()); for (ExperimentSeries series : instance.getExperimentSeriesList()) { SharedExperimentSeries sharedSeries = new SharedExperimentSeries(); sharedSeries.setExperimentName(series.getName()); for (ExperimentSeriesRun run : series.getExperimentSeriesRuns()) { SharedExperimentRuns sharedRun = new SharedExperimentRuns(); sharedRun.setTimestamp(run.getTimestamp()); sharedRun.setLabel(run.getLabel()); sharedSeries.addExperimentRun(sharedRun); } retInstance.addExperimentSeries(sharedSeries); } return retInstance; }