Ejemplo n.º 1
0
    def list_jobs(self,
                  project_id,
                  region,
                  page_size=None,
                  cluster_name=None,
                  job_state_matcher=None):
        self._check_region_matches_endpoint(region)

        if page_size:
            raise NotImplementedError('page_size is not mocked')

        for job_key, job in self.mock_jobs.items():
            job_project_id, job_region, job_id = job_key

            if job_project_id != project_id:
                continue

            if job_region != region:
                continue

            if cluster_name and job.placement.cluster_name != cluster_name:
                continue

            if job_state_matcher:
                if job_state_matcher != _STATE_MATCHER_ACTIVE:
                    raise NotImplementedError(
                        'only ACTIVE job state matcher is mocked')

                if (_job_state_name(job.status.state)
                        not in ('PENDING', 'RUNNING', 'CANCEL_PENDING')):
                    continue

            yield deepcopy(job)
Ejemplo n.º 2
0
    def _simulate_progress(self, mock_job):
        state = _job_state_name(mock_job.status.state)

        if state == 'SETUP_DONE':
            mock_job.status.state = _job_state_value('PENDING')
        elif state == 'PENDING':
            mock_job.status.state = _job_state_value('RUNNING')
        elif state == 'RUNNING':
            if self.mock_jobs_succeed:
                mock_job.status.state = _job_state_value('DONE')
            else:
                mock_job.status.state = _job_state_value('ERROR')
Ejemplo n.º 3
0
    def _simulate_progress(self, mock_job):
        state = _job_state_name(mock_job.status.state)

        if state == 'SETUP_DONE':
            mock_job.status.state = _job_state_value('PENDING')
        elif state == 'PENDING':
            mock_job.status.state = _job_state_value('RUNNING')
            # for now now, we just need this to be set
            mock_job.driver_output_resource_uri = (
                'gs://mock-bucket-%s/google-cloud-dataproc-metainfo/'
                'mock-cluster-id-%s/jobs/mock-job-%s/driveroutput' %
                (random_identifier(), random_identifier(),
                 random_identifier()))
        elif state == 'RUNNING':
            if self.mock_jobs_succeed:
                mock_job.status.state = _job_state_value('DONE')
            else:
                mock_job.status.state = _job_state_value('ERROR')