Viewing file: v1.py (1.78 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
from typing import List
from uaclient.api.api import APIEndpoint from uaclient.api.data_types import AdditionalInfo from uaclient.api.u.pro.security.fix import FixPlanResult, fix_plan_cve from uaclient.api.u.pro.security.fix._common import get_expected_overall_status from uaclient.config import UAConfig from uaclient.data_types import DataObject, Field, StringDataValue, data_list
class CVEFixPlanOptions(DataObject): fields = [ Field("cves", data_list(StringDataValue)), ]
def __init__(self, cves: List[str]): self.cves = cves
class CVEFixPlanResult(DataObject): fields = [ Field("expected_status", StringDataValue), Field("cves", data_list(FixPlanResult)), ]
def __init__(self, *, expected_status: str, cves: List[FixPlanResult]): self.expected_status = expected_status self.cves = cves
class CVESFixPlanResult(DataObject, AdditionalInfo): fields = [ Field("cves_data", CVEFixPlanResult), ]
def __init__(self, *, cves_data: CVEFixPlanResult): self.cves_data = cves_data
def plan(options: CVEFixPlanOptions) -> CVESFixPlanResult: return _plan(options, UAConfig())
def _plan(options: CVEFixPlanOptions, cfg: UAConfig) -> CVESFixPlanResult: cves = [] # type: List[FixPlanResult] expected_status = "" for cve in options.cves: cve_plan = fix_plan_cve(cve, cfg=cfg) expected_status = get_expected_overall_status( expected_status, cve_plan.expected_status ) cves.append(cve_plan)
return CVESFixPlanResult( cves_data=CVEFixPlanResult( expected_status=expected_status, cves=cves, ) )
endpoint = APIEndpoint( version="v1", name="CVEFixPlan", fn=_plan, options_cls=CVEFixPlanOptions, )
|