Testing script: ``` from datalib import * import time now = time.time() cve_storage = UCTCVEStorage() cve_storage.load() package_storage = UCTPackageStorage() package_storage.load(filter_releases=['bionic', 'esm-apps/bionic', 'esm-infra/bionic']) usn_storage = USNStorage() usn_storage.load() cve_storage.link_pkg_storage(package_storage) usn_storage.link_pkg_storage(package_storage) usn_storage.link_cve_storage(cve_storage) later = time.time() print('Total time: ', later - now) gpac = package_storage.get_package('python-idna') for version in gpac.source_versions: print(gpac, gpac.source_info[version]['release'], version) for binary in gpac.binaries[version]: print(f' - {binary.name} {binary.version} {binary.arches}') print() print('------------------') print('Showing CVE-2024-3651') print('------------------') cve = cve_storage.get_cve('CVE-2024-3651') print(cve.id) print(cve.description) for entry in cve.pkg_entries: print(' -', entry.cve, entry.pkg, entry.release, entry.status, entry.note) print() print('------------------') print('Loading jammy into the storage') package_storage.load_release('jammy') cve = cve_storage.get_cve('CVE-2024-3651') print('------------------') print('Showing CVE entries now') for entry in cve.pkg_entries: print(' -', entry.cve, entry.pkg, entry.release, entry.status, entry.note) print() print('------------------') print('Showing python-idna package') print('------------------') gpac = package_storage.get_package('python-idna') for version in gpac.source_versions: print(gpac, gpac.source_info[version]['release'], version) for binary in gpac.binaries[version]: print(f' - {binary.name} {binary.version} {binary.arches}') print() print('------------------') print('Showing USNs for this CVE') print('------------------') usns = usn_storage.get_usns_by_cve(cve.id) for usn in usns: print('USN',usn.id) print(usn.description) for cve in usn.cves: print(cve.id) print('Affected releases:', ','.join(list(usn.releases.keys()))) for source_pkg in usn.package_fixed_versions: print(source_pkg.name) for fixed_version, release in usn.package_fixed_versions[source_pkg]: print(' - Fixed at', fixed_version, 'in', release) print() print('------------------') print('Unloading jammy from the storage') package_storage.unload_release('jammy') print() print('------------------') print('Showing python-idna package') print('------------------') gpac = package_storage.get_package('python-idna') for version in gpac.source_versions: print(gpac, gpac.source_info[version]['release'], version) for binary in gpac.binaries[version]: print(f' - {binary.name} {binary.version} {binary.arches}') cve = cve_storage.get_cve('CVE-2024-3651') print() print('------------------') print('Showing CVE-2024-3651') print('------------------') for entry in cve.pkg_entries: print(' -', entry.cve, entry.pkg, entry.release, entry.status, entry.note) print() print('------------------') print('Showing USNs for this CVE') print('------------------') usns = usn_storage.get_usns_by_cve(cve.id) for usn in usns: print('USN',usn.id) print(usn.description) for cve in usn.cves: print(cve.id) print('Affected releases:', ','.join(list(usn.releases.keys()))) for source_pkg in usn.package_fixed_versions: print(source_pkg.name) for fixed_version, release in usn.package_fixed_versions[source_pkg]: print(' - Fixed at', fixed_version, 'in', release) ```