def get_licensed_ruleset_dto_list()

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