Spaces:
Running
Running
# Copyright (c) Microsoft Corporation. | |
# Licensed under the MIT license. | |
import socket | |
import psutil | |
BASE_URL = 'http://localhost' | |
API_ROOT_URL = '/api/v1/nni' | |
EXPERIMENT_API = '/experiment' | |
CLUSTER_METADATA_API = '/experiment/cluster-metadata' | |
IMPORT_DATA_API = '/experiment/import-data' | |
CHECK_STATUS_API = '/check-status' | |
TRIAL_JOBS_API = '/trial-jobs' | |
EXPORT_DATA_API = '/export-data' | |
TENSORBOARD_API = '/tensorboard' | |
METRIC_DATA_API = '/metric-data' | |
def format_url_path(path): | |
return API_ROOT_URL if path is None else f'/{path}{API_ROOT_URL}' | |
def set_prefix_url(prefix_path): | |
global API_ROOT_URL | |
API_ROOT_URL = format_url_path(prefix_path) | |
def metric_data_url(port): | |
'''get metric_data url''' | |
return '{0}:{1}{2}{3}'.format(BASE_URL, port, API_ROOT_URL, METRIC_DATA_API) | |
def check_status_url(port): | |
'''get check_status url''' | |
return '{0}:{1}{2}{3}'.format(BASE_URL, port, API_ROOT_URL, CHECK_STATUS_API) | |
def cluster_metadata_url(port): | |
'''get cluster_metadata_url''' | |
return '{0}:{1}{2}{3}'.format(BASE_URL, port, API_ROOT_URL, CLUSTER_METADATA_API) | |
def import_data_url(port): | |
'''get import_data_url''' | |
return '{0}:{1}{2}{3}'.format(BASE_URL, port, API_ROOT_URL, IMPORT_DATA_API) | |
def experiment_url(port): | |
'''get experiment_url''' | |
return '{0}:{1}{2}{3}'.format(BASE_URL, port, API_ROOT_URL, EXPERIMENT_API) | |
def trial_jobs_url(port): | |
'''get trial_jobs url''' | |
return '{0}:{1}{2}{3}'.format(BASE_URL, port, API_ROOT_URL, TRIAL_JOBS_API) | |
def trial_job_id_url(port, job_id): | |
'''get trial_jobs with id url''' | |
return '{0}:{1}{2}{3}/{4}'.format(BASE_URL, port, API_ROOT_URL, TRIAL_JOBS_API, job_id) | |
def export_data_url(port): | |
'''get export_data url''' | |
return '{0}:{1}{2}{3}'.format(BASE_URL, port, API_ROOT_URL, EXPORT_DATA_API) | |
def tensorboard_url(port): | |
'''get tensorboard url''' | |
return '{0}:{1}{2}{3}'.format(BASE_URL, port, API_ROOT_URL, TENSORBOARD_API) | |
def get_local_urls(port,prefix): | |
'''get urls of local machine''' | |
url_list = [] | |
for _, info in psutil.net_if_addrs().items(): | |
for addr in info: | |
if socket.AddressFamily.AF_INET == addr.family: | |
url_list.append('http://{0}:{1}{2}'.format(addr.address, port, prefix)) | |
return url_list | |