Ejemplo n.º 1
0
def test_create_experiment(mock_platform_resources_api_client: CustomObjectsApi):
    mock_platform_resources_api_client.create_namespaced_custom_object.return_value = ADD_EXPERIMENT_RESPONSE_RAW
    exp = Experiment(name=EXPERIMENT_NAME, template_name=TEMPLATE_NAME, template_namespace=TEMPLATE_NAMESPACE)
    result = exp.create(namespace=NAMESPACE)

    assert result
    assert result.spec.name == EXPERIMENT_NAME
    assert result.spec.template_name == TEMPLATE_NAME
    assert result.spec.template_namespace == TEMPLATE_NAMESPACE
    assert result.spec.state == ExperimentStatus.CREATING
    assert result.metadata.name == EXPERIMENT_NAME
    assert result.metadata.namespace == NAMESPACE
Ejemplo n.º 2
0
        parameters=('a 1', 'b 2'),
        metrics={
            'acc': 52.2,
            'loss': 1.62345
        },
        creation_timestamp='2018-05-08T13:05:04Z',
        namespace='namespace-2',
        state=RunStatus.COMPLETE,
        experiment_name='test-experiment-4',
        pod_count=0,
        pod_selector={})
]
TEST_EXPERIMENT = Experiment(name="test-experiment",
                             parameters_spec=["param1"],
                             namespace="submitter",
                             creation_timestamp="2018-05-08T13:05:04Z",
                             template_name="template_name",
                             template_namespace="template_namespace",
                             template_version="1.0.1")
TEST_NONINITIALIZED_EXPERIMENTS = [
    Experiment(name="noninit-test-experiment",
               parameters_spec=["param1"],
               namespace="submitter",
               creation_timestamp="2018-05-08T13:05:04Z",
               template_name="template_name",
               template_namespace="template_namespace"),
    Experiment(name="noninit2-test-experiment",
               parameters_spec=["param1"],
               namespace="submitter",
               creation_timestamp="2018-05-08T13:05:04Z",
               template_name="template_name",
Ejemplo n.º 3
0
from platform_resources.run import Run, RunStatus
from platform_resources.experiment import Experiment, ExperimentStatus
from commands.experiment import cancel
from commands.experiment.cancel import experiment_name, experiment_name_plural
from platform_resources.tests.test_experiment import TEST_EXPERIMENTS
from util.k8s.pods import K8SPod
from util.k8s.k8s_info import PodStatus

EXPERIMENT_NAME = "experiment"

EXPERIMENT_UNINITIALIZED = Experiment(
    name='test-experiment',
    parameters_spec=['a 1', 'b 2'],
    creation_timestamp='2018-05-08T13:05:04Z',
    namespace='namespace-2',
    state=ExperimentStatus.CREATING,
    template_name='test-ex-template',
    template_namespace='test-ex-namespace',
    metadata={'labels': {
        'runKind': 'training'
    }})

RUN_QUEUED = Run(
    name="exp-mnist-single-node.py-18.05.17-16.05.45-1-tf-training",
    parameters=['mnist_single_node.py', '--data_dir', '/app'],
    state=RunStatus.QUEUED,
    metrics={'accuracy': 52.322},
    experiment_name="experiment-1",
    pod_count=1,
    pod_selector={
        'matchLabels': {
Ejemplo n.º 4
0
from platform_resources.experiment import Experiment, ExperimentStatus
from commands.experiment import interact
from commands.experiment.common import RunStatus, SubmitExperimentError
from cli_text_consts import ExperimentInteractCmdTexts as Texts
from platform_resources.run import Run, KubernetesObject

INCORRECT_INTERACT_NAME = "interact_experiment"
TOO_LONG_INTERACT_NAME = "interact-experiment-interact-experiment-interact-experiment"
CORRECT_INTERACT_NAME = "interact-experiment"

EXPERIMENT_NAMESPACE = "namespace"

JUPYTER_EXPERIMENT = Experiment(name='test-experiment',
                                parameters_spec=['a 1', 'b 2'],
                                creation_timestamp='2018-04-26T13:43:01Z',
                                namespace='namespace-1',
                                state=ExperimentStatus.CREATING,
                                template_name='jupyter',
                                template_namespace='test-ex-namespace')

NON_JUPYTER_EXPERIMENT = Experiment(name='test-experiment-2',
                                    parameters_spec=['a 1', 'b 2'],
                                    creation_timestamp='2018-05-08T13:05:04Z',
                                    namespace='namespace-2',
                                    state=ExperimentStatus.SUBMITTED,
                                    template_name='test-ex-template',
                                    template_namespace='test-ex-namespace')
SUBMITTED_RUNS = [
    Run(name="exp-mnist-single-node.py-18.05.17-16.05.45-1-tf-training",
        experiment_name=CORRECT_INTERACT_NAME,
        state=RunStatus.QUEUED)
Ejemplo n.º 5
0
                      Run(name='test-experiment-3', parameters=['a 1', 'b 2'], metrics={'acc': 52.2, 'loss': 1.62345},
                          creation_timestamp='2018-04-26T13:43:01Z', namespace='namespace-1',
                          state=None, experiment_name='test-experiment-2', pod_count=0, pod_selector={}),
                      Run(name='test-experiment-4', parameters=['a 1', 'b 2'], metrics={'acc': 52.2, 'loss': 1.62345},
                          creation_timestamp='2018-05-08T13:05:04Z', namespace='namespace-2',
                          state=None, experiment_name='test-experiment-3', pod_count=0, pod_selector={}),
                      Run(name='test-experiment-5', parameters=['a 1', 'b 2'], metrics={'acc': 52.2, 'loss': 1.62345},
                          creation_timestamp='2018-04-26T13:43:01Z', namespace='namespace-1',
                          state=None, experiment_name='test-experiment-2', pod_count=0, pod_selector={}),
                      Run(name='test-experiment-6', parameters=['a 1', 'b 2'], metrics={'acc': 52.2, 'loss': 1.62345},
                          creation_timestamp='2018-05-08T13:05:04Z', namespace='namespace-2',
                          state=RunStatus.COMPLETE, experiment_name='test-experiment-4', pod_count=0, pod_selector={})]


TEST_EXPERIMENT = Experiment(name="test-experiment", parameters_spec=["param1"],
                             namespace="submitter", creation_timestamp="2018-05-08T13:05:04Z",
                             template_name="template_name", template_namespace="template_namespace")

TEST_NONINITIALIZED_EXPERIMENTS = [Experiment(name="noninit-test-experiment", parameters_spec=["param1"],
                                              namespace="submitter", creation_timestamp="2018-05-08T13:05:04Z",
                                              template_name="template_name", template_namespace="template_namespace"),
                                   Experiment(name="noninit2-test-experiment", parameters_spec=["param1"],
                                              namespace="submitter", creation_timestamp="2018-05-08T13:05:04Z",
                                              template_name="template_name", template_namespace="template_namespace")]

TEST_RUN = Run(name="test-experiment", experiment_name="test-experiment", metrics={},
               parameters=["param1"], pod_count=0, pod_selector={}, state=RunStatus.CREATING,
               namespace="submitter", creation_timestamp="2018-05-08T13:05:04Z",
               template_name="template_name")

TEST_LIST_HEADERS = ["Name", "Parameters", "Metrics", "Submission date", "Owner", "State", "Template name"]
Ejemplo n.º 6
0
QUEUED_RUN = [
    Run(name='test-experiment',
        parameters=['a 1', 'b 2'],
        creation_timestamp='2018-04-26T13:43:01Z',
        namespace='namespace-1',
        state=RunStatus.QUEUED,
        template_name='test-ex-template',
        metrics={'any metrics': 'a'},
        experiment_name='experiment_name',
        pod_count=1,
        pod_selector={})
]

TEST_EXPERIMENT = Experiment(name='test-experiment',
                             template_name='template-name',
                             template_namespace='namespace',
                             template_version='0.1.0')

mocked_test_pod = MagicMock(spec=V1Pod)
mocked_test_pod.metadata.name = "test"
mocked_test_pod.metadata.uid = "uid"
TEST_PODS = [mocked_test_pod]

pending_pod = MagicMock(spec=V1Pod)
pending_pod.status = V1PodStatus(phase=PodStatus.PENDING.value)
pending_pod.metadata.name = "test"
pending_pod.metadata.uid = "uid"
PENDING_POD = [pending_pod]

TOP_USERS = [ResourceUsage(user_name="user_name", cpu_usage=2, mem_usage=1000)]
Ejemplo n.º 7
0
TEMPLATE_NAME = 'template'
TEMPLATE_NAMESPACE = 'template-namespace-test'

TEST_EXPERIMENTS = [Experiment(name='test-experiment-old', parameters_spec=['a 1', 'b 2'],
                               creation_timestamp='2018-04-26T13:43:01Z', namespace='namespace-1',
                               state=ExperimentStatus.CREATING, template_name='test-ex-template',
                               template_namespace='test-ex-namespace',
                               metadata={'annotations':
                                            {'kubectl.kubernetes.io/last-applied-configuration':
                                                 '{"apiVersion":"aipg.intel.com/v1",'
                                                 '"kind":"Experiment",'
                                                 '"metadata":{"annotations":{},'
                                                 '"name":"test-experiment-old",'
                                                 '"namespace":"namespace-1"},'
                                                 '"spec":{"name":"test-experiment-old",'
                                                 '"parameters-spec":["a 1", "b 2"],'
                                                 '"state":"CREATING",'
                                                 '"template-name":"test-ex-template",'
                                                 '"template-namespace":"test-ex-namespace"}}\n'},
                                        'clusterName': '',
                                        'creationTimestamp': '2018-04-26T13:43:01Z',
                                        'labels': {'name_origin': 'test-experiment-new', 'script_name': 'mnist_single_node.py'},
                                        'generation': 1,
                                        'name': 'test-experiment-old',
                                        'namespace': 'namespace-1',
                                        'resourceVersion': '1350906',
                                        'selfLink': '/apis/aipg.intel.com/v1/namespaces/mciesiel-ef-stack/experiments/test-experiment',
                                        'uid': 'bd298c60-4957-11e8-96f7-527100002000'}),
                    Experiment(name='test-experiment-new', parameters_spec=['a 1', 'b 2'],
                               creation_timestamp='2018-05-08T13:05:04Z', namespace='namespace-2',
                               state=ExperimentStatus.SUBMITTED, template_name='test-ex-template',