示例#1
0
 def test_get_outputs_refs_store_secrets(self):
     secrets, _ = get_outputs_refs_store_secrets(None)
     self.assertEqual(len(secrets), 0)
     secrets, _ = get_outputs_refs_store_secrets([
         OutputsRefsSpec(path='/path1', persistence='outputs')])
     self.assertEqual(len(secrets), 0)
     with self.assertRaises(VolumeNotFoundError):
         get_outputs_refs_store_secrets([
             OutputsRefsSpec(path='/path1', persistence='outputs1'),
             OutputsRefsSpec(path='/path2', persistence='outputs2')])
示例#2
0
    def test_get_outputs_refs_store_secrets_with_updated_settings(self):
        secrets, _ = get_outputs_refs_store_secrets([
            OutputsRefsSpec(path='/path1', persistence='outputs1'),
            OutputsRefsSpec(path='/path2', persistence='outputs2')])
        self.assertEqual(len(secrets), 0)

        secrets, secret_keys = get_outputs_refs_store_secrets([
            OutputsRefsSpec(path='/path1', persistence='outputs3'),
            OutputsRefsSpec(path='/path2', persistence='outputs3')])
        assert len(secrets) == 1
        assert len(secret_keys) == 2
示例#3
0
    def test_get_pod_refs_outputs_volumes_same_outputs_persistence(self):
        volumes, _ = get_pod_refs_outputs_volumes(
            [OutputsRefsSpec('/outputs1/some/path', 'outputs1')], 'outputs1')
        self.assertEqual(len(volumes), 0)

        volumes, _ = get_pod_refs_outputs_volumes(
            [OutputsRefsSpec('/outputs2/some/path', 'outputs2')], 'outputs1')
        assert len(volumes) == 1
        assert volumes[0].host_path.path == '/root/outputs'

        volumes, _ = get_pod_refs_outputs_volumes(
            [OutputsRefsSpec('/outputs1/some/path', 'outputs1')], 'outputs2')
        assert len(volumes) == 1
        assert volumes[0].persistent_volume_claim.claim_name == 'test-claim-outputs-1'

        volumes, _ = get_pod_refs_outputs_volumes(
            [OutputsRefsSpec('/outputs1/some/path', 'outputs3')], 'outputs2')
        self.assertEqual(len(volumes), 0)
示例#4
0
    def _get_project_outputs_paths(self) -> Tuple[List, str]:
        import stores

        from stores.validators import validate_persistence_outputs

        persistence = validate_persistence_outputs(
            persistence_outputs=self.project.persistence_outputs)
        outputs_path = stores.get_project_outputs_path(
            persistence=persistence,
            project_name=self.project.unique_name)
        return [OutputsRefsSpec(path=outputs_path, persistence=persistence)], outputs_path
示例#5
0
    def _get_study_outputs_paths(self) -> Tuple[List, str]:
        import stores

        from stores.validators import validate_persistence_outputs

        persistence = validate_persistence_outputs(
            persistence_outputs=self.experiment_group.persistence_outputs)
        outputs_path = stores.get_experiment_group_outputs_path(
            persistence=persistence,
            experiment_group_name=self.experiment_group.unique_name)
        return [OutputsRefsSpec(path=outputs_path, persistence=persistence)], outputs_path
示例#6
0
 def get_named_experiment_outputs_path(experiment):
     persistence = experiment.persistence_outputs
     outputs_path = get_experiment_outputs_path(
         persistence_outputs=experiment.persistence_outputs,
         experiment_name=experiment.unique_name,
         original_name=experiment.original_unique_name,
         cloning_strategy=experiment.cloning_strategy)
     tensorboard_path = '{}:{}'.format(
         experiment.unique_name,
         outputs_path)
     return [OutputsRefsSpec(path=outputs_path, persistence=persistence)], tensorboard_path
示例#7
0
    def _get_experiment_outputs_path(self) -> Tuple[List, str]:
        import stores

        from stores.validators import validate_persistence_outputs

        persistence = validate_persistence_outputs(
            persistence_outputs=self.experiment.persistence_outputs)

        outputs_path = stores.get_experiment_outputs_path(
            persistence=persistence,
            experiment_name=self.experiment.unique_name,
            original_name=self.experiment.original_unique_name,
            cloning_strategy=self.experiment.cloning_strategy)
        return [OutputsRefsSpec(path=outputs_path, persistence=persistence)], outputs_path
示例#8
0
    def _get_named_experiment_outputs_path(experiment, persistence) -> Tuple[List, str]:
        import stores

        from stores.validators import validate_persistence_outputs

        persistence = validate_persistence_outputs(persistence_outputs=persistence)

        outputs_path = stores.get_experiment_outputs_path(
            persistence=persistence,
            experiment_name=experiment.unique_name,
            original_name=experiment.original_unique_name,
            cloning_strategy=experiment.cloning_strategy)
        tensorboard_path = '{}:{}'.format(
            experiment.unique_name,
            outputs_path)
        return [OutputsRefsSpec(path=outputs_path, persistence=persistence)], tensorboard_path
示例#9
0
    def _get_selection_outputs_paths(self) -> Tuple[List, str]:
        import stores

        from stores.validators import validate_persistence_outputs

        persistence = self.experiment_group.project.persistence_outputs
        persistence = validate_persistence_outputs(persistence_outputs=persistence)
        experiments = self.experiment_group.group_experiments.all()
        outputs_path = stores.get_project_outputs_path(
            persistence=persistence,
            project_name=self.project.unique_name)

        outputs_specs = [OutputsRefsSpec(path=outputs_path, persistence=persistence)]
        tensorboard_paths = []
        for experiment in experiments:
            _, tensorboard_path = self._get_named_experiment_outputs_path(
                experiment=experiment, persistence=persistence)
            tensorboard_paths.append(tensorboard_path)

        return outputs_specs, ','.join(tensorboard_paths)