in src/lambdas/custodian_api_handler/handlers/job_handler.py [0:0]
def _resolve_rulesets(self, tenant: Tenant, domain: RuleDomain,
ruleset_names: set[RulesetName],
licenses: tuple[License, ...]
) -> tuple[list[RulesetName], License | None, list[RulesetName]]:
"""
:param tenant:
:param domain:
:param ruleset_names:
:param licenses:
:return:
"""
if not ruleset_names and not licenses:
# or use all local rulesets
_LOG.warning('No rulesets were provided and no licenses '
'are activated')
raise ResponseFactory(HTTPStatus.BAD_REQUEST).message(
f'No licenses are activated for tenant {tenant.name} and '
f'not ruleset names provided. '
f'Specify ruleset names to use local rulesets or activate '
f'a license'
).exc()
if not ruleset_names: # but licenses
_LOG.info('No rulesets were provided but some licenses are '
'activated. Resolving all rulesets from license')
standard_rulesets = []
lic, licensed_rulesets = self._resolve_all_from_licenses(
tenant=tenant,
domain=domain,
licenses=licenses
)
elif not licenses: # but ruleset names
_LOG.info('No licenses are activated but some rulesets were '
'provided. Resolving local rulesets')
standard_rulesets = self._resolve_local(
tenant=tenant,
domain=domain,
ruleset_names=ruleset_names
)
lic, licensed_rulesets = None, []
else: # both ruleset names and licenses
_LOG.info('Some licenses are activated and rulesets were '
'provided.')
standard_rulesets, lic, licensed_rulesets = self._resolve_from_names_and_licenses(
tenant=tenant,
domain=domain,
ruleset_names=ruleset_names,
licenses=licenses
)
return standard_rulesets, lic, licensed_rulesets