def test_erratum_roundtrip(data_path): """ErratumUnit from/to data are (approximately) the inverse of each other.""" with open(os.path.join(data_path, "sample-erratum.json"), "rt") as f: original_data = json.load(f) # Load it from data loaded = Unit.from_data(original_data) # Should be this type assert isinstance(loaded, ErratumUnit) # We've loaded from a dict, now let's try to convert it back roundtrip_data = loaded._to_data() # What we get back should be *almost* exactly equal to what we fed # in, but there are a few minor differences, so massage a bit before # comparison... # The repo list ends up sorted so there's one canonical representation original_data["repository_memberships"].sort() # A couple of fields synthesized in the Pulp response don't make it # into our model del original_data["_last_updated"] del original_data["_href"] del original_data["children"] assert roundtrip_data == original_data
def test_modulemd_dependencies(): """ Modulemd dependecies value comes from expected fields on pulp unit. """ unit = Unit.from_data( { "_content_type_id": "modulemd", "name": "test-modulemd", "stream": "1.0", "version": 1234, "context": "abcd", "arch": "x86_64", "dependencies": [ {"platform": ["el8"], "foo-md": ["stream_a", "stream_b"], "bar-md": []} ], } ) # there should only 3 dependecies # foo-md with 2 streams, bar-md with no stream specified # platform entry is skipped assert len(unit.dependencies) == 3 sorted_deps = sorted(unit.dependencies, key=lambda x: x.name) assert sorted_deps[0].name == "bar-md" assert sorted_deps[0].stream is None assert sorted_deps[1].name == "foo-md" assert sorted_deps[1].stream == "stream_a" assert sorted_deps[2].name == "foo-md" assert sorted_deps[2].stream == "stream_b"
def test_rpm_requires_provides(): """Requires and provides values come from expected fields on pulp unit.""" unit = Unit.from_data({ "_content_type_id": "rpm", "name": "bash", "epoch": "0", "filename": "bash-x86_64.rpm", "version": "4.0", "release": "1", "arch": "x86_64", "provides": [{ "name": "test-provides", "version": "1.0", "release": "1", "epoch": "0", "flags": "EQ", }], "requires": [{ "name": "test-requires", "version": "1.0", "release": "1", "epoch": "0", "flags": "LT", }], }) assert len(unit.provides) == 1 provides_item = unit.provides[0] provides_item.name == "test-provides" provides_item.version == "1.0" provides_item.release == "1" provides_item.epoch == "0" provides_item.flags == "EQ" assert len(unit.requires) == 1 requires_item = unit.requires[0] requires_item.name == "test-requires" requires_item.version == "1.0" requires_item.release == "1" requires_item.epoch == "0" requires_item.flags == "LT"
def test_rpm_sums(): """Checksum values come from expected fields on pulp unit.""" unit = Unit.from_data({ "_content_type_id": "rpm", "name": "bash", "epoch": "0", "filename": "bash-x86_64.rpm", "version": "4.0", "release": "1", "arch": "x86_64", # Sums are stored in a dict per algorithm... "checksums": { "md5": "aaa07a382ec010c01889250fce66fb13", "sha1": "bbb9ae4aeea6946a8668445395ba10b7399523a0", "sha256": "ccce93732fcf8d63fe1cce759664982dbd5b23161f007dba8561862adc96d063", }, # But there is also a top-level "checksum" which is always sha256. # Normally this should be exactly equal to checksums.sha256 of course; # in this test we force a difference so we can tell which value was used. "checksum": "ddde93732fcf8d63fe1cce759664982dbd5b23161f007dba8561862adc96d063", }) # It should get these two from the checksums dict. assert unit.md5sum == "aaa07a382ec010c01889250fce66fb13" assert unit.sha1sum == "bbb9ae4aeea6946a8668445395ba10b7399523a0" # This one should instead come from "checksum". assert (unit.sha256sum == "ddde93732fcf8d63fe1cce759664982dbd5b23161f007dba8561862adc96d063")
def test_remove_loads_units(fast_poller, requests_mocker, client): """Remove returns unit info loaded from units_successful.""" repo = Repository(id="some-repo") repo.__dict__["_client"] = client requests_mocker.post( "https://pulp.example.com/pulp/api/v2/repositories/some-repo/actions/unassociate/", [{ "json": { "spawned_tasks": [{ "task_id": "task1" }] } }], ) unit_data = [ { "type_id": "iso", "unit_key": { "name": "hello.txt", "size": 23, "checksum": "a" * 64 }, }, { "type_id": "rpm", "unit_key": { "name": "bash", "epoch": "0", "version": "4.0", "release": "1", "arch": "x86_64", }, }, { "type_id": "modulemd", "unit_key": { "name": "module", "stream": "s1", "version": 1234, "context": "a1b2c3", "arch": "s390x", }, }, { "type_id": "yum_repo_metadata_file", "unit_key": { "data_type": "productid", "repo_id": "some-repo" }, }, { "type_id": "bizarre_type", "unit_key": { "whatever": "data" } }, ] requests_mocker.post( "https://pulp.example.com/pulp/api/v2/tasks/search/", [{ "json": [{ "task_id": "task1", "state": "finished", "result": { "units_successful": unit_data }, }] }], ) tasks = repo.remove_content().result() # It should return one task assert len(tasks) == 1 task = tasks[0] # It should be the expected successful task assert task.id == "task1" assert task.completed assert task.succeeded # It should have loaded expected units from the units_successful dict assert set(task.units) == set([ FileUnit(path="hello.txt", size=23, sha256sum="a" * 64), RpmUnit( name="bash", epoch="0", version="4.0", release="1", arch="x86_64", sourcerpm=None, ), ModulemdUnit(name="module", stream="s1", version=1234, context="a1b2c3", arch="s390x"), YumRepoMetadataFileUnit(data_type="productid", content_type_id="yum_repo_metadata_file"), Unit(content_type_id="bizarre_type"), ])
def test_can_load_erratum(data_path): """ErratumUnit loads correctly from a complex sample Pulp response.""" # This JSON was taken from a real Pulp search, though it was slightly trimmed # to reduce the size of the test data (e.g. cutting out modules for some arches, # cutting down the repo and package lists). with open(os.path.join(data_path, "sample-erratum.json"), "rt") as f: data = json.load(f) # It should parse correctly loaded = Unit.from_data(data) # It should be equal to the following... # Note, in order to make the test more manageable in case of failure, we verify # some of the more complicated nested fields first, then omit them from the # later comparison of the overall unit. This way the pytest output is more amenable # to copy-pasting values back into the test if behavior changes. assert loaded.references == [ ErratumReference( href="https://access.redhat.com/errata/RHSA-2019:0975", id="RHSA-2019:0975", title="RHSA-2019:0975", type="self", ), ErratumReference( href="https://bugzilla.redhat.com/show_bug.cgi?id=1664908", id="1664908", title= "CVE-2019-5736 runc: Execution of malicious containers allows for container escape and access to host filesystem", type="bugzilla", ), ErratumReference( href="https://bugzilla.redhat.com/show_bug.cgi?id=1695689", id="1695689", title= "[stream rhel8] don't allow a container to connect to random services", type="bugzilla", ), ErratumReference( href="https://www.redhat.com/security/data/cve/CVE-2019-5736.html", id="CVE-2019-5736", title="CVE-2019-5736", type="cve", ), ErratumReference( href= "https://access.redhat.com/security/updates/classification/#important", id="classification", title="important", type="other", ), ] assert loaded.pkglist == [ ErratumPackageCollection( name="collection-0", packages=[ ErratumPackage( arch="x86_64", filename= "slirp4netns-debuginfo-0.1-2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551.x86_64.rpm", epoch="0", name="slirp4netns-debuginfo", version="0.1", release="2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="917ceef4aba550095d6ce5ab72b20e2e", sha1sum=None, sha256sum= "c4de28590622f59415de3a8b9fcb427cfd34637c4a7e6accd29d3f39d7699e6d", ), ErratumPackage( arch="x86_64", filename= "slirp4netns-debugsource-0.1-2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551.x86_64.rpm", epoch="0", name="slirp4netns-debugsource", version="0.1", release="2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="9519596175f7eb90439f4f60db38e97d", sha1sum=None, sha256sum= "d0f48388b6ba9d62d2350cd4216755f2517aaa3934663e2fc192b2f40c615e49", ), ErratumPackage( arch="x86_64", filename= "slirp4netns-0.1-2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551.x86_64.rpm", epoch="0", name="slirp4netns", version="0.1", release="2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="af0d6447dc9f81d2718e70f103070bc0", sha1sum=None, sha256sum= "e7a6c321ae08e6050c39d5a0c94d6e765c1a9d4d2b030f219bf6d916619b29f1", ), ErratumPackage( arch="SRPMS", filename= "slirp4netns-0.1-2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551.src.rpm", epoch="0", name="slirp4netns", version="0.1", release="2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="c863064c1edd9f5d78208e873692c9dd", sha1sum=None, sha256sum= "be2d49e797db6395e819335ea8debe2639d562a621c730604b38139961d9d05b", ), ErratumPackage( arch="x86_64", filename= "skopeo-debugsource-0.1.32-3.git1715c90.module+el8.0.0+2958+4e823551.x86_64.rpm", epoch="1", name="skopeo-debugsource", version="0.1.32", release="3.git1715c90.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="6ee19888b7b3f900063331c75f9c4ab6", sha1sum=None, sha256sum= "71a82a595c93c9aef8c316fd87937e0334af51e2fc2996970ce39285daf03053", ), ErratumPackage( arch="x86_64", filename= "skopeo-0.1.32-3.git1715c90.module+el8.0.0+2958+4e823551.x86_64.rpm", epoch="1", name="skopeo", version="0.1.32", release="3.git1715c90.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="b6ae238c20daf85543d25daa292f83a7", sha1sum=None, sha256sum= "59070bd8647cdb34f434ef1a5593ff727ab87a0df105417de0bf16a2b5232512", ), ErratumPackage( arch="x86_64", filename= "runc-debugsource-1.0.0-55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba.x86_64.rpm", epoch="0", name="runc-debugsource", version="1.0.0", release= "55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="eedf3c1be375ebbe727471f4c9a225d9", sha1sum=None, sha256sum= "f408bd733935a79274bb810bd1cff00bca93fcfa410315b1e4f071ae177774e6", ), ], short="", module=ErratumModule( name="container-tools", stream="rhel8", version="8000020190416221845", context="2ffa3d27", arch="x86_64", ), ), ErratumPackageCollection( name="collection-3", packages=[ ErratumPackage( arch="SRPMS", filename= "slirp4netns-0.1-2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551.src.rpm", epoch="0", name="slirp4netns", version="0.1", release="2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="c863064c1edd9f5d78208e873692c9dd", sha1sum="f3d9ae4aeea6946a8668445395ba10b7399523a0", sha256sum= "be2d49e797db6395e819335ea8debe2639d562a621c730604b38139961d9d05b", ), ErratumPackage( arch="s390x", filename= "skopeo-debugsource-0.1.32-3.git1715c90.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="1", name="skopeo-debugsource", version="0.1.32", release="3.git1715c90.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="76161e93a42383b4b6b1f42482f3dd4d", sha1sum=None, sha256sum= "aea7d37b68d252d5e57d6db50b5c26188412d6464e0b81a5a6deae431ea55bee", ), ErratumPackage( arch="s390x", filename= "skopeo-debuginfo-0.1.32-3.git1715c90.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="1", name="skopeo-debuginfo", version="0.1.32", release="3.git1715c90.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="8004f3a05e5eac46c76a2e805be3809e", sha1sum=None, sha256sum= "dda994b3f186ed3ce6a9d7c48402a0bab7757eb020b72991c9dd35e615b5e4eb", ), ErratumPackage( arch="s390x", filename= "runc-debugsource-1.0.0-55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba.s390x.rpm", epoch="0", name="runc-debugsource", version="1.0.0", release= "55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="6b171a203c7bf91b8f0b78f453fcef9c", sha1sum=None, sha256sum= "845de746c15d5bf7e29f5a13011066c968c1dfb05cd554b0450a2d25a7e4e3bc", ), ErratumPackage( arch="SRPMS", filename= "runc-1.0.0-55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba.src.rpm", epoch="0", name="runc", version="1.0.0", release= "55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="364ba52d0e1eb8fbe899c3424520eb56", sha1sum=None, sha256sum= "3a40f68a0b93dd2ac3cddf5b1d58ef77372942777fc798ff413453d6fa0253f7", ), ErratumPackage( arch="s390x", filename= "slirp4netns-debuginfo-0.1-2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="slirp4netns-debuginfo", version="0.1", release="2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="797254858bba898ace72128df8d8ec3e", sha1sum=None, sha256sum= "e169df356459146ceaa745297d8df49a3b15cc9e648b418869ca9e35020f3cac", ), ErratumPackage( arch="s390x", filename= "runc-1.0.0-55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba.s390x.rpm", epoch="0", name="runc", version="1.0.0", release= "55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="25e8c8cd2ed9e0a0a02dc5aef09889a8", sha1sum=None, sha256sum= "46bb4965c22bca3aadc383503a5e84d2879b19217830ee0d04f029aa0bf92f07", ), ErratumPackage( arch="s390x", filename= "runc-debuginfo-1.0.0-55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba.s390x.rpm", epoch="0", name="runc-debuginfo", version="1.0.0", release= "55.rc5.dev.git2abd837.module+el8.0.0+3049+59fd2bba", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="326c37fb3566e45dc014968e5374fa87", sha1sum=None, sha256sum= "5db29f35f2f40cfada2231146a8f6d1e3f430722c0f8d43a2638259ff2627e3f", ), ErratumPackage( arch="noarch", filename= "podman-docker-1.0.0-2.git921f98f.module+el8.0.0+2958+4e823551.noarch.rpm", epoch="0", name="podman-docker", version="1.0.0", release="2.git921f98f.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="ad952f9efc5f29afec5fb9530deb28b6", sha1sum=None, sha256sum= "40d3190ed329073ed3454bb726a7452b1b3ba8cd87b7d78183e42e899d187a1d", ), ErratumPackage( arch="s390x", filename= "podman-debugsource-1.0.0-2.git921f98f.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="podman-debugsource", version="1.0.0", release="2.git921f98f.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="30b56bf9f2be62a4eb2f04cb6b6fd21a", sha1sum=None, sha256sum= "052278774a5459fea098ca1307756adf8f3039cac64aff3b8968ceb765618b09", ), ErratumPackage( arch="s390x", filename= "podman-debuginfo-1.0.0-2.git921f98f.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="podman-debuginfo", version="1.0.0", release="2.git921f98f.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="1597e5db5b8b4019b3025c986286091e", sha1sum=None, sha256sum= "af7a7ba25f770cdd7710d4fc9fbf03b9c42e48b8ec1012592a8c9dd4f67d8fa6", ), ErratumPackage( arch="SRPMS", filename= "skopeo-0.1.32-3.git1715c90.module+el8.0.0+2958+4e823551.src.rpm", epoch="1", name="skopeo", version="0.1.32", release="3.git1715c90.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="3400331ed99d0400067f9aed159e1e0d", sha1sum=None, sha256sum= "21dc81a5e23fee5345680ff6862536ae7390a0e9e91dba6fc667e1e60dde57d9", ), ErratumPackage( arch="SRPMS", filename= "podman-1.0.0-2.git921f98f.module+el8.0.0+2958+4e823551.src.rpm", epoch="0", name="podman", version="1.0.0", release="2.git921f98f.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="c3da563d95ae856854e0db46bd92d98b", sha1sum=None, sha256sum= "39757bdfbe409896cff75635e3afe6aea21b25c09aab0789961d6168e8c8bff6", ), ErratumPackage( arch="SRPMS", filename= "containernetworking-plugins-0.7.4-3.git9ebe139.module+el8.0.0+2958+4e823551.src.rpm", epoch="0", name="containernetworking-plugins", version="0.7.4", release="3.git9ebe139.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="fdb5afbae0ad44795776d843f2defd76", sha1sum=None, sha256sum= "44e465a362abb8357f2019057162d02226a510abc78c15c65a88d72c67dd53b5", ), ErratumPackage( arch="s390x", filename= "containernetworking-plugins-0.7.4-3.git9ebe139.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="containernetworking-plugins", version="0.7.4", release="3.git9ebe139.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="cc9e5527550ebf573ad36c5092c19ffc", sha1sum=None, sha256sum= "b212c36df71a20689079592f27a9d03870a623a11f51a9761f7973e659939f81", ), ErratumPackage( arch="s390x", filename= "containernetworking-plugins-debugsource-0.7.4-3.git9ebe139.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="containernetworking-plugins-debugsource", version="0.7.4", release="3.git9ebe139.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="85a20df93f2b529ad239e00492b67cd7", sha1sum=None, sha256sum= "3a0b84d25293ede8957c38dae236947cd508415a7f0b892ad205d8cdb37f35e1", ), ErratumPackage( arch="SRPMS", filename= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", epoch="2", name="container-selinux", version="2.94", release="1.git1e99f1d.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="e4265aa655362fdf6cc0265a29dc3792", sha1sum=None, sha256sum= "e014ffe8047a36c08ddfdaa4f96a09d954cef60c17c2c79a6dc0d72d4ba5770e", ), ErratumPackage( arch="s390x", filename= "skopeo-0.1.32-3.git1715c90.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="1", name="skopeo", version="0.1.32", release="3.git1715c90.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="d382120e5fdaaa24e405fbb5ee670451", sha1sum=None, sha256sum= "501765be7912c9d08ab5c5f5752ecf73569536457cd3ee2ce0643f70d3991cde", ), ErratumPackage( arch="s390x", filename= "podman-1.0.0-2.git921f98f.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="podman", version="1.0.0", release="2.git921f98f.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="69ce75e8b3f2a2271cd8f17b6b1db4b7", sha1sum=None, sha256sum= "893044e6293c97fd33e55d57058505b012d5aada5ebfc25cc00aa6950160cd84", ), ErratumPackage( arch="s390x", filename= "buildah-1.5-3.gite94b4f9.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="buildah", version="1.5", release="3.gite94b4f9.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="d63e2bc9c179ea8135b9fc7ce8f4e326", sha1sum=None, sha256sum= "044fd3ab6a4231843c704998b61eb161839ae0c203ed2b0a9cbe0259f35bc65b", ), ErratumPackage( arch="s390x", filename= "slirp4netns-debugsource-0.1-2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="slirp4netns-debugsource", version="0.1", release="2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="c2e8d125a5e2c65fef41cca893048400", sha1sum=None, sha256sum= "a85891d07733c3e7b765229358d2cec33331731649265a105a7b742e5b0accfa", ), ErratumPackage( arch="SRPMS", filename= "fuse-overlayfs-0.3-2.module+el8.0.0+2958+4e823551.src.rpm", epoch="0", name="fuse-overlayfs", version="0.3", release="2.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="b09d3edcc9350a269b6c4c4c277d270a", sha1sum=None, sha256sum= "88c203351d6aae3f5a02ea46fc221be18d28e3c3f2c5ebd17bada049bdb9e4d8", ), ErratumPackage( arch="noarch", filename= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.noarch.rpm", epoch="2", name="container-selinux", version="2.94", release="1.git1e99f1d.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="f7d31e5f099bcdadf419239db840baa8", sha1sum=None, sha256sum= "8a3a4eb8c3ee529e3b103ece6200517ff6834d24dab1d202e392347efedc254e", ), ErratumPackage( arch="s390x", filename= "containernetworking-plugins-debuginfo-0.7.4-3.git9ebe139.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="containernetworking-plugins-debuginfo", version="0.7.4", release="3.git9ebe139.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="da26f260ae089792ec07a876f4dbf2bb", sha1sum=None, sha256sum= "e78ffa580ea6daad1fd16c15aa3483f2d85f0c15d6ba23c4a372daaa4382e31f", ), ErratumPackage( arch="SRPMS", filename= "buildah-1.5-3.gite94b4f9.module+el8.0.0+2958+4e823551.src.rpm", epoch="0", name="buildah", version="1.5", release="3.gite94b4f9.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="d2366a6349f28506bfd4fb0525b533d7", sha1sum=None, sha256sum= "55756e48575e8cf7eab5021c8ecd788e66741287a6da6d4dc18ed005e22e3093", ), ErratumPackage( arch="s390x", filename= "buildah-debuginfo-1.5-3.gite94b4f9.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="buildah-debuginfo", version="1.5", release="3.gite94b4f9.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="4c8460d1f71c6d574aeca973ad2e0d89", sha1sum=None, sha256sum= "65c626e0d15440fb56e8e0489da3f1ccf1442f3ba6ebf3338eefdf7ee98cea89", ), ErratumPackage( arch="s390x", filename= "slirp4netns-0.1-2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="slirp4netns", version="0.1", release="2.dev.gitc4e1bc5.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="41cec16504692c5bc462b7d5f8737087", sha1sum=None, sha256sum= "0e9580680295adeba3bc9f033176492f881adb98cbe919b921b9ec9a74f80181", ), ErratumPackage( arch="s390x", filename= "fuse-overlayfs-debuginfo-0.3-2.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="fuse-overlayfs-debuginfo", version="0.3", release="2.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="51c4b466077a37084d7fedfdda3f57ff", sha1sum=None, sha256sum= "fddcdcf52fec789deb0d68d871cc3e9960ec4f1f0930c3275f188b5a968d93d1", ), ErratumPackage( arch="s390x", filename= "fuse-overlayfs-debugsource-0.3-2.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="fuse-overlayfs-debugsource", version="0.3", release="2.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="ba7f2bac9de2bdf232187b9c543c47fc", sha1sum=None, sha256sum= "c7b0b7de23a900d05fe4052614e68226b00f1252b505898e14da3382002c26ef", ), ErratumPackage( arch="s390x", filename= "oci-systemd-hook-0.1.15-2.git2d0b8a3.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="1", name="oci-systemd-hook", version="0.1.15", release="2.git2d0b8a3.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="122fc1079f4a05e0b2dee5e60dea3e54", sha1sum=None, sha256sum= "593595e3005ea32cf2ca84c93e1cba832461b2854b003046f3bd59f2e331819b", ), ErratumPackage( arch="s390x", filename= "fuse-overlayfs-0.3-2.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="0", name="fuse-overlayfs", version="0.3", release="2.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="5eeec013645c903124089ceae13e6710", sha1sum=None, sha256sum= "28211a39e8bbdaf8792fc4485699696e67f62a0c4a40fc22a9ac1b7399f8edf7", ), ErratumPackage( arch="SRPMS", filename= "oci-systemd-hook-0.1.15-2.git2d0b8a3.module+el8.0.0+2958+4e823551.src.rpm", epoch="1", name="oci-systemd-hook", version="0.1.15", release="2.git2d0b8a3.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="a338cf74fe10bce021bbd5d8ba335657", sha1sum=None, sha256sum= "e7c95270d345a04b03d9f2351aca6f2f298764a89bf2039b27de71adc1362f8c", ), ErratumPackage( arch="SRPMS", filename= "oci-umount-2.3.4-2.git87f9237.module+el8.0.0+2958+4e823551.src.rpm", epoch="2", name="oci-umount", version="2.3.4", release="2.git87f9237.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="aa746cb0a01066d7fa670ca420833cf0", sha1sum=None, sha256sum= "eeb07a3822a3a4e4f78dd94e0e34a3b227d7d17d87ea04267439eb27c2265b33", ), ErratumPackage( arch="s390x", filename= "oci-systemd-hook-debuginfo-0.1.15-2.git2d0b8a3.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="1", name="oci-systemd-hook-debuginfo", version="0.1.15", release="2.git2d0b8a3.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="a55e75853de831fec4462adf79257a03", sha1sum=None, sha256sum= "e01939fdfa24a707ed422262bb19a68e5e22995afd0f669be06c33202e00847a", ), ErratumPackage( arch="s390x", filename= "oci-systemd-hook-debugsource-0.1.15-2.git2d0b8a3.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="1", name="oci-systemd-hook-debugsource", version="0.1.15", release="2.git2d0b8a3.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="9b29f218aac3861685faff8c69bb03ac", sha1sum=None, sha256sum= "c55dfc5af5c4a715f69b95a3772a4ede50db2d78c88cc9ca00b271d9f8b0c4a4", ), ErratumPackage( arch="s390x", filename= "oci-umount-debuginfo-2.3.4-2.git87f9237.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="2", name="oci-umount-debuginfo", version="2.3.4", release="2.git87f9237.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="1f891c443aa35396dd57ae1185f98f9c", sha1sum=None, sha256sum= "344385d9c0cfdca4ddf16876936e36abad91c1cd7b99d3cb86e2fc5f858cb56f", ), ErratumPackage( arch="s390x", filename= "oci-umount-2.3.4-2.git87f9237.module+el8.0.0+2958+4e823551.s390x.rpm", epoch="2", name="oci-umount", version="2.3.4", release="2.git87f9237.module+el8.0.0+2958+4e823551", src= "container-selinux-2.94-1.git1e99f1d.module+el8.0.0+2958+4e823551.src.rpm", reboot_suggested=None, md5sum="eba982381b3a54d0ae7c14230f29fd69", sha1sum=None, sha256sum= "872610d40f5f50030ef6188d26178ae7b0dc8eedab72e285c8b513f8df145a2b", ), ], short="", module=ErratumModule( name="container-tools", stream="rhel8", version="8000020190416221845", context="2ffa3d27", arch="s390x", ), ), ] loaded = attr.evolve(loaded, pkglist=[], references=[]) assert loaded == ErratumUnit( unit_id="d003313d-2272-4ba3-8ea9-820269284dc2", id="RHSA-2019:0975", version="1", status="final", updated="2019-05-07 03:39:02 UTC", issued="2019-05-07 03:39:11 UTC", description= "The container-tools module contains tools for working with containers, notably podman, buildah, skopeo, and runc.\n\nSecurity Fix(es):\n\n* A flaw was found in the way runc handled system file descriptors when running containers. A malicious container could use this flaw to overwrite contents of the runc binary and consequently run arbitrary commands on the container host system. (CVE-2019-5736)\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.\n\nBug Fix(es):\n\n* [stream rhel8] rebase container-selinux to 2.94 (BZ#1693675)\n\n* [stream rhel8] unable to mount disk at `/var/lib/containers` via `systemd` unit when `container-selinux` policy installed (BZ#1695669)\n\n* [stream rhel8] don't allow a container to connect to random services (BZ#1695689)", pushcount="8", reboot_suggested=False, from_="*****@*****.**", rights="Copyright 2019 Red Hat Inc", title="Important: container-tools:rhel8 security and bug fix update", severity="Important", release="0", type="security", solution= "For details on how to apply this update, which includes the changes described in this advisory, refer to:\n\nhttps://access.redhat.com/articles/11258", summary= "An update for the container-tools:rhel8 module is now available for Red Hat Enterprise Linux 8.\n\nRed Hat Product Security has rated this update as having a security impact of Important. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section.", content_types=["module"], references=[], pkglist=[], content_type_id="erratum", repository_memberships=[ "all-rpm-content", "rhel-8-for-aarch64-appstream-source-rpms__8_DOT_0", "rhel-8-for-aarch64-appstream-source-rpms__8_DOT_1", "rhel-8-for-aarch64-appstream-source-rpms__8_DOT_2", "rhel-8-for-aarch64-appstream-source-rpms__8_DOT_3", "rhel-8-for-ppc64le-appstream-rpms__8_DOT_0", "rhel-8-for-ppc64le-appstream-rpms__8_DOT_1", "rhel-8-for-ppc64le-appstream-rpms__8_DOT_2", "rhel-8-for-ppc64le-appstream-rpms__8_DOT_3", "rhel-8-for-s390x-appstream-rpms__8", "rhel-8-for-s390x-appstream-rpms__8_DOT_1", "rhel-8-for-s390x-appstream-rpms__8_DOT_2", "rhel-8-for-x86_64-appstream-rpms__8", ], )