Source code for hypernets.hyperctl.api

import os
import tempfile

from hypernets.hyperctl import consts,utils
from hypernets.utils import logging as hyn_logging

logger = hyn_logging.get_logger(__name__)

_job_dict = {}


[docs]def get_job(job_name, api_server_portal): url_get_job = f"{api_server_portal}/hyperctl/api/job/{job_name}" data = utils.get_request(url_get_job) return data
def _get_job_name_and_damon_portal(): job_name = os.getenv(consts.KEY_ENV_JOB_NAME) api_server_portal = f"{os.getenv(consts.KEY_ENV_SERVER_PORTAL)}" assert job_name assert api_server_portal return job_name, api_server_portal
[docs]def get_job_params(): global _job_dict dev_job_params = _job_dict.get('params') if dev_job_params is not None: return dev_job_params job_name, api_server_portal = _get_job_name_and_damon_portal() return get_job(job_name, api_server_portal)['params']
[docs]def get_job_data_dir(): global _job_dict dev_job_data_dir = _job_dict.get('job_data_dir') if dev_job_data_dir is not None: return dev_job_data_dir job_working_dir = os.getenv(consts.KEY_ENV_JOB_WORKING_DIR) return job_working_dir
[docs]def inject(params, job_data_dir=None): global _job_dict job_dict = _job_dict job_dict['params'] = params if job_data_dir is None: tempfile.gettempdir() job_dict['job_data_dir'] = tempfile.mkdtemp(prefix='hyperctl-')
[docs]def reset_dev_params(): global _job_dict _job_dict = {}
[docs]def list_jobs(api_server_portal): # if api_server_portal is None: # api_server_portal = os.getenv(consts.KEY_ENV_api_server_portal) assert api_server_portal url_get_jobs = f"{api_server_portal}/hyperctl/api/job" data = utils.get_request(url_get_jobs) return data['jobs']
[docs]def kill_job(api_server_portal, job_name): url_kill_job = f"{api_server_portal}/hyperctl/api/job/{job_name}/kill" data = utils.post_request(url_kill_job, request_data=None) return data