in src/run.py [0:0]
def get_licensed_ruleset_dto_list(tenant: Tenant, job: Job) -> list[dict]:
"""
Preliminary step, given an affected license and respective ruleset(s),
can raise
"""
licensed, standard = [], []
for r in map(RulesetName, job.rulesets):
if r.license_key:
licensed.append(r)
else:
standard.append(r)
if not licensed:
return []
license_key = licensed[0].license_key
rulesets = [RulesetName(r.name, r.version, None) for r in licensed]
lic = SP.license_service.get_nullable(license_key)
rulesets = fetch_licensed_ruleset_list(
tenant=tenant, licensed={
lic.tenant_license_key(tenant.customer_name): [r.to_str() for r in rulesets]
}
)
# LM returns rulesets of specific versions even if we don't specify
# versions. The code below just updates job's rulesets with valid versions
licensed = [RulesetName(i['id']) for i in rulesets]
_LOG.debug(f'Licensed rulesets are fetched: {licensed}')
SP.job_service.update(job, rulesets=[s.to_str() for s in standard] + [
RulesetName(i.name, i.version, license_key).to_str() for i in licensed
])
return rulesets