Skip to content

SLC UX Gen 2 #220

@ckunki

Description

@ckunki

Evolves the prior SlctManager interface to

  • Support building SLCs with GPU support, requiring a special flavor template-Exasol-8-python-3.10-cuda-conda
  • Incl. isolating various SLC sessions regarding flavors, Git clones and working directories.

Changes in detail

Rename class SlctManager to ScriptLanguageContainer

Methods

  • Init(secrets, name: str)
    • checks if flavor and alias are already stored for name and if not throws exception
  • @classmethod create(secrets, name: str, flavor: str, language_alias: str)
    • saves the flavor and alias in secret store
    • ensure key to be unique: check if name already exists
    • probably needs to save the repo root dir in the secrets, too
  • upload(): rename to deploy()
    • also call slct.deploy instead of upload, deploy has the same interface as upload)
  • append_custom_packages()
  • activation_key()
  • export(): After discussion with @tomuben, we do not plan to rename this method
  • slc_docker_images(): rename to docker_images()
    • should filter for name or at least for flavor if possible
  • clean_all_images(): rename to clean_docker_images()
    • if possible should filter for name or at least for flavor
    • docker_tag_prefix=self.flavor_name, is possible, for name I am not sure about semantics / requirement

Public Attributes

  • Flavor (specific to session): self.flavor
  • Name (formerly know as session)
  • Language Alias (specific to session)

Implicit attributes

  • Packages (session specific) - not really a (python) attribute
  • This only means that the actual packages are a consequence depending on the session

Private Attributes

  • Repo root dir
    • specific to session
    • ScriptLanguageContainer internally manages the clones and keeps them at defined directory
  • Workspace
    • usually cwd

Current implement for Repo root dir:

  • Named working_dir
  • Defined to Path.cwd() / ".slc_checkout" / name

Metadata

Metadata

Assignees

Labels

featureProduct feature

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions