def __init__(self, db=None, container_manager=None, var_autoforward=ENVIRONMENT_VARIABLES_AUTOFORWARD): db = db or Database() container_manager: ContainerManager = container_manager or DockerSwarmContainerManager( ) # Ensure that environment variable exists, failing fast for x in var_autoforward: os.environ[x] self._var_autoforward = var_autoforward self._data_dir_path = os.environ['DATA_DIR_PATH'] self._logs_dir_path = os.environ['LOGS_DIR_PATH'] self._params_dir_path = os.environ['PARAMS_DIR_PATH'] self._host_workdir_path = os.environ['HOST_WORKDIR_PATH'] self._docker_workdir_path = os.environ['DOCKER_WORKDIR_PATH'] self._predictor_image = '{}:{}'.format( os.environ['RAFIKI_IMAGE_PREDICTOR'], os.environ['RAFIKI_VERSION']) self._predictor_port = os.environ['PREDICTOR_PORT'] self._rafiki_addr = os.environ['RAFIKI_ADDR'] self._app_mode = os.environ['APP_MODE'] self._db = db self._container_manager = container_manager
def __init__(self, db=None, container_manager=None): if db is None: db = Database() if container_manager is None: container_manager = DockerSwarmContainerManager() self._postgres_host = os.environ['POSTGRES_HOST'] self._postgres_port = os.environ['POSTGRES_PORT'] self._postgres_user = os.environ['POSTGRES_USER'] self._postgres_password = os.environ['POSTGRES_PASSWORD'] self._postgres_db = os.environ['POSTGRES_DB'] self._redis_host = os.environ['REDIS_HOST'] self._redis_port = os.environ['REDIS_PORT'] self._admin_host = os.environ['ADMIN_HOST'] self._admin_host = os.environ['ADMIN_HOST'] self._admin_port = os.environ['ADMIN_PORT'] self._advisor_host = os.environ['ADVISOR_HOST'] self._advisor_port = os.environ['ADVISOR_PORT'] self._data_workdir = os.environ['DATA_WORKDIR_PATH'] self._logs_workdir = os.environ['LOGS_WORKDIR_PATH'] self._data_docker_workdir = os.environ['DATA_DOCKER_WORKDIR_PATH'] self._logs_docker_workdir = os.environ['LOGS_DOCKER_WORKDIR_PATH'] self._predictor_image = '{}:{}'.format( os.environ['RAFIKI_IMAGE_PREDICTOR'], os.environ['RAFIKI_VERSION']) self._predictor_port = os.environ['PREDICTOR_PORT'] self._rafiki_addr = os.environ['RAFIKI_ADDR'] self._db = db self._container_manager = container_manager
def __init__(self, service_id, db=None): if db is None: db = Database() self._service_id = service_id self._db = db self._trial_id = None self._client = self._make_client()
def __init__(self, service_id, db=Database(), cache=Cache()): self._service_id = service_id self._db = db self._cache = cache with self._db: (self._inference_job_id, self._worker_to_predict_label_mapping, self._task) \ = self._read_predictor_info()
def __init__(self, service_id, db=None, cache=None): if db is None: db = Database() if cache is None: cache = Cache() self._service_id = service_id self._db = db self._cache = cache
def __init__(self, db=Database(), container_manager=DockerSwarmContainerManager()): self._base_worker_image = '{}:{}'.format(os.environ['RAFIKI_IMAGE_WORKER'], os.environ['RAFIKI_VERSION']) self._db = db self._services_manager = ServicesManager(db, container_manager) with self._db: self._seed_users()
def __init__(self, db=None, container_manager=None): if db is None: db = Database() if container_manager is None: container_manager = DockerSwarmContainerManager() self._base_worker_image = '{}:{}'.format( os.environ['RAFIKI_IMAGE_WORKER'], os.environ['RAFIKI_VERSION']) self._db = db self._services_manager = ServicesManager(db, container_manager)
def __init__(self, service_id, worker_id, db=None): if db is None: db = Database() self._service_id = service_id self._db = db self._worker_id = worker_id self._trial_id = None self._sub_train_job_id = None self._client = Client(admin_host=os.environ['ADMIN_HOST'], admin_port=os.environ['ADMIN_PORT'], advisor_host=os.environ['ADVISOR_HOST'], advisor_port=os.environ['ADVISOR_PORT']) self._params_root_dir = os.path.join(os.environ['WORKDIR_PATH'], os.environ['PARAMS_DIR_PATH'])
def __init__(self, service_id, cache=Cache(), db=Database()): self._cache = cache self._db = db self._service_id = service_id self._model = None
def start_service(service_id, service_type): global worker # Run install command install_command = os.environ.get('WORKER_INSTALL_COMMAND', '') exit_code = os.system(install_command) if exit_code != 0: raise Exception('Install command gave non-zero exit code: {}'.format( install_command)) if service_type == ServiceType.TRAIN: from rafiki.worker import TrainWorker worker = TrainWorker(service_id) worker.start() elif service_type == ServiceType.INFERENCE: from rafiki.worker import InferenceWorker worker = InferenceWorker(service_id) worker.start() else: raise Exception('Invalid service type: {}'.format(service_type)) def end_service(service_id, service_type): global worker if worker is not None: worker.stop() db = Database() run_service(db, start_service, end_service)