Example #1
0
def test_top_level_params_override_job_config():
    job = GCPJob(region='us-west1',
                 scale_tier='BASIC',
                 job_config={
                     'trainingInput': {
                         'region': 'europe-west1',
                         'scaleTier': 'PREMIUM_1'
                     },
                     'labels': {
                         'test-key': 'test-value'
                     }
                 })
    request = job.create_request_dict(create_test_pod_spec())

    desired = {
        'jobId': job._job_name,  #pylint:disable=protected-access
        'trainingInput': {
            'masterConfig': {
                'imageUri': 'test-image'
            },
            'region': 'us-west1',
            'scaleTier': 'BASIC'
        },
        'labels': {
            'test-key': 'test-value'
        }
    }

    assert request == desired
Example #2
0
def test_fairing_user_agent_in_http_requests_gcpjob_deploy_api(
        httpmock, capsys):
    with patch('httplib2.Http', new=httpmock) as mock_http:  # pylint:disable=unused-variable
        job = GCPJob()
        job.deploy(create_test_pod_spec())
        captured = capsys.readouterr()
        expected_pattern = r'HTTPMock url:https://ml.googleapis.* user-agent:kubeflow-fairing/{}'\
                           .format(fairing.__version__)
        print(captured.out)
        assert len(re.findall(expected_pattern, captured.out)) > 0  # pylint:disable=len-as-condition
Example #3
0
def test_default_params():
    job = GCPJob()
    request = job.create_request_dict(create_test_pod_spec())

    desired = {
        'jobId': job._job_name,  #pylint:disable=protected-access
        'trainingInput': {
            'masterConfig': {
                'imageUri': 'test-image'
            },
            'region': 'us-central1'
        }
    }

    assert request == desired
Example #4
0
def test_top_level_args():
    job = GCPJob(region='us-west1', scale_tier='BASIC')
    request = job.create_request_dict(create_test_pod_spec())

    desired = {
        'jobId': job._job_name,  #pylint:disable=protected-access
        'trainingInput': {
            'masterConfig': {
                'imageUri': 'test-image'
            },
            'region': 'us-west1',
            'scaleTier': 'BASIC'
        }
    }

    assert request == desired
Example #5
0
    def get_training_deployer(self, pod_spec_mutators=None):
        """Creates a deployer to be used with a training job for GCP

        :param pod_spec_mutators: list of functions that is used to mutate the podsspec.
            (Default value = None)
        :returns: job for handle all the k8s' template building for a training

        """
        return GCPJob(self._project_id, self._region, self._training_scale_tier)
Example #6
0
def test_custom_job_config():
    job = GCPJob(job_config={
        'trainingInput': {
            'scaleTier': 'CUSTOM',
            'masterType': 'standard'
        }
    })
    request = job.create_request_dict(create_test_pod_spec())

    desired = {
        'jobId': job._job_name,  #pylint:disable=protected-access
        'trainingInput': {
            'masterConfig': {
                'imageUri': 'test-image'
            },
            'region': 'us-central1',
            'scaleTier': 'CUSTOM',
            'masterType': 'standard'
        }
    }

    assert request == desired