minitrino.core.modules module#

Module management for Minitrino CLI.

class minitrino.core.modules.Modules(ctx: MinitrinoContext)[source][source]#

Bases: object

Module validation and management.

Parameters:

ctx (MinitrinoContext) – An instantiated MinitrinoContext object with user input and context.

data[source]#

A dictionary of loaded module metadata keyed by module name.

Type:

dict

running_modules() :

Returns a dictionary of modules that are currently running.

validate_module_name(name: str) :

Return the module name or raise UserError with a suggestion.

check_dep_modules(modules: Optional[list[str]] = None) :

Check if provided modules have dependencies and include them.

check_module_version_requirements(modules: Optional[list[str]] =
None) :

Check module version compatibility against the provided cluster version.

check_compatibility(modules: Optional[list[str]] = None) :

Check for mutually exclusive modules among the provided modules.

check_enterprise(modules: Optional[list[str]] = None) :

Check if any provided modules are Starburst Enterprise features and validate license.

module_services(modules: Optional[list[str]] = None) :

Get all services defined in the provided modules.

check_volumes(modules: Optional[list[str]] = None) :

Check if any of the provided modules have persistent volumes and warn the user.

running_modules() dict[str, str][source][source]#

Retrieve running modules by inspecting active Docker containers.

Returns:

A dictionary mapping module names (lowercase strings) to their associated cluster name.

Return type:

dict[str, str]

Raises:

UserError – If any container lacks expected Minitrino labels or if a running module is not found in the loaded library data.

Notes

This method inspects active Docker containers for the current cluster and extracts module names and their associated cluster from Docker labels. Only containers with valid org.minitrino labels are considered modules.

validate_module_name(name: str) str[source][source]#

Return the module name or raise UserError with a suggestion.

Always use this method to validate any user-provided module name(s).

Parameters:

name (str) – User-supplied module name.

Returns:

Validated module name.

Return type:

str

Raises:

UserError – If the module name is not found, with a suggestion.

check_dep_modules(modules: list[str] | None = None) list[str][source][source]#

Recursively collect all direct and transitive module deps.

Parameters:

modules (Optional[list[str]]) – List of module names to check. Default is None.

Returns:

List of modules dependent to the modules provided.

Return type:

list[str]

check_module_version_requirements(modules: list[str] | None = None) None[source][source]#

Check module-cluster version compatibility.

Parameters:

modules (list[str]) – A list of module names to check version requirements for.

Raises:

UserError – If the version constraints are invalid or not satisfied.

check_compatibility(modules: list[str] | None = None) None[source][source]#

Check for mutually exclusive modules among the provided modules.

Parameters:

modules (Optional[list[str]]) – List of module names to check. Default is None.

Raises:

UserError – If incompatible modules are detected.

check_enterprise(modules: list[str] | None = None) None[source][source]#

Check for Starburst Enterprise modules and validate license.

Parameters:

modules (Optional[list[str]]) – List of module names to check. Default is None.

Raises:

UserError – If a required license is missing.

module_services(modules: list[str] | None = None) list[list][source][source]#

Get all services defined in the provided modules.

Parameters:

modules (Optional[list[str]]) – List of module names to retrieve services from. Default is None.

Returns:

List of services, each as a list containing the service key (str), service dictionary (dict), and the YAML file path (str).

Return type:

list[list]

Raises:

MinitrinoError – If a module’s Docker Compose YAML file lacks a ‘services’ section.

check_volumes(modules: list[str] | None = None) None[source][source]#

Check for persistent volumes and warn the user if any are found.

Parameters:

modules (Optional[list[str]]) – List of module names to check. Default is None.