Job toPb() { Job jobPb = new Job(); jobPb.setEtag(etag); jobPb.setId(generatedId); jobPb.setSelfLink(selfLink); jobPb.setUserEmail(userEmail); if (jobId != null) { jobPb.setJobReference(jobId.toPb()); } if (status != null) { jobPb.setStatus(status.toPb()); } if (statistics != null) { jobPb.setStatistics(statistics.toPb()); } if (configuration != null) { jobPb.setConfiguration(configuration.toPb()); } return jobPb; }
.setJobReference(queryJob.toPb()) .setId(JOB) .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); jobResponsePb.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); GetQueryResultsResponse responsePb =
.setJobReference(queryJob.toPb()) .setId(JOB) .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); jobResponsePb.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); GetQueryResultsResponse responsePb =
@Override public Job apply(JobList.Jobs jobPb) { JobStatus statusPb = jobPb.getStatus() != null ? jobPb.getStatus() : new JobStatus(); if (statusPb.getState() == null) { statusPb.setState(jobPb.getState()); } if (statusPb.getErrorResult() == null) { statusPb.setErrorResult(jobPb.getErrorResult()); } return new Job() .setConfiguration(jobPb.getConfiguration()) .setId(jobPb.getId()) .setJobReference(jobPb.getJobReference()) .setKind(jobPb.getKind()) .setStatistics(jobPb.getStatistics()) .setStatus(statusPb) .setUserEmail(jobPb.getUserEmail()); } }));
@HandleAfterCreate public void addNewRemoteJob(Job job) { remoteJobDispatcher.sendRequest(job); remoteJobDispatcher.waitForTheResult(job); } class RemoteJobDispatcher { @Async public void waitForTheResult(Job job) { while(true) { status = askRemoteServerForJobStatus(job) if (status != IN_PROGRESS) { job.setStatus(status); jobRepository.save(job); return; } sleep(2000); } } }
@Test public void testGetJobSucceeds() throws Exception { Job testJob = new Job(); testJob.setStatus(new JobStatus()); when(response.getContentType()).thenReturn(Json.MEDIA_TYPE); when(response.getStatusCode()).thenReturn(200); when(response.getContent()).thenReturn(toStream(testJob)); BigQueryServicesImpl.JobServiceImpl jobService = new BigQueryServicesImpl.JobServiceImpl(bigquery); JobReference jobRef = new JobReference().setProjectId("projectId").setJobId("jobId"); Job job = jobService.getJob(jobRef, Sleeper.DEFAULT, BackOff.ZERO_BACKOFF); assertEquals(testJob, job); verify(response, times(1)).getStatusCode(); verify(response, times(1)).getContent(); verify(response, times(1)).getContentType(); }
/** Tests that {@link BigQueryServicesImpl.JobServiceImpl#pollJob} returns UNKNOWN. */ @Test public void testPollJobUnknown() throws IOException, InterruptedException { Job testJob = new Job(); testJob.setStatus(new JobStatus()); when(response.getContentType()).thenReturn(Json.MEDIA_TYPE); when(response.getStatusCode()).thenReturn(200); when(response.getContent()).thenReturn(toStream(testJob)); BigQueryServicesImpl.JobServiceImpl jobService = new BigQueryServicesImpl.JobServiceImpl(bigquery); JobReference jobRef = new JobReference().setProjectId("projectId").setJobId("jobId"); Job job = jobService.pollJob(jobRef, Sleeper.DEFAULT, BackOff.STOP_BACKOFF); assertEquals(null, job); verify(response, times(1)).getStatusCode(); verify(response, times(1)).getContent(); verify(response, times(1)).getContentType(); }
/** Tests that {@link BigQueryServicesImpl.JobServiceImpl#pollJob} succeeds. */ @Test public void testPollJobSucceeds() throws IOException, InterruptedException { Job testJob = new Job(); testJob.setStatus(new JobStatus().setState("DONE")); when(response.getContentType()).thenReturn(Json.MEDIA_TYPE); when(response.getStatusCode()).thenReturn(200); when(response.getContent()).thenReturn(toStream(testJob)); BigQueryServicesImpl.JobServiceImpl jobService = new BigQueryServicesImpl.JobServiceImpl(bigquery); JobReference jobRef = new JobReference().setProjectId("projectId").setJobId("jobId"); Job job = jobService.pollJob(jobRef, Sleeper.DEFAULT, BackOff.ZERO_BACKOFF); assertEquals(testJob, job); verify(response, times(1)).getStatusCode(); verify(response, times(1)).getContent(); verify(response, times(1)).getContentType(); }
/** Tests that {@link BigQueryServicesImpl.JobServiceImpl#pollJob} fails. */ @Test public void testPollJobFailed() throws IOException, InterruptedException { Job testJob = new Job(); testJob.setStatus(new JobStatus().setState("DONE").setErrorResult(new ErrorProto())); when(response.getContentType()).thenReturn(Json.MEDIA_TYPE); when(response.getStatusCode()).thenReturn(200); when(response.getContent()).thenReturn(toStream(testJob)); BigQueryServicesImpl.JobServiceImpl jobService = new BigQueryServicesImpl.JobServiceImpl(bigquery); JobReference jobRef = new JobReference().setProjectId("projectId").setJobId("jobId"); Job job = jobService.pollJob(jobRef, Sleeper.DEFAULT, BackOff.ZERO_BACKOFF); assertEquals(testJob, job); verify(response, times(1)).getStatusCode(); verify(response, times(1)).getContent(); verify(response, times(1)).getContentType(); }
@Override public void startLoadJob(JobReference jobRef, JobConfigurationLoad loadConfig) throws IOException { synchronized (allJobs) { verifyUniqueJobId(jobRef.getJobId()); Job job = new Job(); job.setJobReference(jobRef); job.setConfiguration(new JobConfiguration().setLoad(loadConfig)); job.setKind(" bigquery#job"); job.setStatus(new JobStatus().setState("PENDING")); // Copy the files to a new location for import, as the temporary files will be deleted by // the caller. if (loadConfig.getSourceUris().size() > 0) { ImmutableList.Builder<ResourceId> sourceFiles = ImmutableList.builder(); ImmutableList.Builder<ResourceId> loadFiles = ImmutableList.builder(); for (String filename : loadConfig.getSourceUris()) { sourceFiles.add(FileSystems.matchNewResource(filename, false /* isDirectory */)); loadFiles.add( FileSystems.matchNewResource( filename + ThreadLocalRandom.current().nextInt(), false /* isDirectory */)); } FileSystems.copy(sourceFiles.build(), loadFiles.build()); filesForLoadJobs.put(jobRef.getProjectId(), jobRef.getJobId(), loadFiles.build()); } allJobs.put(jobRef.getProjectId(), jobRef.getJobId(), new JobInfo(job)); } }
Job toPb() { Job jobPb = new Job(); jobPb.setEtag(etag); jobPb.setId(generatedId); jobPb.setSelfLink(selfLink); jobPb.setUserEmail(userEmail); if (jobId != null) { jobPb.setJobReference(jobId.toPb()); } if (status != null) { jobPb.setStatus(status.toPb()); } if (statistics != null) { jobPb.setStatistics(statistics.toPb()); } jobPb.setConfiguration(configuration.toPb()); return jobPb; }
Job toPb() { Job jobPb = new Job(); jobPb.setEtag(etag); jobPb.setId(generatedId); jobPb.setSelfLink(selfLink); jobPb.setUserEmail(userEmail); if (jobId != null) { jobPb.setJobReference(jobId.toPb()); } if (status != null) { jobPb.setStatus(status.toPb()); } if (statistics != null) { jobPb.setStatistics(statistics.toPb()); } if (configuration != null) { jobPb.setConfiguration(configuration.toPb()); } return jobPb; }
Job toPb() { Job jobPb = new Job(); jobPb.setEtag(etag); jobPb.setId(generatedId); jobPb.setSelfLink(selfLink); jobPb.setUserEmail(userEmail); if (jobId != null) { jobPb.setJobReference(jobId.toPb()); } if (status != null) { jobPb.setStatus(status.toPb()); } if (statistics != null) { jobPb.setStatistics(statistics.toPb()); } jobPb.setConfiguration(configuration.toPb()); return jobPb; }
@Override public void startExtractJob(JobReference jobRef, JobConfigurationExtract extractConfig) throws IOException { checkArgument( "AVRO".equals(extractConfig.getDestinationFormat()), "Only extract to AVRO is supported"); synchronized (allJobs) { verifyUniqueJobId(jobRef.getJobId()); ++numExtractJobCalls; Job job = new Job(); job.setJobReference(jobRef); job.setConfiguration(new JobConfiguration().setExtract(extractConfig)); job.setKind(" bigquery#job"); job.setStatus(new JobStatus().setState("PENDING")); allJobs.put(jobRef.getProjectId(), jobRef.getJobId(), new JobInfo(job)); } }
@Override public void startQueryJob(JobReference jobRef, JobConfigurationQuery query) { synchronized (allJobs) { Job job = new Job(); job.setJobReference(jobRef); job.setConfiguration(new JobConfiguration().setQuery(query)); job.setKind(" bigquery#job"); job.setStatus(new JobStatus().setState("PENDING")); allJobs.put(jobRef.getProjectId(), jobRef.getJobId(), new JobInfo(job)); } }
@Override public void startCopyJob(JobReference jobRef, JobConfigurationTableCopy copyConfig) throws IOException { synchronized (allJobs) { verifyUniqueJobId(jobRef.getJobId()); Job job = new Job(); job.setJobReference(jobRef); job.setConfiguration(new JobConfiguration().setCopy(copyConfig)); job.setKind(" bigquery#job"); job.setStatus(new JobStatus().setState("PENDING")); allJobs.put(jobRef.getProjectId(), jobRef.getJobId(), new JobInfo(job)); } }
job.job.getStatus().setState("RUNNING"); } else if (job.getJobCount == 2 * GET_JOBS_TRANSITION_INTERVAL + 1) { job.job.setStatus(runJob(job.job));
@Override public Job apply(JobList.Jobs jobPb) { JobStatus statusPb = jobPb.getStatus() != null ? jobPb.getStatus() : new JobStatus(); if (statusPb.getState() == null) { statusPb.setState(jobPb.getState()); } if (statusPb.getErrorResult() == null) { statusPb.setErrorResult(jobPb.getErrorResult()); } return new Job() .setConfiguration(jobPb.getConfiguration()) .setId(jobPb.getId()) .setJobReference(jobPb.getJobReference()) .setKind(jobPb.getKind()) .setStatistics(jobPb.getStatistics()) .setStatus(statusPb) .setUserEmail(jobPb.getUserEmail()); } }));
@Override public Job apply(JobList.Jobs jobPb) { JobStatus statusPb = jobPb.getStatus() != null ? jobPb.getStatus() : new JobStatus(); if (statusPb.getState() == null) { statusPb.setState(jobPb.getState()); } if (statusPb.getErrorResult() == null) { statusPb.setErrorResult(jobPb.getErrorResult()); } return new Job() .setConfiguration(jobPb.getConfiguration()) .setId(jobPb.getId()) .setJobReference(jobPb.getJobReference()) .setKind(jobPb.getKind()) .setStatistics(jobPb.getStatistics()) .setStatus(statusPb) .setUserEmail(jobPb.getUserEmail()); } }));
@Override public Job apply(JobList.Jobs jobPb) { JobStatus statusPb = jobPb.getStatus() != null ? jobPb.getStatus() : new JobStatus(); if (statusPb.getState() == null) { statusPb.setState(jobPb.getState()); } if (statusPb.getErrorResult() == null) { statusPb.setErrorResult(jobPb.getErrorResult()); } return new Job() .setConfiguration(jobPb.getConfiguration()) .setId(jobPb.getId()) .setJobReference(jobPb.getJobReference()) .setKind(jobPb.getKind()) .setStatistics(jobPb.getStatistics()) .setStatus(statusPb) .setUserEmail(jobPb.getUserEmail()); } }));