Пример #1
0
    def test_from_env(self):
        settings.IS_MANAGED = False
        with self.assertRaises(PolyaxonClientException):
            PolyaxonClient()

        settings.SECRET_USER_TOKEN = 'token'  # noqa
        settings.API_HOST = 'localhost'
        client = PolyaxonClient()
        assert client.is_managed is False
        assert client.host == 'localhost'
        assert client.http_port == 80
        assert client.ws_port == 80
        assert client.use_https is False
        assert client.token == 'token'
        assert client.api_config.http_host == 'http://localhost:80'
        assert client.api_config.ws_host == 'ws://localhost:80'

        settings.IS_MANAGED = True
        settings.API_HTTP_HOST = 'api_host'
        settings.API_WS_HOST = 'ws_host'
        settings.API_HOST = None
        client = PolyaxonClient()
        assert client.is_managed is True
        assert client.host is None
        assert client.http_port == 80
        assert client.ws_port == 80
        assert client.use_https is False
        assert client.token == 'token'
        assert client.api_config.http_host == 'api_host'
        assert client.api_config.ws_host == 'ws_host'
Пример #2
0
    def test_client(self):
        settings.SECRET_USER_TOKEN = None
        with self.assertRaises(PolyaxonClientException):
            PolyaxonClient(host=None, token=None)
        client = PolyaxonClient(host=None, token=None, is_managed=True)
        assert client.host is None
        assert client.http_port == 80
        assert client.ws_port == 80
        assert client.use_https is False
        assert client.token is None

        assert isinstance(client.transport, Transport)
        assert isinstance(client.api_config, ApiConfig)

        assert isinstance(client.auth, AuthApi)
        assert isinstance(client.cluster, ClusterApi)
        assert isinstance(client.version, VersionApi)
        assert isinstance(client.project, ProjectApi)
        assert isinstance(client.experiment_group, ExperimentGroupApi)
        assert isinstance(client.experiment, ExperimentApi)
        assert isinstance(client.experiment_job, ExperimentJobApi)
        assert isinstance(client.job, JobApi)
        assert isinstance(client.build_job, BuildJobApi)
        assert isinstance(client.bookmark, BookmarkApi)
        assert isinstance(client.user, UserApi)
    def test_from_config(self):
        settings.SECRET_USER_TOKEN = 'token'  # noqa
        settings.API_HOST = 'localhost'
        client = PolyaxonClient(api_config=ApiConfig())
        assert client.in_cluster is False
        assert client.host == 'localhost'
        assert client.http_port == 80
        assert client.ws_port == 80
        assert client.use_https is False
        assert client.token == 'token'
        assert client.api_config.http_host == 'http://localhost:80'
        assert client.api_config.ws_host == 'ws://localhost:80'

        settings.IN_CLUSTER = True
        settings.API_HTTP_HOST = 'api_host'
        settings.API_WS_HOST = 'ws_host'
        settings.API_HOST = None
        client = PolyaxonClient(api_config=ApiConfig())
        assert client.in_cluster is True
        assert client.host is None
        assert client.http_port == 80
        assert client.ws_port == 80
        assert client.use_https is False
        assert client.token == 'token'
        assert client.api_config.http_host == 'api_host'
        assert client.api_config.ws_host == 'ws_host'
Пример #4
0
def create_notebook_auth_context(job_name: str):
    parts = job_name.split('.')
    client = PolyaxonClient()
    client.auth.login_notebook_impersonate_token(
        username=parts[0],
        project_name=parts[1],
        internal_token=client.api_config.token)
Пример #5
0
def create_experiment_auth_context(experiment_name: str):
    parts = experiment_name.split('.')
    client = PolyaxonClient()
    client.auth.login_experiment_impersonate_token(username=parts[0],
                                                   project_name=parts[1],
                                                   experiment_id=parts[-1],
                                                   internal_token=client.api_config.token)
Пример #6
0
from sidecar import settings
from sidecar.monitor import is_pod_running

if __name__ == '__main__':
    parser = argparse.ArgumentParser()

    parser.add_argument('--pod_id', type=str)
    parser.add_argument('--app_label', type=str)
    parser.add_argument('--container_id', type=str)
    parser.add_argument('--log_sleep_interval', default=2, type=int)
    args = parser.parse_args()
    arguments = args.__dict__

    pod_id = arguments.pop('pod_id')
    container_id = arguments.pop('container_id')
    app_label = arguments.pop('app_label')
    log_sleep_interval = arguments.pop('log_sleep_interval')

    k8s_manager = K8SManager(namespace=settings.K8S_NAMESPACE, in_cluster=True)
    client = PolyaxonClient()
    client.set_internal_health_check()
    retry = 0
    is_running = True
    while is_running and retry < 3:
        time.sleep(log_sleep_interval)
        try:
            is_running = is_pod_running(k8s_manager, pod_id, container_id)
        except ApiException:
            retry += 1
            time.sleep(log_sleep_interval)  # We wait a bit more before try
Пример #7
0
        min_samples_leaf=min_samples_leaf,
    )
    return cross_val_score(classifier, X, y, cv=5)


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('--n_estimators', type=int, default=3)
    parser.add_argument('--max_features', type=int, default=3)
    parser.add_argument('--min_samples_leaf', type=int, default=80)
    args = parser.parse_args()

    # Polyaxon
    client = PolyaxonClient(
        host="192.168.1.50",
        http_port=31821,
        ws_port=31822,
        token="94aeefe25d984823bff74839e2e4746abeac261301c648208f1939c08724dcc8"
    )
    client.project.create_project({"name": 'example2'})
    experiment = Experiment(project='example2', client=client)
    experiment.create()
    experiment.log_params(n_estimators=args.n_estimators,
                          max_features=args.max_features,
                          min_samples_leaf=args.min_samples_leaf)

    (X, y) = load_data()

    # Polyaxon
    experiment.log_data_ref(data=X, data_name='dataset_X')
    experiment.log_data_ref(data=y, data_name='dataset_y')
Пример #8
0
    )
    parser.add_argument(
        '--max_restarts',
        default=0,
        type=int
    )
    args = parser.parse_args()
    arguments = args.__dict__

    container_id = arguments.pop('container_id')
    app_label = arguments.pop('app_label')
    sleep_interval = arguments.pop('sleep_interval')
    max_restarts = arguments.pop('max_restarts')

    k8s_manager = K8SManager(namespace=settings.K8S_NAMESPACE, in_cluster=True)
    client = PolyaxonClient()
    client.set_internal_health_check()
    retry = 0
    is_running = True
    status = None
    while is_running and retry < 3:
        time.sleep(sleep_interval)
        try:
            is_running, status = is_pod_running(k8s_manager,
                                                settings.POD_ID,
                                                container_id,
                                                max_restarts)
        except ApiException:
            retry += 1
            time.sleep(sleep_interval)  # We wait a bit more before try