utils.roles.validation package

Submodules

utils.roles.validation.deploy_id module

Utility for validating deployment application IDs against defined roles and inventory.

class utils.roles.validation.deploy_id.ValidDeployId

Bases: object

validate(inventory_path: str, ids: list[str]) → dict[str, dict[str, bool]]

Validate a list of application IDs against both role definitions and inventory.

Returns:

{

“app1”: {“in_roles”: False, “in_inventory”: True}, “app2”: {“in_roles”: True, “in_inventory”: False},

}

utils.roles.validation.invokable module

class utils.roles.validation.invokable.DeploymentTypeRule(name: 'str', include_re: 're.Pattern[str]', exclude_re: 're.Pattern[str] | None')

Bases: object

exclude_re: Pattern[str] | None
include_re: Pattern[str]
name: str
utils.roles.validation.invokable.list_invokable_app_ids() → list[str]
utils.roles.validation.invokable.list_invokables_by_type(*, rules: Iterable[DeploymentTypeRule] = (DeploymentTypeRule(name='server', include_re=re.compile('^(web-app-|web-svc-|web-opt-)'), exclude_re=None), DeploymentTypeRule(name='workstation', include_re=re.compile('^(desk-|util-desk-)'), exclude_re=None), DeploymentTypeRule(name='universal', include_re=re.compile('.*'), exclude_re=None)), lifecycles: set[str] | None = None, skip_mode: str | None = None) → dict[str, list[str]]
Returns:

{

“server”: […], “workstation”: […], “universal”: […],

}

“universal” = invokable roles that are NOT matched by any other non-universal rule.

If lifecycles is provided, only roles whose galaxy_info.lifecycle is in the set are included. Missing lifecycle is treated as “not matching”.

utils.roles.validation.invokable.types_from_group_names(group_names: Iterable[str], *, rules: Iterable[DeploymentTypeRule] = (DeploymentTypeRule(name='server', include_re=re.compile('^(web-app-|web-svc-|web-opt-)'), exclude_re=None), DeploymentTypeRule(name='workstation', include_re=re.compile('^(desk-|util-desk-)'), exclude_re=None), DeploymentTypeRule(name='universal', include_re=re.compile('.*'), exclude_re=None))) → list[str]
SPOT:
  • invokable is defined by categories.yml via _get_invokable_paths()/_is_role_invokable()

  • server/workstation/universal classification is defined by DEFAULT_RULES

Semantics:

universal = invokable AND NOT matched by any non-universal rule.

utils.roles.validation.resources module

utils.roles.validation.resources.filter_roles_by_min_storage(*, role_names: Iterable[str], required_storage: str | float, emit_warnings: bool = False) → list[str]

Module contents