use of com.google.cloud.video.transcoder.v1.Job in project pentaho-platform by pentaho.
the class SchedulerService method getJobs.
public List<Job> getJobs() throws SchedulerException {
IPentahoSession session = getSession();
// this authentication wasn't matching with the job user name,
final String principalName = session.getName();
// changed to get name via the current session
final Boolean canAdminister = canAdminister(session);
List<Job> jobs = getScheduler().getJobs(new IJobFilter() {
@Override
public boolean accept(Job job) {
if (canAdminister) {
return !IBlockoutManager.BLOCK_OUT_JOB_NAME.equals(job.getJobName());
}
return principalName.equals(job.getUserName());
}
});
return jobs;
}
use of com.google.cloud.video.transcoder.v1.Job in project pentaho-platform by pentaho.
the class SchedulerService method getJobInfo.
public Job getJobInfo(String jobId) throws SchedulerException {
Job job = getJob(jobId);
if (job == null) {
return null;
}
if (canAdminister() || getSession().getName().equals(job.getUserName())) {
for (String key : job.getJobParams().keySet()) {
Serializable value = job.getJobParams().get(key);
if (value != null && value.getClass() != null && value.getClass().isArray()) {
String[] sa = (new String[0]).getClass().cast(value);
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < sa.length; i++) {
list.add(sa[i]);
}
job.getJobParams().put(key, list);
}
}
return job;
} else {
throw new RuntimeException("Job not found or improper credentials for access");
}
}
use of com.google.cloud.video.transcoder.v1.Job in project pentaho-platform by pentaho.
the class RepositoryCleanerSystemListener method unscheduleJob.
private void unscheduleJob(IScheduler scheduler, List<Job> jobs) throws SchedulerException {
for (Job job : jobs) {
logger.info("Removing job with id: " + job.getJobId());
scheduler.removeJob(job.getJobId());
}
}
use of com.google.cloud.video.transcoder.v1.Job in project pentaho-platform by pentaho.
the class RepositoryCleanerSystemListener method rescheduleIfNecessary.
private void rescheduleIfNecessary(IScheduler scheduler, List<Job> jobs) throws SchedulerException {
JobTrigger trigger = findJobTrigger();
if (trigger == null) {
return;
}
List<Job> matched = new ArrayList<Job>(jobs.size());
for (Job job : jobs) {
JobTrigger tr = job.getJobTrigger();
// unfortunately, JobTrigger does not override equals
if (trigger.getClass() != tr.getClass()) {
logger.info("Removing job with id: " + job.getJobId());
scheduler.removeJob(job.getJobId());
} else {
matched.add(job);
}
}
if (matched.isEmpty()) {
logger.info("Need to re-schedule job");
scheduleJob(scheduler);
}
}
use of com.google.cloud.video.transcoder.v1.Job in project pentaho-platform by pentaho.
the class PentahoPlatformExporterTest method testExportSchedules.
@Test
public void testExportSchedules() throws Exception {
List<Job> jobs = new ArrayList<>();
ComplexJobTrigger trigger = mock(ComplexJobTrigger.class);
JobTrigger unknownTrigger = mock(JobTrigger.class);
Job job1 = mock(Job.class);
Job job2 = mock(Job.class);
Job job3 = mock(Job.class);
jobs.add(job1);
jobs.add(job2);
jobs.add(job3);
when(scheduler.getJobs(null)).thenReturn(jobs);
when(job1.getJobName()).thenReturn(EmbeddedVersionCheckSystemListener.VERSION_CHECK_JOBNAME);
when(job2.getJobName()).thenReturn("job 2");
when(job2.getJobTrigger()).thenReturn(trigger);
when(job3.getJobName()).thenReturn("job 3");
when(job3.getJobTrigger()).thenReturn(unknownTrigger);
exporterSpy.exportSchedules();
verify(scheduler).getJobs(null);
assertEquals(1, exporterSpy.getExportManifest().getScheduleList().size());
}
Aggregations