Skip to content

Simplify using LanguageContainerDeployer in TE and similar projects #132

@ckunki

Description

@ckunki

The implementation in TE looks unnecessarily complicated

TE deploy.py

TE class TeLanguageContainerDeployer

Notes

Please note:

  • The proposal is backwards-compatible and should not break any of the existing usages
  • An alternative to the proposal below could be a subclass LanguageContainerDeployerByVersion in PEC.

Proposed Changes in PEC

class LanguageContainerDeployer:

    def download_url(self, version: str | None) -> str:
        return ""

    def default_bucket_file_path(self, version: str | None) -> str:
        return ""

    def download_and_run(self, ..., version: str = "") -> None:
        url = url or self.download_url(version)
        ...

    def run(self, ...., version: str = "") -> None:
        bucket_file_path = bucket_file_path or self.default_bucket_file_path(version)
        ....

Proposed Changes in TE

class TeLanguageContainerDeployer(LanguageContainerDeployer):
    """
    LanguageContainerDeployer for Transformers Extension Language Container
    """

    SLC_NAME = "exasol_transformers_extension_container_release.tar.gz"
    SLC_URL_FORMATTER = (
        "https://github.com/exasol/transformers-extension/releases/download/{version}/"
        + SLC_NAME
    )

    @override
    def download_url(self, version: str | None) -> str:
        return self.SLC_URL_FORMATTER.format(version=version)

    @override
    def default_bucket_file_path(self, version: str | None) -> str:
        return self.SLC_NAME

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureProduct feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions