def clone_run( run: BaseRun, cloning_kind: str, user_id: int = None, name: str = None, description: str = None, content: str = None, readme: str = None, tags: List[int] = None, ) -> BaseRun: op_spec = V1Operation.read(run.raw_content) compiled_operation, instance = operations.init_run( project_id=run.project_id, user_id=user_id or run.user_id, name=name or run.name, description=description or run.description, readme=readme or run.readme, op_spec=op_spec, original_id=run.id, original_uuid=run.uuid.hex, cloning_kind=cloning_kind, tags=tags or run.tags, override=content, override_post=True, ) instance.save() return instance
def compile_operation_run( project_id: int, user_id: int, op_spec: V1Operation = None, compiled_operation: V1CompiledOperation = None, name: str = None, description: str = None, tags: str = None, override: Union[str, Dict] = None, params: Dict = None, readme: str = None, is_managed: bool = True, pipeline_id: int = None, controller_id: int = None, supported_kinds: Set[str] = None, ) -> BaseRun: compiled_operation, instance = operations.init_run( project_id=project_id, user_id=user_id, name=name, description=description, op_spec=op_spec, compiled_operation=compiled_operation, override=override, params=params, readme=readme, pipeline_id=pipeline_id, controller_id=controller_id, tags=tags, is_managed=is_managed, supported_kinds=supported_kinds, ) instance.save() return instance
def resume_run( run: BaseRun, user_id: int = None, name: str = None, description: str = None, content: str = None, readme: str = None, tags: List[str] = None, ) -> BaseRun: op_spec = V1Operation.read(run.raw_content) compiled_operation, instance = operations.init_run( project_id=run.project_id, user_id=user_id or run.user_id, name=name or run.name, description=description or run.description, readme=readme or run.readme, op_spec=op_spec, tags=tags or run.tags, override=content, ) run.user_id = instance.user_id run.name = instance.name run.description = instance.description run.readme = instance.readme run.content = instance.content run.raw_content = instance.raw_content run.tags = instance.tags run.save() new_run_status( run, condition=V1StatusCondition.get_condition(type=V1Statuses.RESUMING, status=True), ) return run
def clone_run( run: BaseRun, cloning_kind: str, user_id: int = None, name: str = None, description: str = None, content: str = None, readme: str = None, tags: List[int] = None, supported_kinds: Set[str] = None, **kwargs, ) -> BaseRun: op_spec = V1Operation.read(run.raw_content) meta_info = kwargs.pop("meta_info", {}) or {} original_meta_info = run.meta_info or {} original_uuid = run.uuid.hex upload_artifacts = original_meta_info.get(META_UPLOAD_ARTIFACTS) if upload_artifacts: meta_info[META_UPLOAD_ARTIFACTS] = upload_artifacts if cloning_kind == V1CloningKind.COPY and META_COPY_ARTIFACTS not in meta_info: # Handle default copy mode meta_info[META_COPY_ARTIFACTS] = V1ArtifactsType( dirs=[original_uuid]).to_dict() if META_COPY_ARTIFACTS not in meta_info and upload_artifacts: # Handle default copy mode meta_info[META_COPY_ARTIFACTS] = V1ArtifactsType( dirs=["{}/{}".format(original_uuid, upload_artifacts)]).to_dict() compiled_operation, instance = operations.init_run( project_id=run.project_id, user_id=user_id or run.user_id, name=name or run.name, description=description or run.description, readme=readme or run.readme, op_spec=op_spec, original_id=run.id, original_uuid=original_uuid, cloning_kind=cloning_kind, tags=tags or run.tags, override=content, supported_kinds=supported_kinds, meta_info=meta_info, **kwargs, ) instance.save() return instance