/** * Based on the type of the project, the sds_curnit_map generation request url is different. * * @see * net.sf.sail.webapp.service.offering.impl.OfferingServiceImpl#generateSdsOfferingFromParameters(net.sf.sail.webapp.domain.impl.OfferingParameters) */ @Override protected SdsOffering generateSdsOfferingFromParameters(OfferingParameters offeringParameters) throws ObjectNotFoundException { RunParameters runParameters = (RunParameters) offeringParameters; SdsOffering sdsOffering = new SdsOffering(); sdsOffering.setName(runParameters.getName()); Curnit curnit = runParameters.getProject().getCurnit(); sdsOffering.setSdsCurnit(curnit.getSdsCurnit()); Jnlp jnlp = (Jnlp) runParameters.getProject().accept(new ProjectJnlpVisitor()); if (jnlp == null) { List<Jnlp> jnlpList = this.jnlpDao.getList(); jnlp = jnlpList.get(0); } sdsOffering.setSdsJnlp(jnlp.getSdsJnlp()); // if this is an OTrunk project or POTrunk project, set the retrieveotmlurl // so that it gets passed to the generatecurnitmap request and the proper // curnitmap can be created. if (curnit instanceof OtmlModuleImpl) { sdsOffering.setRetrieveContentUrl(((OtmlModuleImpl) curnit).getRetrieveotmlurl()); } this.sdsOfferingDao.save(sdsOffering); return sdsOffering; }
/** * Creates a run based on input parameters provided. * * @param runParameters * @return The run created. * @throws CurnitNotFoundException */ @Transactional(rollbackFor = {HttpStatusCodeException.class}) public Run createRun(RunParameters runParameters) throws ObjectNotFoundException { Project project = runParameters.getProject(); // Project projectCopy = projectService.copyProject(project); Run run = new RunImpl(); run.setEndtime(null); run.setStarttime(Calendar.getInstance().getTime()); run.setRuncode(generateUniqueRunCode()); run.setOwners(runParameters.getOwners()); run.setMaxWorkgroupSize(runParameters.getMaxWorkgroupSize()); run.setProject(project); // use the project name for the run name run.setName("" + runParameters.getProject().getName()); Calendar reminderCal = Calendar.getInstance(); reminderCal.add(Calendar.DATE, 30); run.setArchiveReminderTime(reminderCal.getTime()); if (!(run.getProject() instanceof ExternalProject)) { if (run.getProject().getProjectType() != ProjectType.ROLOO && run.getProject().getProjectType() != ProjectType.LD) { run.setSdsOffering(generateSdsOfferingFromParameters(runParameters)); } } Set<String> periodNames = runParameters.getPeriodNames(); if (periodNames != null) { Set<Group> periods = new TreeSet<Group>(); for (String periodName : runParameters.getPeriodNames()) { Group group = new PersistentGroup(); group.setName(periodName); this.groupDao.save(group); periods.add(group); } run.setPeriods(periods); } run.setPostLevel(runParameters.getPostLevel()); /* if this is an LD project take snapshot of project for run and set versionId if(run.getProject().getProjectType()==ProjectType.LD){ String requester = run.getOwners().iterator().next().getUserDetails().getUsername(); String versionId = this.projectService.takeSnapshot(run.getProject(), requester, "For Run " + run.getName()); if(versionId==null || versionId.equals("failed")){ throw new ObjectNotFoundException("Snapshot of project failed when creating the run.", RunImpl.class); } else{ run.setVersionId(versionId); } } */ this.runDao.save(run); this.aclService.addPermission(run, BasePermission.ADMINISTRATION); return run; }