Project

General

Profile

« Previous | Next » 

Revision 5013

Added by daigle almost 15 years ago

Add the ability to delete a scheduled workflow (move status to deleted in database)

View differences:

SchedulerService.java
198 198
        try {
199 199
			jobClass = (Class<Job>) Class.forName(jobClassName);
200 200

  
201
			String startTimeStr = DateUtil.getHumanReadable(startCal, true);
201
			String startTimeStr = DateUtil.getHumanReadable(startCal);
202 202
			logMetacat.info("SchedulerService.scheduleJob - Scheduling job -- name: "
203 203
					+ jobName + ", class: " + jobClassName + ", start time: "
204 204
					+ startTimeStr + ", interval value: " + intervalValue
......
248 248
	 */
249 249
	public String unScheduleJob(String jobName, String username,
250 250
			String[] groups) throws ServiceException {
251
		
252
		ScheduledJobDAO jobDAO = null;
251 253
		try {
252 254
			ScheduledJobAccess jobAccess = new ScheduledJobAccess();
253
			ScheduledJobDAO jobDAO = jobAccess.getJobByName(jobName);
255
			jobDAO = jobAccess.getJobByName(jobName);
254 256
			if (jobDAO == null) {
255 257
				throw new ServiceException("SchedulerService.unscheduleJob - Could " 
256 258
						+ "not find job with name: " + jobName);
......
267 269
							+ "scheduled job because of service issue: " + se.getMessage());
268 270
		} catch (AccessException ae) {
269 271
			throw new ServiceException("SchedulerService.unscheduleJob - Could not create "
270
							+ "scheduled job because of db access issue: ", ae);
272
							+ "scheduled job : " + jobDAO.getName() + " because of db access issue: ", ae);
271 273
		}
272 274
		
273 275
		return "Unscheduled: " + jobName;
......
339 341
	        			+ jobDAO.getClassName() + " : " + cnfe.getMessage());
340 342
	        } 
341 343
	        
342
	        String startTimeStr = DateUtil.getHumanReadable(startCal, true);
344
	        String startTimeStr = DateUtil.getHumanReadable(startCal);
343 345
	        logMetacat.info("SchedulerService.rescheduleJob - name: " + jobDAO.getName() + ", class: " + jobClassName 
344 346
	        		+ ", start time: " + startTimeStr + ", interval value: " + jobDAO.getIntervalValue() 
345 347
	        		+ ", interval unit: " + jobDAO.getIntervalUnit());  
......
353 355
			
354 356
		} catch (AccessException ae) {
355 357
			throw new ServiceException("SchedulerService.reScheduleJob - Could not reschedule "
356
					+ "job because of db access issue: ", ae);
358
					+ "job : " + jobDAO.getName() + " because of db access issue: ", ae);
357 359
		} catch (UtilException ue) {
358 360
			throw new ServiceException("SchedulerService.reScheduleJob - Could not reschedule "
359
					+ "job due to a utility issue: " + ue.getMessage());
361
					+ "job : " + jobDAO.getName() + " due to a utility issue: " + ue.getMessage());
360 362
		}
361 363
        		
362 364
		return "Resheduled: " + jobDAO.getName();
363 365
	}
366

  
367
	/**
368
	 * Remove the job from the scheduler and set the job status to deleted in the database
369
	 * @param jobName
370
	 *            the string holding the name of the job to delete
371
	 * @param username
372
	 *            the user name
373
	 * @param groups
374
	 *            the user's group name
375
	 * @return a message saying that the job was deleted
376
	 */
377
	public String deleteJob(String jobName, String username,
378
			String[] groups) throws ServiceException {
379
		
380
		ScheduledJobDAO jobDAO = null;
381
		try {	
382
			ScheduledJobAccess jobAccess = new ScheduledJobAccess();
383
			jobDAO = jobAccess.getJobByName(jobName);
384
		} catch (AccessException ae) {
385
			throw new ServiceException("SchedulerService.deleteJob - Could not delete "
386
					+ "scheduled job : " + jobDAO.getName() + " because of db access issue: ", ae);
387
		}
388
		
389
		return deleteJob(jobDAO, username, groups);
390
	}
364 391
	
365 392
	/**
366 393
	 * Remove the job from the scheduler and set the job status to deleted in the database
367 394
	 * @param jobDAO
368
	 *            the job data object holding the information about the job to
369
	 *            delete
395
	 *            the job data object holding the information about the job to delete
370 396
	 * @param username
371 397
	 *            the user name
372 398
	 * @param groups
373 399
	 *            the user's group name
374 400
	 * @return a message saying that the job was deleted
375 401
	 */
376
	public String deleteJob(String jobName, String username,
402
	public String deleteJob(ScheduledJobDAO jobDAO, String username,
377 403
			String[] groups) throws ServiceException {
378 404

  
379 405
		String groupName = "";
380 406
		try {
381
			ScheduledJobAccess jobAccess = new ScheduledJobAccess();
382
			ScheduledJobDAO jobDAO = jobAccess.getJobByName(jobName);
383
			groupName = jobDAO.getGroupName();
384 407

  
385
			sched.deleteJob(jobName, groupName);
408
			sched.deleteJob(jobDAO.getName(), groupName);
386 409
			
387 410
			jobDAO.setStatus(StatusUtil.DELETED);
411
			ScheduledJobAccess jobAccess = new ScheduledJobAccess();
388 412
			jobAccess.updateJobStatus(jobDAO);
389 413
		} catch (SchedulerException se) {
390
			throw new ServiceException("SchedulerService.deleteJob - Could not delete job: " + jobName
414
			throw new ServiceException("SchedulerService.deleteJob - Could not delete job: " + jobDAO.getName()
391 415
							+ " for group: " + groupName + " : " + se.getMessage());
392 416
		} catch (AccessException ae) {
393 417
			throw new ServiceException("SchedulerService.deleteJob - Could not delete "
394
					+ "scheduled job because of db access issue: ", ae);
418
					+ "scheduled job: " + jobDAO.getName() + " because of db access issue: ", ae);
395 419
		}
396 420
		
397
		return "Deleted: " + jobName;
421
		return "Deleted: " + jobDAO.getName();
398 422
	}
399 423
	
400 424
	/**
......
484 508
			String startTimeString = null;
485 509
			try {
486 510
				startTimeString = 
487
					DateUtil.getHumanReadable(scheduledJobDAO.getStartTime(), true);
511
					DateUtil.getHumanReadable(scheduledJobDAO.getStartTime());
488 512
			} catch (UtilException ue) {
489 513
				throw new ServiceException("SchedulerService.jobToXML - error getting human readable date for job: " 
490 514
						+ scheduledJobDAO.getId() + " ; " + ue.getMessage());
491 515
			}
492
			jobXML += "<startTime>" + startTimeString
493
					+ "</startTime>";
494
			jobXML += "<intervalValue>" + scheduledJobDAO.getIntervalValue()
495
					+ "</intervalValue>";
496
			jobXML += "<intervalUnit>" + scheduledJobDAO.getIntervalUnit()
497
					+ "</intervalUnit>";
516
			jobXML += "<startTime>" + startTimeString + "</startTime>";
517
			
518
			String endTimeString = null;
519
			try {
520
				if (scheduledJobDAO.getEndTime() != null) {
521
					endTimeString = DateUtil.getHumanReadable(scheduledJobDAO.getEndTime());
522
				}
523
			} catch (UtilException ue) {
524
				throw new ServiceException("SchedulerService.jobToXML - error getting human readable date for job: " 
525
						+ scheduledJobDAO.getId() + " ; " + ue.getMessage());
526
			}
527
			jobXML += "<endTime>" + endTimeString + "</endTime>";
528
			jobXML += "<intervalValue>" + scheduledJobDAO.getIntervalValue() + "</intervalValue>";
529
			jobXML += "<intervalUnit>" + scheduledJobDAO.getIntervalUnit() + "</intervalUnit>";
498 530

  
499 531
			HashMap<String, ScheduledJobParamDAO> jobParams = scheduledJobDAO
500 532
					.getAllJobParams();

Also available in: Unified diff