Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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