def post(self, project_uuid, environment_uuid): # create a new environment in the project environment_json = request.json.get("environment") e = Environment( uuid=str(uuid.uuid4()), name=environment_json["name"], project_uuid=project_uuid, language=environment_json["language"], setup_script=environment_json["setup_script"], base_image=environment_json["base_image"], gpu_support=environment_json["gpu_support"], ) # use specified uuid if it's not keyword 'new' if environment_uuid != "new": e.uuid = environment_uuid environment_dir = get_environment_directory( e.uuid, project_uuid) os.makedirs(environment_dir, exist_ok=True) serialize_environment_to_disk(e, environment_dir) # refresh kernels after change in environments populate_kernels(app, db, project_uuid) return environment_schema.dump(e)
def populate_default_environments(project_uuid): for env_spec in app.config["DEFAULT_ENVIRONMENTS"]: e = Environment(**env_spec) e.uuid = str(uuid.uuid4()) e.project_uuid = project_uuid environment_dir = get_environment_directory(e.uuid, project_uuid) os.makedirs(environment_dir, exist_ok=True) serialize_environment_to_disk(e, environment_dir)
def post(self, project_uuid, environment_uuid): # create a new environment in the project environment_json = request.json.get("environment") e = Environment( uuid=str(uuid.uuid4()), name=environment_json["name"], project_uuid=project_uuid, language=environment_json["language"], setup_script=preprocess_script( environment_json["setup_script"]), base_image=environment_json["base_image"], gpu_support=environment_json["gpu_support"], ) # use specified uuid if it's not keyword 'new' if environment_uuid != "new": e.uuid = environment_uuid else: url = (f'http://{app.config["ORCHEST_API_ADDRESS"]}' f"/api/environments/{project_uuid}") resp = requests.post(url, json={"uuid": e.uuid}) if resp.status_code != 201: return {}, resp.status_code, resp.headers.items() environment_dir = get_environment_directory( e.uuid, project_uuid) os.makedirs(environment_dir, exist_ok=True) serialize_environment_to_disk(e, environment_dir) # refresh kernels after change in environments populate_kernels(app, db, project_uuid) return environment_schema.dump(e)