From e46c212b06ed83061e4133c9b243b46b40bc6f38 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Jun 07 2024 22:21:55 +0000 Subject: [PATCH 1/2] container manifests: tweak use of self.container_repos this is how it was always meant to be, it was overlooked in the commit that created this method. Signed-off-by: Adam Williamson --- diff --git a/fedora_image_uploader/handler.py b/fedora_image_uploader/handler.py index 15e106d..6a769e2 100644 --- a/fedora_image_uploader/handler.py +++ b/fedora_image_uploader/handler.py @@ -102,7 +102,7 @@ class Uploader: arch and you'll get the correct image. This is how commands, Containerfiles and so on can be arch-independent. """ - for repo, arch in self.container_repos.items(): + for repo, builtarches in self.container_repos.items(): # our local name for the manifest we're creating manref = f"localhost/fiu-temp-{repo}-{str(ffrel.relnum)}" # we don't have the image files any more, so we'll just @@ -113,7 +113,7 @@ class Uploader: _run(("buildah", "rmi", manref), failok=True) # create the manifest with all arches createargs = ["buildah", "manifest", "create", manref] - createargs.extend(f"{imgrefbase}-{arch}" for arch in self.container_repos[repo]) + createargs.extend(f"{imgrefbase}-{arch}" for arch in builtarches) _run(createargs) for registry in self.conf["container"]["registries"]: # something like "registry.fedoraproject.org/fedora:40" From fe807fe3510191d0ad64294b794c13559d79ac75 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Jun 07 2024 22:35:16 +0000 Subject: [PATCH 2/2] containers: only publish manifest if all current arches present (#17) There's a problem with always updating the multi-arch container manifests, if the relevant image fails to build on some arches. Say in the last compose we built x86_64 and aarch64. The current manifest will have both arches. Now say in the current compose, aarch64 fails and we only get an x86_64 image. If we go ahead and generate a new manifest and publish it, the aarch64 image is essentially "lost". The one from the previous compose would still be available under the arch specific name, as "fedora:40-aarch64" or whatever, but most use cases don't use that name, they just request "fedora:40" and expect the manifest to point to an image. If someone did that on aarch64 in this scenario, it would fail. On advice from @nalin in #17, this addresses that problem by refusing to publish an updated multi-arch manifest at all if any arch that is in the current manifest failed in the compose being processed. This runs the risk of our manifests going stale if we do not fix failing arches promptly, but nalin felt this is preferable to the alternatives: 1. Just go ahead and "lose" failed arches 2. Generate a "hybrid" manifest containing successful images from the new compose along with existing images from the current manifest for arches that failed If this turns out to be a big problem, we ought to be able to tweak this code to alternative #2 quite easily. Signed-off-by: Adam Williamson --- diff --git a/fedora_image_uploader/handler.py b/fedora_image_uploader/handler.py index 6a769e2..43d3092 100644 --- a/fedora_image_uploader/handler.py +++ b/fedora_image_uploader/handler.py @@ -1,5 +1,6 @@ import datetime import hashlib +import json import logging import lzma import os @@ -23,10 +24,11 @@ from urllib3.util import Retry from . import PLAYBOOKS +DOCKER_ARCHES = {"amd64": "x86_64", "arm64": "aarch64", "ppc64le": "ppc64le", "s390x": "s390x"} _log = logging.getLogger(__name__) -def _run(args: Iterable[str], failok=False): +def _run(args: Iterable[str], failok=False) -> subprocess.CompletedProcess: """Run a command and handle errors.""" _log.debug("image_uploader running command %s", " ".join(args)) try: @@ -42,6 +44,7 @@ def _run(args: Iterable[str], failok=False): _log.error("stdout: %s", ret.stdout) _log.error("stderr: %s", ret.stderr) raise fm_exceptions.Nack() + return ret class Uploader: @@ -108,12 +111,22 @@ class Uploader: # we don't have the image files any more, so we'll just # find them on the first registry firstreg = self.conf["container"]["registries"][0] - imgrefbase = f"{firstreg}/{repo}:{str(ffrel.relnum)}" + firstregref = f"{firstreg}/{repo}:{str(ffrel.relnum)}" + # ...but first, bail if any arches are missing + missing = self._missing_manifest_arches(firstregref, builtarches) + if missing: + _log.error( + "Arches %s in current manifest were not built, not publishing manifest", + " ".join(missing), + ) + # we assume all registries always have the same + # content, so if we hit this failure, just return + return # wipe the manifest if it exists already _run(("buildah", "rmi", manref), failok=True) # create the manifest with all arches createargs = ["buildah", "manifest", "create", manref] - createargs.extend(f"{imgrefbase}-{arch}" for arch in builtarches) + createargs.extend(f"{firstregref}-{arch}" for arch in builtarches) _run(createargs) for registry in self.conf["container"]["registries"]: # something like "registry.fedoraproject.org/fedora:40" @@ -139,6 +152,21 @@ class Uploader: # wipe the local copy _run(("buildah", "rmi", manref), failok=True) + def _missing_manifest_arches(self, source: str, builtarches: Iterable[str]) -> set: + """ + Return any arches present in the current remote manifest that + were not built in the compose being processed. + """ + currarches = [] + try: + ret = json.loads(_run(("buildah", "manifest", "inspect", source)).stdout) + currarches = set([man["platform"]["architecture"] for man in ret["manifests"]]) + currarches = [DOCKER_ARCHES[darch] for darch in currarches] + except (json.JSONDecodeError, fm_exceptions.Nack): + _log.warning("Could not find or parse existing manifest %s!", source) + return set() + return set(arch for arch in currarches if arch not in builtarches) + def download_image(self, image: dict, dest_dir: str, decompress=False) -> str: """ Download, verify, and optionally decompress the image. diff --git a/tests/fixtures/cassettes/test_containers[compose0].yaml b/tests/fixtures/cassettes/test_containers[compose0].yaml index d3b4e55..2952ba0 100644 --- a/tests/fixtures/cassettes/test_containers[compose0].yaml +++ b/tests/fixtures/cassettes/test_containers[compose0].yaml @@ -29,11 +29,11 @@ interactions: ' headers: AppTime: - - D=3038 + - D=1926 Connection: - close Date: - - Thu, 30 May 2024 00:24:47 GMT + - Wed, 05 Jun 2024 22:24:08 GMT Referrer-Policy: - same-origin Server: @@ -46,7 +46,7 @@ interactions: X-Fedora-ProxyServer: - proxy10.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHT2mti5Q4-osOpGWzRAAAA8I + - ZmDliLNrTXN6SeHzC4z86AAACwQ X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -91,11 +91,11 @@ interactions: ' headers: AppTime: - - D=2217 + - D=2114 Connection: - close Date: - - Thu, 30 May 2024 00:24:47 GMT + - Wed, 05 Jun 2024 22:24:08 GMT Referrer-Policy: - same-origin Server: @@ -106,9 +106,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy01.iad2.fedoraproject.org + - proxy10.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHTzuWhzpWHAjyjksnlAAABI4 + - ZmDliLHxHxsQ9hKMy4P4RAAAC8g X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -153,11 +153,11 @@ interactions: ' headers: AppTime: - - D=2228 + - D=2626 Connection: - close Date: - - Thu, 30 May 2024 00:24:47 GMT + - Wed, 05 Jun 2024 22:24:08 GMT Referrer-Policy: - same-origin Server: @@ -168,9 +168,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy10.iad2.fedoraproject.org + - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHT_EdkCTc_XA9jUzfswAAAhE + - ZmDliLe5WGXiHHu5HBLjjQAAAAQ X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -215,11 +215,11 @@ interactions: ' headers: AppTime: - - D=2616 + - D=2760 Connection: - close Date: - - Thu, 30 May 2024 00:24:48 GMT + - Wed, 05 Jun 2024 22:24:09 GMT Referrer-Policy: - same-origin Server: @@ -230,9 +230,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy01.iad2.fedoraproject.org + - proxy10.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHUNzYCNJwtm0JAhGCugAABFc + - ZmDliaxAvKIPXFOR9WmbpAAAC5g X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -277,11 +277,11 @@ interactions: ' headers: AppTime: - - D=2778 + - D=2303 Connection: - close Date: - - Thu, 30 May 2024 00:24:48 GMT + - Wed, 05 Jun 2024 22:24:09 GMT Referrer-Policy: - same-origin Server: @@ -292,9 +292,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy01.iad2.fedoraproject.org + - proxy10.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHUPYPQ6beqzZJoe4I2AAACsE + - ZmDliaxAvKIPXFOR9WmbsQAAC4Q X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -339,11 +339,11 @@ interactions: ' headers: AppTime: - - D=2545 + - D=2098 Connection: - close Date: - - Thu, 30 May 2024 00:24:48 GMT + - Wed, 05 Jun 2024 22:24:09 GMT Referrer-Policy: - same-origin Server: @@ -356,7 +356,7 @@ interactions: X-Fedora-ProxyServer: - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHUGDKJnmES5WV3NZxdgAAA9I + - ZmDlibYdBtmFfkOCJdLAbwAAAQQ X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -401,11 +401,11 @@ interactions: ' headers: AppTime: - - D=2540 + - D=2148 Connection: - close Date: - - Thu, 30 May 2024 00:24:49 GMT + - Wed, 05 Jun 2024 22:24:09 GMT Referrer-Policy: - same-origin Server: @@ -418,7 +418,7 @@ interactions: X-Fedora-ProxyServer: - proxy10.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHUc2dRVrGrvfHXIirbwAABsU + - ZmDliYJvd3dobCDrVfhq_wAADM0 X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -463,11 +463,11 @@ interactions: ' headers: AppTime: - - D=2497 + - D=2164 Connection: - close Date: - - Thu, 30 May 2024 00:24:49 GMT + - Wed, 05 Jun 2024 22:24:10 GMT Referrer-Policy: - same-origin Server: @@ -478,9 +478,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy10.iad2.fedoraproject.org + - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHUfrbPBQAVrZAyqhchAAABwo + - ZmDlij2YnOFE51B_fXxU_gAAAM8 X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -525,11 +525,11 @@ interactions: ' headers: AppTime: - - D=2203 + - D=3547 Connection: - close Date: - - Thu, 30 May 2024 00:24:49 GMT + - Wed, 05 Jun 2024 22:24:10 GMT Referrer-Policy: - same-origin Server: @@ -540,9 +540,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy10.iad2.fedoraproject.org + - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHUWmti5Q4-osOpGWztwAAA9E + - ZmDlire5WGXiHHu5HBLjpwAAABA X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -577,7 +577,7 @@ interactions: Connection: - close Date: - - Thu, 30 May 2024 00:24:50 GMT + - Wed, 05 Jun 2024 22:24:11 GMT Referrer-Policy: - same-origin Server: @@ -589,9 +589,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy04.fedoraproject.org + - proxy14.fedoraproject.org X-Fedora-RequestID: - - ZlfHUrAMQ1iYCtlRmxpLEAAAA9M + - ZmDli03WRSwlzXkSgecPcwAABYo X-Frame-Options: - SAMEORIGIN - SAMEORIGIN @@ -600,17 +600,17 @@ interactions: allow: - GET, HEAD, OPTIONS apptime: - - D=1025542 + - D=598470 cache-control: - private, max-age=0, must-revalidate content-type: - application/json set-cookie: - - SERVERID=pdc-web01; path=/ + - SERVERID=pdc-web02; path=/ vary: - Accept,Cookie,Accept-Encoding x-fedora-appserver: - - pdc-web01.iad2.fedoraproject.org + - pdc-web02.iad2.fedoraproject.org x-frame-options: - SAMEORIGIN - SAMEORIGIN @@ -620,63 +620,618 @@ interactions: - request: body: null headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br Connection: - - keep-alive + - close + Host: + - kojipkgs.fedoraproject.org User-Agent: - - python-requests/2.31.0 + - Python-urllib/3.12 method: GET - uri: https://bodhi.fedoraproject.org/releases/F41 + uri: https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20240501.n.0/compose response: body: - string: '{"name": "F41", "long_name": "Fedora 41", "version": "41", "id_prefix": - "FEDORA", "branch": "rawhide", "dist_tag": "f41", "stable_tag": "f41", "testing_tag": - "f41-updates-testing", "candidate_tag": "f41-updates-candidate", "pending_signing_tag": - "f41-signing-pending", "pending_testing_tag": "f41-updates-testing-pending", - "pending_stable_tag": "f41-updates-pending", "override_tag": "f41-override", - "mail_template": "fedora_errata_template", "state": "pending", "composed_by_bodhi": - false, "create_automatic_updates": true, "package_manager": "unspecified", - "testing_repository": null, "released_on": null, "eol": null, "setting_status": - "pre_beta"}' + string: ' + + + + 404 Not Found + + + +

Not Found

+ +

The requested URL was not found on this server.

+ + + + ' headers: AppTime: - - D=44636 + - D=2714 Connection: - - Keep-Alive + - close Date: - - Thu, 30 May 2024 00:24:51 GMT - Keep-Alive: - - timeout=15, max=500 + - Wed, 05 Jun 2024 22:24:12 GMT Referrer-Policy: - same-origin Server: - - gunicorn + - Apache Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload X-Content-Type-Options: - nosniff + X-Fedora-ProxyServer: + - proxy10.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDljIhXNyc2Gbu_vKmBdwAADUM + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + content-length: + - '196' + content-type: + - text/html; charset=iso-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20240501.n.0/compose + response: + body: + string: ' + + + + 404 Not Found + + + +

Not Found

+ +

The requested URL was not found on this server.

+ + + + ' + headers: + AppTime: + - D=1476 + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:12 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy14.fedoraproject.org + - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHU8_z7IlprDyBbLxCtQAABoU + - ZmDljLe5WGXiHHu5HBLjyAAAAAg X-Frame-Options: - SAMEORIGIN X-Xss-Protection: - 1; mode=block content-length: - - '650' + - '196' content-type: - - application/json - set-cookie: - - 1caa5c4232b1a1f24f8c4f6e0f496284=54379c9e3297d922e85a653bc349fdb4; path=/; - HttpOnly; Secure; SameSite=None - x-content-type-options: + - text/html; charset=iso-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20240501.n.0/COMPOSE_ID + response: + body: + string: ' + + + + 404 Not Found + + + +

Not Found

+ +

The requested URL was not found on this server.

+ + + + ' + headers: + AppTime: + - D=2035 + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:12 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: - nosniff + X-Fedora-ProxyServer: + - proxy10.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDljHKGZimCRbYtvTXbegAAAoo + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + content-length: + - '196' + content-type: + - text/html; charset=iso-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20240501.n.0/COMPOSE_ID + response: + body: + string: ' + + + + 404 Not Found + + + +

Not Found

+ +

The requested URL was not found on this server.

+ + + + ' + headers: + AppTime: + - D=1572 + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:12 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: - nosniff + X-Fedora-ProxyServer: + - proxy10.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDljK-V0M1dEnGJ-xPLqQAADZc + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + content-length: + - '196' + content-type: + - text/html; charset=iso-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20240501.n.0/COMPOSE_ID + response: + body: + string: ' + + + + 404 Not Found + + + +

Not Found

+ +

The requested URL was not found on this server.

+ + + + ' + headers: + AppTime: + - D=1880 + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:13 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + X-Fedora-ProxyServer: + - proxy10.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDlja-V0M1dEnGJ-xPLrgAADYs + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + content-length: + - '196' + content-type: + - text/html; charset=iso-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20240501.n.0/COMPOSE_ID + response: + body: + string: ' + + + + 404 Not Found + + + +

Not Found

+ +

The requested URL was not found on this server.

+ + + + ' + headers: + AppTime: + - D=2164 + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:13 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + X-Fedora-ProxyServer: + - proxy01.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDljbBD3OhoAaJwI2G8DgAAAYI + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + content-length: + - '196' + content-type: + - text/html; charset=iso-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20240501.n.0/COMPOSE_ID + response: + body: + string: ' + + + + 404 Not Found + + + +

Not Found

+ +

The requested URL was not found on this server.

+ + + + ' + headers: + AppTime: + - D=1973 + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:13 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + X-Fedora-ProxyServer: + - proxy10.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDljV6flR07EV6IDEzVfgAADJE + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + content-length: + - '196' + content-type: + - text/html; charset=iso-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20240501.n.0/compose + response: + body: + string: ' + + + + 404 Not Found + + + +

Not Found

+ +

The requested URL was not found on this server.

+ + + + ' + headers: + AppTime: + - D=1648 + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:13 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + X-Fedora-ProxyServer: + - proxy01.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDljTnkOY1xikn7ZjKE9wAAAtE + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + content-length: + - '196' + content-type: + - text/html; charset=iso-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20240501.n.0/compose + response: + body: + string: ' + + + + 404 Not Found + + + +

Not Found

+ +

The requested URL was not found on this server.

+ + + + ' + headers: + AppTime: + - D=1943 + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:14 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + X-Fedora-ProxyServer: + - proxy10.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDljlZO_1hACsPDYRfcqAAADo0 + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + content-length: + - '196' + content-type: + - text/html; charset=iso-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Connection: + - close + Content-Type: + - application/json + Host: + - pdc.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://pdc.fedoraproject.org/rest_api/v1/compose-images/Fedora-Rawhide-20240501.n.0/?page=1 + response: + body: + string: '{"header":{"version":"1.2","type":"productmd.images"},"payload":{"images":{"Workstation":{"aarch64":[{"subvariant":"Workstation","format":"raw.xz","volume_id":null,"mtime":1714551577,"checksums":{"sha256":"169a31fd5cf10faafaba87b2342ad6475bc1d20ce3e71946d0fa2694bd4484fe"},"arch":"aarch64","size":2806539876,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Workstation/aarch64/images/Fedora-Workstation-Rawhide-20240501.n.0.aarch64.raw.xz","type":"raw-xz"},{"subvariant":"Workstation","format":"iso","volume_id":null,"mtime":1714550825,"checksums":{"sha256":"2e6757ccad552f5929f1a69777f3a8166985953b0331ab6386ab6af8ca0e8322"},"arch":"aarch64","size":2609154048,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Workstation/aarch64/iso/Fedora-Workstation-Live-osb-Rawhide-20240501.n.0.aarch64.iso","type":"live-osbuild"}],"x86_64":[{"subvariant":"Workstation","format":"iso","volume_id":null,"mtime":1714551289,"checksums":{"sha256":"81584c47d50304bf1a659c17af7b761891e8f70545eb97e1ae0cc7ff511f79ee"},"arch":"x86_64","size":2654552064,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Workstation/x86_64/iso/Fedora-Workstation-Live-osb-Rawhide-20240501.n.0.x86_64.iso","type":"live-osbuild"},{"subvariant":"Workstation","format":"iso","volume_id":null,"mtime":1714549615,"checksums":{"sha256":"264d04c31714ba0734940819b8bdc7863701f9cd7a16e553b5b6a5db121effa7"},"arch":"x86_64","size":2314934272,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"}],"ppc64le":[{"subvariant":"Workstation","format":"iso","volume_id":null,"mtime":1714549972,"checksums":{"sha256":"1f19f95713627cfbb487cb32ccaf0dcaeb49717e23649c6244ace0e71f6932fe"},"arch":"ppc64le","size":2265411584,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Workstation/ppc64le/iso/Fedora-Workstation-Live-ppc64le-Rawhide-20240501.n.0.iso","type":"live"}]},"Container":{"aarch64":[{"subvariant":"Container_Minimal_Base","format":"tar.xz","volume_id":null,"mtime":1714548151,"checksums":{"sha256":"570b6e8f5e642df8541add9734ce6263396ac8b31410d334affd4f241161bb0e"},"arch":"aarch64","size":45765840,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/aarch64/images/Fedora-Container-Base-Generic-Minimal.aarch64-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"},{"subvariant":"Container_Base","format":"tar.xz","volume_id":null,"mtime":1714548144,"checksums":{"sha256":"4410600bf5c55c2ed2d892f448d0f940f1d04bd3758df45c1214e666f909376a"},"arch":"aarch64","size":80061492,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/aarch64/images/Fedora-Container-Base-Generic.aarch64-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"},{"subvariant":"Container_Toolbox","format":"tar.xz","volume_id":null,"mtime":1714548390,"checksums":{"sha256":"14662b170bb2a792ef59471c4f3832aec24a156a63723ae7f3189ae39055198c"},"arch":"aarch64","size":309801336,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/aarch64/images/Fedora-Container-Toolbox.aarch64-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"}],"x86_64":[{"subvariant":"Container_Minimal_Base","format":"tar.xz","volume_id":null,"mtime":1714548002,"checksums":{"sha256":"99762e812b170a2b5ae21ffdfcc26d6f821064c3347c3456bcfb0946b51d3e39"},"arch":"x86_64","size":47325456,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/x86_64/images/Fedora-Container-Base-Generic-Minimal.x86_64-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"},{"subvariant":"Container_Base","format":"tar.xz","volume_id":null,"mtime":1714548128,"checksums":{"sha256":"22ec94af77d239c4be0d6441b57b1a36e7f5ab78da4ebeb2fa0ebc5e2d84ab99"},"arch":"x86_64","size":81582552,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/x86_64/images/Fedora-Container-Base-Generic.x86_64-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"},{"subvariant":"Container_Toolbox","format":"tar.xz","volume_id":null,"mtime":1714548391,"checksums":{"sha256":"4338e4bf47b0f98cde51fcd90f4c8dd0ec6e44e19f066ac71a3a8f0b156bd613"},"arch":"x86_64","size":333172684,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/x86_64/images/Fedora-Container-Toolbox.x86_64-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"}],"s390x":[{"subvariant":"Container_Minimal_Base","format":"tar.xz","volume_id":null,"mtime":1714547999,"checksums":{"sha256":"5126ea913a0cce891f146c98d64f7041f88ec97fdf833050b66bcb1761963e7e"},"arch":"s390x","size":47592832,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/s390x/images/Fedora-Container-Base-Generic-Minimal.s390x-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"},{"subvariant":"Container_Base","format":"tar.xz","volume_id":null,"mtime":1714548085,"checksums":{"sha256":"b872fec000a3c09d0b0875d14ab11df3ae8fac9841c9ce2d75479d87b99b77bb"},"arch":"s390x","size":82633556,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/s390x/images/Fedora-Container-Base-Generic.s390x-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"},{"subvariant":"Container_Toolbox","format":"tar.xz","volume_id":null,"mtime":1714548383,"checksums":{"sha256":"254e6199117fd50a0a402a8e0bcf0d1a497457712525e05e67bde46c6b43a6ee"},"arch":"s390x","size":295170680,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/s390x/images/Fedora-Container-Toolbox.s390x-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"}],"ppc64le":[{"subvariant":"Container_Minimal_Base","format":"tar.xz","volume_id":null,"mtime":1714548195,"checksums":{"sha256":"a1609b38c5ca8b5725a5b861e6d223ebd7efb540a5a8dcb0d124c8143edacc15"},"arch":"ppc64le","size":53859988,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/ppc64le/images/Fedora-Container-Base-Generic-Minimal.ppc64le-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"},{"subvariant":"Container_Base","format":"tar.xz","volume_id":null,"mtime":1714548207,"checksums":{"sha256":"16232ae6ac7d85480a12307b418ea86c62097889369f241607a6da3fdc810294"},"arch":"ppc64le","size":89383320,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/ppc64le/images/Fedora-Container-Base-Generic.ppc64le-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"},{"subvariant":"Container_Toolbox","format":"tar.xz","volume_id":null,"mtime":1714548405,"checksums":{"sha256":"f24b0e9d19a19e509bef289c02ce0ce017b8abaa3d94dd3e160756cfbfe9a1e8"},"arch":"ppc64le","size":317277716,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Container/ppc64le/images/Fedora-Container-Toolbox.ppc64le-Rawhide-20240501.n.0.oci.tar.xz","type":"docker"}]},"Everything":{"aarch64":[{"subvariant":"Everything","format":"iso","volume_id":"Fedora-E-dvd-aarch64-rawh","mtime":1714543271,"checksums":{"sha256":"c8761f0c0c969b2208bc1eec38608a3d421c74168e11bf6842ce0649c0b6e2c1"},"arch":"aarch64","size":881444864,"disc_count":1,"bootable":true,"implant_md5":"eb260a2607dea1ea7b4c70a3bc3b3309","disc_number":1,"path":"Everything/aarch64/iso/Fedora-Everything-netinst-aarch64-Rawhide-20240501.n.0.iso","type":"boot"}],"x86_64":[{"subvariant":"Everything","format":"iso","volume_id":"Fedora-E-dvd-x86_64-rawh","mtime":1714543598,"checksums":{"sha256":"6a4c569813b8fa3269122d4de538302d212be395f2465f192c3b42c3bd29c4d6"},"arch":"x86_64","size":862216192,"disc_count":1,"bootable":true,"implant_md5":"4fada428441a95574831d3cb8b254e44","disc_number":1,"path":"Everything/x86_64/iso/Fedora-Everything-netinst-x86_64-Rawhide-20240501.n.0.iso","type":"boot"}],"s390x":[{"subvariant":"Everything","format":"iso","volume_id":"Fedora-E-dvd-s390x-rawh","mtime":1714543372,"checksums":{"sha256":"1a1d0489e884cee0f5611adf10dcdc2cc8cecd8a43ca72e9133835cd0c993726"},"arch":"s390x","size":538773504,"disc_count":1,"bootable":true,"implant_md5":"d75c8272c5b65a38083becafe0114e2c","disc_number":1,"path":"Everything/s390x/iso/Fedora-Everything-netinst-s390x-Rawhide-20240501.n.0.iso","type":"boot"}],"ppc64le":[{"subvariant":"Everything","format":"iso","volume_id":"Fedora-E-dvd-ppc64le-rawh","mtime":1714544248,"checksums":{"sha256":"06e517e99fc1ad551afc5796ba574f96940c93321ec8e1af0597c44fceef1829"},"arch":"ppc64le","size":868366336,"disc_count":1,"bootable":true,"implant_md5":"447733a53e635d41f0221cd038799cea","disc_number":1,"path":"Everything/ppc64le/iso/Fedora-Everything-netinst-ppc64le-Rawhide-20240501.n.0.iso","type":"boot"}]},"Onyx":{"x86_64":[{"subvariant":"Onyx","format":"iso","volume_id":"Fedora-Onyx-ostree-x86_64-rawh","mtime":1714546339,"checksums":{"sha256":"c7fc13f5fbd63ede8dcee60880ec9353e192d27e1298d70553987667472d468e"},"arch":"x86_64","size":2758076416,"disc_count":1,"bootable":true,"implant_md5":"eea8885d7c0c04c811dbb7fadb88c18b","disc_number":1,"path":"Onyx/x86_64/iso/Fedora-Onyx-ostree-x86_64-Rawhide-20240501.n.0.iso","type":"dvd-ostree"}]},"Server":{"aarch64":[{"subvariant":"Server_KVM","format":"qcow2","volume_id":null,"mtime":1714548481,"checksums":{"sha256":"7df0a82f10cf9ff246a4367c9d2738dcfa38adeab43f6259fd59c248334e754d"},"arch":"aarch64","size":679477248,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Server/aarch64/images/Fedora-Server-KVM-Rawhide-20240501.n.0.aarch64.qcow2","type":"qcow2"},{"subvariant":"Server","format":"raw.xz","volume_id":null,"mtime":1714549351,"checksums":{"sha256":"606840743d5f6949f6a24a087a83ee30ba75061efccae97dc10b0a9911eb647f"},"arch":"aarch64","size":1156440656,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Server/aarch64/images/Fedora-Server-Rawhide-20240501.n.0.aarch64.raw.xz","type":"raw-xz"},{"subvariant":"Server","format":"iso","volume_id":"Fedora-S-dvd-aarch64-rawh","mtime":1714547827,"checksums":{"sha256":"9254a157dd98c83ec69bd6bfa32c332132a77a244196d986e61a8e07dcef482b"},"arch":"aarch64","size":2571698176,"disc_count":1,"bootable":true,"implant_md5":"3b4bf7e119d816a9b7d7ff43bb1e7397","disc_number":1,"path":"Server/aarch64/iso/Fedora-Server-dvd-aarch64-Rawhide-20240501.n.0.iso","type":"dvd"},{"subvariant":"Server","format":"iso","volume_id":"Fedora-S-dvd-aarch64-rawh","mtime":1714543282,"checksums":{"sha256":"f97a38209469f4aabebf80734d97f672d0e7a76599178e627f551be0efca705d"},"arch":"aarch64","size":891131904,"disc_count":1,"bootable":true,"implant_md5":"56a7d1aa0db7f8885ce2bb582431c20a","disc_number":1,"path":"Server/aarch64/iso/Fedora-Server-netinst-aarch64-Rawhide-20240501.n.0.iso","type":"boot"}],"x86_64":[{"subvariant":"Server_KVM","format":"qcow2","volume_id":null,"mtime":1714548432,"checksums":{"sha256":"874dca83ba136eda1395d5b4195252b80c9c46586b5d0959cab8a2228fa87981"},"arch":"x86_64","size":663355392,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Server/x86_64/images/Fedora-Server-KVM-Rawhide-20240501.n.0.x86_64.qcow2","type":"qcow2"},{"subvariant":"Server","format":"iso","volume_id":"Fedora-S-dvd-x86_64-rawh","mtime":1714547835,"checksums":{"sha256":"28f2da7d8092d8d9fdf9b2e55a6c01cb8df4d91040698b4e5eeaefb59bc0562e"},"arch":"x86_64","size":2659516416,"disc_count":1,"bootable":true,"implant_md5":"09ab21ecd902b709225a183bdb4d221f","disc_number":1,"path":"Server/x86_64/iso/Fedora-Server-dvd-x86_64-Rawhide-20240501.n.0.iso","type":"dvd"},{"subvariant":"Server","format":"iso","volume_id":"Fedora-S-dvd-x86_64-rawh","mtime":1714544390,"checksums":{"sha256":"284d59258c0097df13b6e534e7286cc0aef3ff97355867c958b50ad1fbcefbd2"},"arch":"x86_64","size":872001536,"disc_count":1,"bootable":true,"implant_md5":"415e2b42be4a7ab863b531a9f103609b","disc_number":1,"path":"Server/x86_64/iso/Fedora-Server-netinst-x86_64-Rawhide-20240501.n.0.iso","type":"boot"}],"s390x":[{"subvariant":"Server_KVM","format":"qcow2","volume_id":null,"mtime":1714548425,"checksums":{"sha256":"fb3c65a91db222dd53642ddfc8bc79f93d6b368daba2de08fa29995c56b51f25"},"arch":"s390x","size":642777088,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Server/s390x/images/Fedora-Server-KVM-Rawhide-20240501.n.0.s390x.qcow2","type":"qcow2"},{"subvariant":"Server","format":"iso","volume_id":"Fedora-S-dvd-s390x-rawh","mtime":1714548033,"checksums":{"sha256":"1b01c52808aca1e6612318816d9f23d28731433213b9dca0f5001ac176e571f6"},"arch":"s390x","size":2002780160,"disc_count":1,"bootable":true,"implant_md5":"4c9027c3bdf2355b1bd44d2e1510e20b","disc_number":1,"path":"Server/s390x/iso/Fedora-Server-dvd-s390x-Rawhide-20240501.n.0.iso","type":"dvd"},{"subvariant":"Server","format":"iso","volume_id":"Fedora-S-dvd-s390x-rawh","mtime":1714543378,"checksums":{"sha256":"bd5408c0fef7d15cb9ecefd6890473cfea0c8eb2c3ac87eaeb03469d7b8bc05a"},"arch":"s390x","size":549619712,"disc_count":1,"bootable":true,"implant_md5":"239d338c78263b5528a0ef1a2da78540","disc_number":1,"path":"Server/s390x/iso/Fedora-Server-netinst-s390x-Rawhide-20240501.n.0.iso","type":"boot"}],"ppc64le":[{"subvariant":"Server_KVM","format":"qcow2","volume_id":null,"mtime":1714555324,"checksums":{"sha256":"8697bb87795aeb0cfdbf67683c72672e5390c0c26d8c456147b3c237a35c6467"},"arch":"ppc64le","size":684392448,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Server/ppc64le/images/Fedora-Server-KVM-Rawhide-20240501.n.0.ppc64le.qcow2","type":"qcow2"},{"subvariant":"Server","format":"iso","volume_id":"Fedora-S-dvd-ppc64le-rawh","mtime":1714548000,"checksums":{"sha256":"1eb107a7627f035ab3fe6f21db00b2b5d6766af991453287db444edd5532b625"},"arch":"ppc64le","size":2409299968,"disc_count":1,"bootable":true,"implant_md5":"52aa0d9a2a7e40ed64c6cc301020308e","disc_number":1,"path":"Server/ppc64le/iso/Fedora-Server-dvd-ppc64le-Rawhide-20240501.n.0.iso","type":"dvd"},{"subvariant":"Server","format":"iso","volume_id":"Fedora-S-dvd-ppc64le-rawh","mtime":1714543594,"checksums":{"sha256":"f74d20418c881571be50a2184f240d13b8cfdf7bbad72bfc2571bb819674390a"},"arch":"ppc64le","size":879071232,"disc_count":1,"bootable":true,"implant_md5":"5e55736ea6f1dc86ce1c22b93e8fa0b3","disc_number":1,"path":"Server/ppc64le/iso/Fedora-Server-netinst-ppc64le-Rawhide-20240501.n.0.iso","type":"boot"}]},"Labs":{"aarch64":[{"subvariant":"Python_Classroom","format":"raw.xz","volume_id":null,"mtime":1714549628,"checksums":{"sha256":"53517e834f444d1bbfdb95506d3c97d6563736c63d23fcb7cb0485c8e8555345"},"arch":"aarch64","size":2717602640,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Labs/aarch64/images/Fedora-Python-Classroom-Rawhide-20240501.n.0.aarch64.raw.xz","type":"raw-xz"}],"x86_64":[{"subvariant":"Python_Classroom","format":"vagrant-libvirt.box","volume_id":null,"mtime":1714548988,"checksums":{"sha256":"85eb263a920688d56d5e74958161ced4044578d7093b0018d09b78245712c63a"},"arch":"x86_64","size":1567637359,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/images/Fedora-Python-Classroom-Vagrant-Rawhide-20240501.n.0.x86_64.vagrant-libvirt.box","type":"vagrant-libvirt"},{"subvariant":"Python_Classroom","format":"vagrant-virtualbox.box","volume_id":null,"mtime":1714549060,"checksums":{"sha256":"81685cb0637678d5111e8b50dc61e94df119a2c2bb3b2ec216d04d35c5356527"},"arch":"x86_64","size":1589186560,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/images/Fedora-Python-Classroom-Vagrant-Rawhide-20240501.n.0.x86_64.vagrant-virtualbox.box","type":"vagrant-virtualbox"},{"subvariant":"Scientific","format":"vagrant-libvirt.box","volume_id":null,"mtime":1714549937,"checksums":{"sha256":"6a9b6f17eb655962a8b3e343f09ed06cb5fca92ad3faef6a01215ae673a62bad"},"arch":"x86_64","size":4906517741,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/images/Fedora-Scientific-Vagrant-Rawhide-20240501.n.0.x86_64.vagrant-libvirt.box","type":"vagrant-libvirt"},{"subvariant":"Scientific","format":"vagrant-virtualbox.box","volume_id":null,"mtime":1714550139,"checksums":{"sha256":"29547a3dc363baf76c26c53350a066d76b4287e644019d5f3e43c16e8aad196c"},"arch":"x86_64","size":4963287040,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/images/Fedora-Scientific-Vagrant-Rawhide-20240501.n.0.x86_64.vagrant-virtualbox.box","type":"vagrant-virtualbox"},{"subvariant":"Astronomy_KDE","format":"iso","volume_id":null,"mtime":1714549753,"checksums":{"sha256":"eedb523885c20bfb5b246563def3e4a593d7698d7847923cf5292a2f726ab772"},"arch":"x86_64","size":4663750656,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/iso/Fedora-Astronomy_KDE-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Comp_Neuro","format":"iso","volume_id":null,"mtime":1714549174,"checksums":{"sha256":"78a2911eb3c6fe4f86bbdcc93930eb8b2172f8b4971e5f83324bc496c1d9ad3f"},"arch":"x86_64","size":3089092608,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/iso/Fedora-Comp_Neuro-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Games","format":"iso","volume_id":null,"mtime":1714549710,"checksums":{"sha256":"bd14181af753ff6d6273d0cc6575b2b13ee601564f526ab43c8060e9a44a8833"},"arch":"x86_64","size":6911944704,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/iso/Fedora-Games-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Jam_KDE","format":"iso","volume_id":null,"mtime":1714549112,"checksums":{"sha256":"d612fc08962b47f04a6cc7549f45d7deb8740c0cf7838bd48423d4147aa2803f"},"arch":"x86_64","size":3543447552,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/iso/Fedora-Jam_KDE-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Python_Classroom","format":"iso","volume_id":null,"mtime":1714549398,"checksums":{"sha256":"5f0fd5c2f81e6838409adfd70f71f532a73435505fd939f6f1c78c9ba57795bd"},"arch":"x86_64","size":2366535680,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/iso/Fedora-Python-Classroom-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Robotics","format":"iso","volume_id":null,"mtime":1714549620,"checksums":{"sha256":"a91c562e1e2878977ec7639e7fe6056acc649822456fd4d50f9184dec9ee6376"},"arch":"x86_64","size":3167330304,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/iso/Fedora-Robotics-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Scientific_KDE","format":"iso","volume_id":null,"mtime":1714549887,"checksums":{"sha256":"cdb127b1b26e6b1b4541be85c890bc6a20f36c58e596d77042d6b99d61d40c55"},"arch":"x86_64","size":5520687104,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/iso/Fedora-Scientific_KDE-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Security","format":"iso","volume_id":null,"mtime":1714549047,"checksums":{"sha256":"ba32f7df92892f6185e46349e825c995ba81c5a26b482e46554079f22b4da894"},"arch":"x86_64","size":2481698816,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Labs/x86_64/iso/Fedora-Security-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"}]},"Silverblue":{"aarch64":[{"subvariant":"Silverblue","format":"iso","volume_id":"Fedora-SB-ostree-aarch64-rawh","mtime":1714546273,"checksums":{"sha256":"b5a25b696cc0fdea442671eebcbb999287378e87542cfdb4b68b52dd2bd0ef4b"},"arch":"aarch64","size":3620956160,"disc_count":1,"bootable":true,"implant_md5":"461ca41e418493e1475d5bcd5fc1546f","disc_number":1,"path":"Silverblue/aarch64/iso/Fedora-Silverblue-ostree-aarch64-Rawhide-20240501.n.0.iso","type":"dvd-ostree"}],"x86_64":[{"subvariant":"Silverblue","format":"iso","volume_id":"Fedora-SB-ostree-x86_64-rawh","mtime":1714546928,"checksums":{"sha256":"c138b73ec6e460d2ef300d04052e5f851e22d97bc00b96663a0b19daf37da973"},"arch":"x86_64","size":3640899584,"disc_count":1,"bootable":true,"implant_md5":"ac049c322f096d2dbdd55b7369048584","disc_number":1,"path":"Silverblue/x86_64/iso/Fedora-Silverblue-ostree-x86_64-Rawhide-20240501.n.0.iso","type":"dvd-ostree"}],"ppc64le":[{"subvariant":"Silverblue","format":"iso","volume_id":"Fedora-SB-ostree-ppc64le-rawh","mtime":1714547457,"checksums":{"sha256":"02951538e73b9a53657e667a4fe745ba31ad70c9a07a445ba299369c487f3047"},"arch":"ppc64le","size":3572103168,"disc_count":1,"bootable":true,"implant_md5":"8a9f0707386f692fc93ae051f97487fb","disc_number":1,"path":"Silverblue/ppc64le/iso/Fedora-Silverblue-ostree-ppc64le-Rawhide-20240501.n.0.iso","type":"dvd-ostree"}]},"Cloud":{"aarch64":[{"subvariant":"Cloud_Base","format":"raw.xz","volume_id":null,"mtime":1714548549,"checksums":{"sha256":"761269846a3fb0750fdf3853cc7838189ee1317c376e45de4225a6364ce51907"},"arch":"aarch64","size":372905420,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/aarch64/images/Fedora-Cloud-Base-AmazonEC2.aarch64-Rawhide-20240501.n.0.raw.xz","type":"raw-xz"},{"subvariant":"Cloud_Base","format":"vhd.xz","volume_id":null,"mtime":1714548597,"checksums":{"sha256":"aa977ff3c52903c0000338914b4c0691f8d857675742ac0bda12ed8af6b6fd71"},"arch":"aarch64","size":438226428,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/aarch64/images/Fedora-Cloud-Base-Azure.aarch64-Rawhide-20240501.n.0.vhdfixed.xz","type":"vhd-compressed"},{"subvariant":"Cloud_Base","format":"tar.gz","volume_id":null,"mtime":1714548410,"checksums":{"sha256":"acdb1bd9065c6a648f7f45ed68ed001a333f9d1fee96768a758cf56885e7191f"},"arch":"aarch64","size":415969669,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/aarch64/images/Fedora-Cloud-Base-GCE.aarch64-Rawhide-20240501.n.0.tar.gz","type":"docker"},{"subvariant":"Cloud_Base","format":"qcow2","volume_id":null,"mtime":1714548405,"checksums":{"sha256":"ceaee75dd6a3a6c4244a30eb59184a935bbc0d004dce13f29f22a62631819b4e"},"arch":"aarch64","size":415891456,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/aarch64/images/Fedora-Cloud-Base-Generic.aarch64-Rawhide-20240501.n.0.qcow2","type":"qcow2"},{"subvariant":"Cloud_Base_UKI","format":"qcow2","volume_id":null,"mtime":1714548578,"checksums":{"sha256":"2487abdf4e5ae7a9be4439833ae769ea946bb7f14632236f65b91913001ee1d7"},"arch":"aarch64","size":430243840,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/aarch64/images/Fedora-Cloud-Base-UEFI-UKI.aarch64-Rawhide-20240501.n.0.qcow2","type":"qcow2"},{"subvariant":"Cloud_Base","format":"vagrant-libvirt.box","volume_id":null,"mtime":1714548420,"checksums":{"sha256":"18ddad07c623baa1c33552ad6261423bc4e0dc689f8399cda6224e53fe705c67"},"arch":"aarch64","size":571752165,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/aarch64/images/Fedora-Cloud-Base-Vagrant-libvirt.aarch64-Rawhide-20240501.n.0.vagrant.libvirt.box","type":"vagrant-libvirt"}],"x86_64":[{"subvariant":"Cloud_Base","format":"raw.xz","volume_id":null,"mtime":1714548401,"checksums":{"sha256":"c376b61792828219d46f918f5c9cbcc1966c0ec4fd841b3ac8dc1b590eb87ece"},"arch":"x86_64","size":377126452,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/x86_64/images/Fedora-Cloud-Base-AmazonEC2.x86_64-Rawhide-20240501.n.0.raw.xz","type":"raw-xz"},{"subvariant":"Cloud_Base","format":"vhd.xz","volume_id":null,"mtime":1714548407,"checksums":{"sha256":"b95bef74af4a21cbedb1c590eada488bcf23bd1ca84b111bd6ba803c8783eff8"},"arch":"x86_64","size":452488716,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/x86_64/images/Fedora-Cloud-Base-Azure.x86_64-Rawhide-20240501.n.0.vhdfixed.xz","type":"vhd-compressed"},{"subvariant":"Cloud_Base","format":"tar.gz","volume_id":null,"mtime":1714548403,"checksums":{"sha256":"6b2b7114f924cd610d54d1166a5ca74250c49fbbe3e83ebf132150a8185f7bf5"},"arch":"x86_64","size":411774493,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/x86_64/images/Fedora-Cloud-Base-GCE.x86_64-Rawhide-20240501.n.0.tar.gz","type":"docker"},{"subvariant":"Cloud_Base","format":"qcow2","volume_id":null,"mtime":1714548401,"checksums":{"sha256":"b872fe26d3e5a8093f4de7600411dd935b1ea3614542a6dc5a22f3cea4015936"},"arch":"x86_64","size":408944640,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-Rawhide-20240501.n.0.qcow2","type":"qcow2"},{"subvariant":"Cloud_Base_UKI","format":"qcow2","volume_id":null,"mtime":1714548404,"checksums":{"sha256":"f9b82e1b9e226df36117143c55dd534a006aaf90c3ca158037c211ef4535db81"},"arch":"x86_64","size":439222272,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/x86_64/images/Fedora-Cloud-Base-UEFI-UKI.x86_64-Rawhide-20240501.n.0.qcow2","type":"qcow2"},{"subvariant":"Cloud_Base","format":"vagrant-virtualbox.box","volume_id":null,"mtime":1714548418,"checksums":{"sha256":"89a2cbab39f0750125b51be6e04da067aa0484598a86e558cbeb6cab074cd311"},"arch":"x86_64","size":571837191,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/x86_64/images/Fedora-Cloud-Base-Vagrant-VirtualBox.x86_64-Rawhide-20240501.n.0.vagrant.virtualbox.box","type":"vagrant-virtualbox"},{"subvariant":"Cloud_Base","format":"vagrant-libvirt.box","volume_id":null,"mtime":1714548418,"checksums":{"sha256":"f96fee2a6ac8e0d63400eb7dfe1a1c3100041a6a61c7be378b4ae0dcc223343b"},"arch":"x86_64","size":581492129,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/x86_64/images/Fedora-Cloud-Base-Vagrant-libvirt.x86_64-Rawhide-20240501.n.0.vagrant.libvirt.box","type":"vagrant-libvirt"}],"s390x":[{"subvariant":"Cloud_Base","format":"qcow2","volume_id":null,"mtime":1714548400,"checksums":{"sha256":"69a9e590a7fafdf5bcc6ab7b00943e453930f34136571aff0b77a028346f36fa"},"arch":"s390x","size":374772736,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-Rawhide-20240501.n.0.qcow2","type":"qcow2"}],"ppc64le":[{"subvariant":"Cloud_Base","format":"qcow2","volume_id":null,"mtime":1714548579,"checksums":{"sha256":"60b69830dde0dd01d250277e61f2f779a78636274157f76ed4922f91e0c66b04"},"arch":"ppc64le","size":405536768,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Cloud/ppc64le/images/Fedora-Cloud-Base-Generic.ppc64le-Rawhide-20240501.n.0.qcow2","type":"qcow2"}]},"Kinoite":{"x86_64":[{"subvariant":"Kinoite","format":"iso","volume_id":"Fedora-Knt-ostree-x86_64-rawh","mtime":1714547170,"checksums":{"sha256":"b9f83ad46bd54203e71d7694ed2a93c926ef90a6eadfb4e54fdcc878bd3b5c55"},"arch":"x86_64","size":4265914368,"disc_count":1,"bootable":true,"implant_md5":"0cdc1ad51e553cd561b707fc7649880b","disc_number":1,"path":"Kinoite/x86_64/iso/Fedora-Kinoite-ostree-x86_64-Rawhide-20240501.n.0.iso","type":"dvd-ostree"}],"ppc64le":[{"subvariant":"Kinoite","format":"iso","volume_id":"Fedora-Knt-ostree-ppc64le-rawh","mtime":1714547314,"checksums":{"sha256":"eb53b4a4803f3f07b70440e6e418a3d99fad77554a8d24e637f593d7a4111c8b"},"arch":"ppc64le","size":3977838592,"disc_count":1,"bootable":true,"implant_md5":"a4a70257ed61704a79ba87fbd4e858bf","disc_number":1,"path":"Kinoite/ppc64le/iso/Fedora-Kinoite-ostree-ppc64le-Rawhide-20240501.n.0.iso","type":"dvd-ostree"}]},"Spins":{"aarch64":[{"subvariant":"KDE","format":"raw.xz","volume_id":null,"mtime":1714551236,"checksums":{"sha256":"1f59bcccda3ce19825729af0f5d2e1728312757e85d8eac0790b828723b3edbb"},"arch":"aarch64","size":3323626052,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Spins/aarch64/images/Fedora-KDE-Rawhide-20240501.n.0.aarch64.raw.xz","type":"raw-xz"},{"subvariant":"LXQt","format":"raw.xz","volume_id":null,"mtime":1714550923,"checksums":{"sha256":"b85c09dfce672d5844edeaac41f45d7595bf971be0ff5ff2733fc816594a731e"},"arch":"aarch64","size":2160802488,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Spins/aarch64/images/Fedora-LXQt-Rawhide-20240501.n.0.aarch64.raw.xz","type":"raw-xz"},{"subvariant":"Minimal","format":"raw.xz","volume_id":null,"mtime":1714548583,"checksums":{"sha256":"722e1717d73bf43e2eb6e0cb4fb8ae3cb19b4a2de8cf1c49da4d6020597d3b66"},"arch":"aarch64","size":933003100,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Spins/aarch64/images/Fedora-Minimal-Rawhide-20240501.n.0.aarch64.raw.xz","type":"raw-xz"},{"subvariant":"SoaS","format":"raw.xz","volume_id":null,"mtime":1714549638,"checksums":{"sha256":"242229d68cf1af9ce239192ad87965f216c118c75d9fd74e72b08ab0f00e24ed"},"arch":"aarch64","size":1885278248,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Spins/aarch64/images/Fedora-SoaS-Rawhide-20240501.n.0.aarch64.raw.xz","type":"raw-xz"},{"subvariant":"Xfce","format":"raw.xz","volume_id":null,"mtime":1714549789,"checksums":{"sha256":"c707ac0edeffe9f1fc3fef644bb49c421f94f01f2f385b46a07533c18932895d"},"arch":"aarch64","size":2286809604,"disc_count":1,"bootable":false,"implant_md5":null,"disc_number":1,"path":"Spins/aarch64/images/Fedora-Xfce-Rawhide-20240501.n.0.aarch64.raw.xz","type":"raw-xz"},{"subvariant":"KDE","format":"iso","volume_id":null,"mtime":1714549170,"checksums":{"sha256":"64eb2f3cd6e54b724ccd3528867d49a4057789ed8a00e5f01d2ba1f37a24bc2c"},"arch":"aarch64","size":2649317376,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/aarch64/iso/Fedora-KDE-Live-aarch64-Rawhide-20240501.n.0.iso","type":"live"}],"x86_64":[{"subvariant":"Budgie","format":"iso","volume_id":null,"mtime":1714549119,"checksums":{"sha256":"7170cec0da8874d774b611afa4f398684d050407cd476672c50897f8c23a271b"},"arch":"x86_64","size":2154031104,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-Budgie-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Cinnamon","format":"iso","volume_id":null,"mtime":1714549323,"checksums":{"sha256":"6ca934500ad73394e30cb6394eac7f01cf8f9b034a7338f2ea259f3a72287153"},"arch":"x86_64","size":2566842368,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-Cinnamon-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"KDE","format":"iso","volume_id":null,"mtime":1714549325,"checksums":{"sha256":"8b10a757116d53ede4725a6e08766af3b3fa5c0c953c24021f6c07616fda8485"},"arch":"x86_64","size":2673795072,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-KDE-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"LXDE","format":"iso","volume_id":null,"mtime":1714549033,"checksums":{"sha256":"1a082a163d6a4a083f7a14752bf05444810759e09d7c032449c1ec39db03d670"},"arch":"x86_64","size":1755189248,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-LXDE-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"LXQt","format":"iso","volume_id":null,"mtime":1714549069,"checksums":{"sha256":"b206c9622050720e8dab00ff071e8ab3c4a5aeba04a810da933969c02a7f0785"},"arch":"x86_64","size":1881649152,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-LXQt-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Mate","format":"iso","volume_id":null,"mtime":1714549314,"checksums":{"sha256":"218b1e1e8efb78b34a9706b0d995f0f6d2450086635cf07477cd4330f8c8c24e"},"arch":"x86_64","size":2452094976,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-MATE_Compiz-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"SoaS","format":"iso","volume_id":null,"mtime":1714548992,"checksums":{"sha256":"ddb3d9ad6c2169f79c1ffa6cad759199d79c2d51e3012eb7ea18599ab0ec3864"},"arch":"x86_64","size":1459724288,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-SoaS-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Sway","format":"iso","volume_id":null,"mtime":1714549007,"checksums":{"sha256":"2fb50be1ed0b5d12a648d1b113b9c2bdb2debece729eee65d219b94b2d2f21d3"},"arch":"x86_64","size":1651877888,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-Sway-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"Xfce","format":"iso","volume_id":null,"mtime":1714549105,"checksums":{"sha256":"0d845b914b0f5e83ca2ce845652d25da556537db31e090b16167e34aca314094"},"arch":"x86_64","size":1903425536,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-Xfce-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"},{"subvariant":"i3","format":"iso","volume_id":null,"mtime":1714549001,"checksums":{"sha256":"cae0b4113cc260962b573315cbf0ce01df7d14f4d6d7794a0e700a0e30d8f0ac"},"arch":"x86_64","size":1637480448,"disc_count":1,"bootable":true,"implant_md5":null,"disc_number":1,"path":"Spins/x86_64/iso/Fedora-i3-Live-x86_64-Rawhide-20240501.n.0.iso","type":"live"}]},"Sericea":{"x86_64":[{"subvariant":"Sericea","format":"iso","volume_id":"Fedora-Src-ostree-x86_64-rawh","mtime":1714546202,"checksums":{"sha256":"4e33ca3626e68a99d87e2da6552536bb1da53f4a885f265f3e41b2026ff13a9c"},"arch":"x86_64","size":2600185856,"disc_count":1,"bootable":true,"implant_md5":"7edb7a3c6255c9485d706bfaaf10e410","disc_number":1,"path":"Sericea/x86_64/iso/Fedora-Sericea-ostree-x86_64-Rawhide-20240501.n.0.iso","type":"dvd-ostree"}]}},"compose":{"date":"20240501","respin":0,"type":"nightly","id":"Fedora-Rawhide-20240501.n.0"}}}' + headers: + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:14 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Fedora-ProxyServer: + - proxy06.fedoraproject.org + X-Fedora-RequestID: + - ZmDljjImoyN2ElT6cW_IXQAAAsk + X-Frame-Options: + - SAMEORIGIN + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + allow: + - GET, HEAD, OPTIONS + apptime: + - D=701234 + cache-control: + - private, max-age=0, must-revalidate + content-type: + - application/json + set-cookie: + - SERVERID=pdc-web02; path=/ + vary: + - Accept,Cookie,Accept-Encoding + x-fedora-appserver: + - pdc-web02.iad2.fedoraproject.org + x-frame-options: + - SAMEORIGIN + - SAMEORIGIN status: code: 200 message: OK diff --git a/tests/fixtures/cassettes/test_containers[compose1].yaml b/tests/fixtures/cassettes/test_containers[compose1].yaml index 44d4e03..1588d23 100644 --- a/tests/fixtures/cassettes/test_containers[compose1].yaml +++ b/tests/fixtures/cassettes/test_containers[compose1].yaml @@ -29,11 +29,11 @@ interactions: ' headers: AppTime: - - D=1332 + - D=1808 Connection: - close Date: - - Thu, 30 May 2024 00:24:52 GMT + - Wed, 05 Jun 2024 22:24:15 GMT Referrer-Policy: - same-origin Server: @@ -44,9 +44,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy10.iad2.fedoraproject.org + - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHVAAp6vzMrxI0tML2PAAACVQ + - ZmDlj1yZ1g7iy4RtS7x8HgAAAkU X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -106,7 +106,7 @@ interactions: Connection: - close Date: - - Thu, 30 May 2024 00:24:52 GMT + - Wed, 05 Jun 2024 22:24:15 GMT Referrer-Policy: - same-origin Server: @@ -119,13 +119,13 @@ interactions: X-Fedora-ProxyServer: - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHVNzYCNJwtm0JAhGC-AAABE8 + - ZmDlj3wcq_VvCVsYrhrrMQAAAVY X-Frame-Options: - SAMEORIGIN X-Xss-Protection: - 1; mode=block apptime: - - D=128932 + - D=14916 content-length: - '2096' content-type: @@ -158,7 +158,7 @@ interactions: Connection: - close Date: - - Thu, 30 May 2024 00:24:52 GMT + - Wed, 05 Jun 2024 22:24:15 GMT Referrer-Policy: - same-origin Server: @@ -171,7 +171,7 @@ interactions: X-Fedora-ProxyServer: - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHVADwF_W1v7Rmc345bgAABA0 + - ZmDlj33sqT1HWgr94zH_UwAABEY X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -179,7 +179,7 @@ interactions: accept-ranges: - bytes apptime: - - D=109258 + - D=1899 content-length: - '20' last-modified: @@ -392,7 +392,7 @@ interactions: Connection: - close Date: - - Thu, 30 May 2024 00:24:53 GMT + - Wed, 05 Jun 2024 22:24:16 GMT Referrer-Policy: - same-origin Server: @@ -403,9 +403,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy10.iad2.fedoraproject.org + - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHVVfhLCLNHgHklhJwxQAABVA + - ZmDlkLBD3OhoAaJwI2G8QwAAAZI X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -413,7 +413,7 @@ interactions: accept-ranges: - bytes apptime: - - D=2286 + - D=2266 content-length: - '14963' content-type: @@ -1348,7 +1348,7 @@ interactions: Connection: - close Date: - - Thu, 30 May 2024 00:24:53 GMT + - Wed, 05 Jun 2024 22:24:16 GMT Referrer-Policy: - same-origin Server: @@ -1359,9 +1359,9 @@ interactions: X-Content-Type-Options: - nosniff X-Fedora-ProxyServer: - - proxy10.iad2.fedoraproject.org + - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHVfrbPBQAVrZAyqhcvAAABwU + - ZmDlkJ9Yyl3S01qK1DX5rgAAAoM X-Frame-Options: - SAMEORIGIN X-Xss-Protection: @@ -1369,7 +1369,7 @@ interactions: accept-ranges: - bytes apptime: - - D=2008 + - D=2013 content-length: - '78266' content-type: @@ -1387,63 +1387,1385 @@ interactions: - request: body: null headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br Connection: - - keep-alive + - close + Host: + - kojipkgs.fedoraproject.org User-Agent: - - python-requests/2.31.0 + - Python-urllib/3.12 method: GET - uri: https://bodhi.fedoraproject.org/releases/F40 + uri: https://kojipkgs.fedoraproject.org/compose/40/Fedora-40-20240414.0/compose response: body: - string: '{"name": "F40", "long_name": "Fedora 40", "version": "40", "id_prefix": - "FEDORA", "branch": "f40", "dist_tag": "f40", "stable_tag": "f40-updates", - "testing_tag": "f40-updates-testing", "candidate_tag": "f40-updates-candidate", - "pending_signing_tag": "f40-signing-pending", "pending_testing_tag": "f40-updates-testing-pending", - "pending_stable_tag": "f40-updates-pending", "override_tag": "f40-override", - "mail_template": "fedora_errata_template", "state": "current", "composed_by_bodhi": - true, "create_automatic_updates": false, "package_manager": "dnf", "testing_repository": - "updates-testing", "released_on": null, "eol": "2025-05-13", "setting_status": - null}' + string: ' + + + + 301 Moved Permanently + + + +

Moved Permanently

+ +

The document has moved here.

+ + + + ' headers: AppTime: - - D=7246945 + - D=941 Connection: - - Keep-Alive + - close Date: - - Thu, 30 May 2024 00:25:01 GMT - Keep-Alive: - - timeout=15, max=500 + - Wed, 05 Jun 2024 22:24:16 GMT Referrer-Policy: - same-origin Server: - - gunicorn + - Apache Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload X-Content-Type-Options: - nosniff - - nosniff X-Fedora-ProxyServer: - - proxy04.fedoraproject.org + - proxy01.iad2.fedoraproject.org X-Fedora-RequestID: - - ZlfHVl3P06DD75b0dzPdeAAABYc + - ZmDlkNenerFjYdXIXWIZ4gAAAwM X-Frame-Options: - SAMEORIGIN X-Xss-Protection: - 1; mode=block content-length: - - '661' + - '283' content-type: - - application/json - set-cookie: - - 1caa5c4232b1a1f24f8c4f6e0f496284=cbca343a697424f4648bad1112e1f4a5; path=/; - HttpOnly; Secure; SameSite=None - x-content-type-options: + - text/html; charset=iso-8859-1 + location: + - https://kojipkgs.fedoraproject.org/compose/40/Fedora-40-20240414.0/compose/ + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/40/Fedora-40-20240414.0/compose/ + response: + body: + string: "\n\n + \n Index of /compose/40/Fedora-40-20240414.0/compose\n + \n \n

Index of /compose/40/Fedora-40-20240414.0/compose

\n
\"Icon Name                              Last modified      Size  Description
\"[PARENTDIR]\" + Parent Directory - + \ \n\"[DIR]\" Cloud/ + \ 2024-04-14 23:08 - \n\"[DIR]\" Container/ 2024-04-14 + 22:55 - \n\"[DIR]\" Everything/ + \ 2024-04-14 18:34 - \n\"[DIR]\" Kinoite/ 2024-04-14 + 17:59 - \n\"[DIR]\" Labs/ + \ 2024-04-14 23:57 - \n\"[DIR]\" Onyx/ 2024-04-14 + 17:59 - \n\"[DIR]\" Sericea/ + \ 2024-04-14 17:59 - \n\"[DIR]\" Server/ 2024-04-14 + 18:44 - \n\"[DIR]\" Silverblue/ + \ 2024-04-14 17:59 - \n\"[DIR]\" Spins/ 2024-04-14 + 23:07 - \n\"[DIR]\" Workstation/ + \ 2024-04-14 23:51 - \n\"[DIR]\" metadata/ 2024-04-15 + 01:25 - \n
\n\n" + headers: + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:17 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: - nosniff + X-Fedora-ProxyServer: + - proxy10.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDlkYJvd3dobCDrVfhrkwAADNA + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + apptime: + - D=10707 + content-length: + - '2096' + content-type: + - text/html;charset=ISO-8859-1 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + x-fedora-appserver: + - kojipkgs02.iad2.fedoraproject.org + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/40/Fedora-40-20240414.0/STATUS + response: + body: + string: 'FINISHED_INCOMPLETE + + ' + headers: + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:17 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: - nosniff + X-Fedora-ProxyServer: + - proxy01.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDlkXwcq_VvCVsYrhrrXgAAAUQ + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + accept-ranges: + - bytes + apptime: + - D=1591 + content-length: + - '20' + last-modified: + - Mon, 15 Apr 2024 01:25:57 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + x-fedora-appserver: + - kojipkgs01.iad2.fedoraproject.org + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/40/Fedora-40-20240414.0/compose/metadata/composeinfo.json + response: + body: + string: "{\n \"header\": {\n \"type\": \"productmd.composeinfo\",\n + \ \"version\": \"1.2\"\n },\n \"payload\": {\n \"compose\": + {\n \"date\": \"20240414\",\n \"final\": true,\n \"id\": + \"Fedora-40-20240414.0\",\n \"label\": \"RC-1.14\",\n \"respin\": + 0,\n \"type\": \"production\"\n },\n \"release\": + {\n \"internal\": false,\n \"name\": \"Fedora\",\n \"short\": + \"Fedora\",\n \"type\": \"ga\",\n \"version\": \"40\"\n + \ },\n \"variants\": {\n \"Cloud\": {\n \"arches\": + [\n \"aarch64\",\n \"ppc64le\",\n \"s390x\",\n + \ \"x86_64\"\n ],\n \"id\": + \"Cloud\",\n \"name\": \"Cloud\",\n \"paths\": + {\n \"images\": {\n \"aarch64\": + \"Cloud/aarch64/images\",\n \"ppc64le\": \"Cloud/ppc64le/images\",\n + \ \"s390x\": \"Cloud/s390x/images\",\n \"x86_64\": + \"Cloud/x86_64/images\"\n }\n },\n \"type\": + \"variant\",\n \"uid\": \"Cloud\"\n },\n \"Container\": + {\n \"arches\": [\n \"aarch64\",\n \"ppc64le\",\n + \ \"s390x\",\n \"x86_64\"\n ],\n + \ \"id\": \"Container\",\n \"name\": \"Container\",\n + \ \"paths\": {\n \"images\": {\n \"aarch64\": + \"Container/aarch64/images\",\n \"ppc64le\": \"Container/ppc64le/images\",\n + \ \"s390x\": \"Container/s390x/images\",\n \"x86_64\": + \"Container/x86_64/images\"\n }\n },\n \"type\": + \"variant\",\n \"uid\": \"Container\"\n },\n \"Everything\": + {\n \"arches\": [\n \"aarch64\",\n \"ppc64le\",\n + \ \"s390x\",\n \"x86_64\"\n ],\n + \ \"id\": \"Everything\",\n \"name\": \"Everything\",\n + \ \"paths\": {\n \"debug_packages\": {\n + \ \"aarch64\": \"Everything/aarch64/debug/tree/Packages\",\n + \ \"ppc64le\": \"Everything/ppc64le/debug/tree/Packages\",\n + \ \"s390x\": \"Everything/s390x/debug/tree/Packages\",\n + \ \"x86_64\": \"Everything/x86_64/debug/tree/Packages\"\n + \ },\n \"debug_repository\": {\n \"aarch64\": + \"Everything/aarch64/debug/tree\",\n \"ppc64le\": \"Everything/ppc64le/debug/tree\",\n + \ \"s390x\": \"Everything/s390x/debug/tree\",\n \"x86_64\": + \"Everything/x86_64/debug/tree\"\n },\n \"debug_tree\": + {\n \"aarch64\": \"Everything/aarch64/debug/tree\",\n + \ \"ppc64le\": \"Everything/ppc64le/debug/tree\",\n + \ \"s390x\": \"Everything/s390x/debug/tree\",\n \"x86_64\": + \"Everything/x86_64/debug/tree\"\n },\n \"isos\": + {\n \"aarch64\": \"Everything/aarch64/iso\",\n \"ppc64le\": + \"Everything/ppc64le/iso\",\n \"s390x\": \"Everything/s390x/iso\",\n + \ \"x86_64\": \"Everything/x86_64/iso\"\n },\n + \ \"os_tree\": {\n \"aarch64\": \"Everything/aarch64/os\",\n + \ \"ppc64le\": \"Everything/ppc64le/os\",\n \"s390x\": + \"Everything/s390x/os\",\n \"x86_64\": \"Everything/x86_64/os\"\n + \ },\n \"packages\": {\n \"aarch64\": + \"Everything/aarch64/os/Packages\",\n \"ppc64le\": + \"Everything/ppc64le/os/Packages\",\n \"s390x\": \"Everything/s390x/os/Packages\",\n + \ \"x86_64\": \"Everything/x86_64/os/Packages\"\n },\n + \ \"repository\": {\n \"aarch64\": + \"Everything/aarch64/os\",\n \"ppc64le\": \"Everything/ppc64le/os\",\n + \ \"s390x\": \"Everything/s390x/os\",\n \"x86_64\": + \"Everything/x86_64/os\"\n },\n \"source_packages\": + {\n \"aarch64\": \"Everything/source/tree/Packages\",\n + \ \"ppc64le\": \"Everything/source/tree/Packages\",\n + \ \"s390x\": \"Everything/source/tree/Packages\",\n + \ \"x86_64\": \"Everything/source/tree/Packages\"\n + \ },\n \"source_repository\": {\n \"aarch64\": + \"Everything/source/tree\",\n \"ppc64le\": \"Everything/source/tree\",\n + \ \"s390x\": \"Everything/source/tree\",\n \"x86_64\": + \"Everything/source/tree\"\n },\n \"source_tree\": + {\n \"aarch64\": \"Everything/source/tree\",\n \"ppc64le\": + \"Everything/source/tree\",\n \"s390x\": \"Everything/source/tree\",\n + \ \"x86_64\": \"Everything/source/tree\"\n }\n + \ },\n \"type\": \"variant\",\n \"uid\": + \"Everything\"\n },\n \"Kinoite\": {\n \"arches\": + [\n \"aarch64\",\n \"ppc64le\",\n \"x86_64\"\n + \ ],\n \"id\": \"Kinoite\",\n \"name\": + \"Kinoite\",\n \"paths\": {\n \"images\": + {\n \"aarch64\": \"Kinoite/aarch64/images\",\n \"ppc64le\": + \"Kinoite/ppc64le/images\",\n \"x86_64\": \"Kinoite/x86_64/images\"\n + \ },\n \"isos\": {\n \"aarch64\": + \"Kinoite/aarch64/iso\",\n \"x86_64\": \"Kinoite/x86_64/iso\"\n + \ },\n \"os_tree\": {\n \"aarch64\": + \"Kinoite/aarch64/os\",\n \"x86_64\": \"Kinoite/x86_64/os\"\n + \ },\n \"repository\": {\n \"aarch64\": + \"Kinoite/aarch64/os\",\n \"x86_64\": \"Kinoite/x86_64/os\"\n + \ }\n },\n \"type\": \"variant\",\n + \ \"uid\": \"Kinoite\"\n },\n \"Labs\": + {\n \"arches\": [\n \"aarch64\",\n \"x86_64\"\n + \ ],\n \"id\": \"Labs\",\n \"name\": + \"Labs\",\n \"paths\": {\n \"images\": {\n + \ \"aarch64\": \"Labs/aarch64/images\",\n \"x86_64\": + \"Labs/x86_64/images\"\n },\n \"isos\": + {\n \"x86_64\": \"Labs/x86_64/iso\"\n }\n + \ },\n \"type\": \"variant\",\n \"uid\": + \"Labs\"\n },\n \"Onyx\": {\n \"arches\": + [\n \"x86_64\"\n ],\n \"id\": + \"Onyx\",\n \"name\": \"Onyx\",\n \"paths\": + {\n \"images\": {\n \"x86_64\": + \"Onyx/x86_64/images\"\n },\n \"isos\": + {\n \"x86_64\": \"Onyx/x86_64/iso\"\n },\n + \ \"os_tree\": {\n \"x86_64\": \"Onyx/x86_64/os\"\n + \ },\n \"repository\": {\n \"x86_64\": + \"Onyx/x86_64/os\"\n }\n },\n \"type\": + \"variant\",\n \"uid\": \"Onyx\"\n },\n \"Sericea\": + {\n \"arches\": [\n \"aarch64\",\n \"x86_64\"\n + \ ],\n \"id\": \"Sericea\",\n \"name\": + \"Sericea\",\n \"paths\": {\n \"images\": + {\n \"aarch64\": \"Sericea/aarch64/images\",\n \"x86_64\": + \"Sericea/x86_64/images\"\n },\n \"isos\": + {\n \"x86_64\": \"Sericea/x86_64/iso\"\n },\n + \ \"os_tree\": {\n \"x86_64\": \"Sericea/x86_64/os\"\n + \ },\n \"repository\": {\n \"x86_64\": + \"Sericea/x86_64/os\"\n }\n },\n \"type\": + \"variant\",\n \"uid\": \"Sericea\"\n },\n \"Server\": + {\n \"arches\": [\n \"aarch64\",\n \"ppc64le\",\n + \ \"s390x\",\n \"x86_64\"\n ],\n + \ \"id\": \"Server\",\n \"name\": \"Server\",\n + \ \"paths\": {\n \"debug_packages\": {\n + \ \"aarch64\": \"Server/aarch64/debug/tree/Packages\",\n + \ \"ppc64le\": \"Server/ppc64le/debug/tree/Packages\",\n + \ \"s390x\": \"Server/s390x/debug/tree/Packages\",\n + \ \"x86_64\": \"Server/x86_64/debug/tree/Packages\"\n + \ },\n \"debug_repository\": {\n \"aarch64\": + \"Server/aarch64/debug/tree\",\n \"ppc64le\": \"Server/ppc64le/debug/tree\",\n + \ \"s390x\": \"Server/s390x/debug/tree\",\n \"x86_64\": + \"Server/x86_64/debug/tree\"\n },\n \"debug_tree\": + {\n \"aarch64\": \"Server/aarch64/debug/tree\",\n \"ppc64le\": + \"Server/ppc64le/debug/tree\",\n \"s390x\": \"Server/s390x/debug/tree\",\n + \ \"x86_64\": \"Server/x86_64/debug/tree\"\n },\n + \ \"images\": {\n \"aarch64\": \"Server/aarch64/images\",\n + \ \"ppc64le\": \"Server/ppc64le/images\",\n \"s390x\": + \"Server/s390x/images\",\n \"x86_64\": \"Server/x86_64/images\"\n + \ },\n \"isos\": {\n \"aarch64\": + \"Server/aarch64/iso\",\n \"ppc64le\": \"Server/ppc64le/iso\",\n + \ \"s390x\": \"Server/s390x/iso\",\n \"x86_64\": + \"Server/x86_64/iso\"\n },\n \"os_tree\": + {\n \"aarch64\": \"Server/aarch64/os\",\n \"ppc64le\": + \"Server/ppc64le/os\",\n \"s390x\": \"Server/s390x/os\",\n + \ \"x86_64\": \"Server/x86_64/os\"\n },\n + \ \"packages\": {\n \"aarch64\": + \"Server/aarch64/os/Packages\",\n \"ppc64le\": \"Server/ppc64le/os/Packages\",\n + \ \"s390x\": \"Server/s390x/os/Packages\",\n \"x86_64\": + \"Server/x86_64/os/Packages\"\n },\n \"repository\": + {\n \"aarch64\": \"Server/aarch64/os\",\n \"ppc64le\": + \"Server/ppc64le/os\",\n \"s390x\": \"Server/s390x/os\",\n + \ \"x86_64\": \"Server/x86_64/os\"\n },\n + \ \"source_packages\": {\n \"aarch64\": + \"Server/source/tree/Packages\",\n \"ppc64le\": \"Server/source/tree/Packages\",\n + \ \"s390x\": \"Server/source/tree/Packages\",\n \"x86_64\": + \"Server/source/tree/Packages\"\n },\n \"source_repository\": + {\n \"aarch64\": \"Server/source/tree\",\n \"ppc64le\": + \"Server/source/tree\",\n \"s390x\": \"Server/source/tree\",\n + \ \"x86_64\": \"Server/source/tree\"\n },\n + \ \"source_tree\": {\n \"aarch64\": + \"Server/source/tree\",\n \"ppc64le\": \"Server/source/tree\",\n + \ \"s390x\": \"Server/source/tree\",\n \"x86_64\": + \"Server/source/tree\"\n }\n },\n \"type\": + \"variant\",\n \"uid\": \"Server\"\n },\n \"Silverblue\": + {\n \"arches\": [\n \"aarch64\",\n \"ppc64le\",\n + \ \"x86_64\"\n ],\n \"id\": + \"Silverblue\",\n \"name\": \"Silverblue\",\n \"paths\": + {\n \"images\": {\n \"aarch64\": + \"Silverblue/aarch64/images\",\n \"ppc64le\": \"Silverblue/ppc64le/images\",\n + \ \"x86_64\": \"Silverblue/x86_64/images\"\n },\n + \ \"isos\": {\n \"aarch64\": \"Silverblue/aarch64/iso\",\n + \ \"ppc64le\": \"Silverblue/ppc64le/iso\",\n \"x86_64\": + \"Silverblue/x86_64/iso\"\n },\n \"os_tree\": + {\n \"aarch64\": \"Silverblue/aarch64/os\",\n \"ppc64le\": + \"Silverblue/ppc64le/os\",\n \"x86_64\": \"Silverblue/x86_64/os\"\n + \ },\n \"repository\": {\n \"aarch64\": + \"Silverblue/aarch64/os\",\n \"ppc64le\": \"Silverblue/ppc64le/os\",\n + \ \"x86_64\": \"Silverblue/x86_64/os\"\n }\n + \ },\n \"type\": \"variant\",\n \"uid\": + \"Silverblue\"\n },\n \"Spins\": {\n \"arches\": + [\n \"aarch64\",\n \"x86_64\"\n ],\n + \ \"id\": \"Spins\",\n \"name\": \"Spins\",\n + \ \"paths\": {\n \"images\": {\n \"aarch64\": + \"Spins/aarch64/images\"\n },\n \"isos\": + {\n \"x86_64\": \"Spins/x86_64/iso\"\n }\n + \ },\n \"type\": \"variant\",\n \"uid\": + \"Spins\"\n },\n \"Workstation\": {\n \"arches\": + [\n \"aarch64\",\n \"ppc64le\",\n \"x86_64\"\n + \ ],\n \"id\": \"Workstation\",\n \"name\": + \"Workstation\",\n \"paths\": {\n \"images\": + {\n \"aarch64\": \"Workstation/aarch64/images\"\n },\n + \ \"isos\": {\n \"aarch64\": \"Workstation/aarch64/iso\",\n + \ \"ppc64le\": \"Workstation/ppc64le/iso\",\n \"x86_64\": + \"Workstation/x86_64/iso\"\n }\n },\n \"type\": + \"variant\",\n \"uid\": \"Workstation\"\n }\n }\n + \ }\n}" + headers: + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:17 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + X-Fedora-ProxyServer: + - proxy01.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDlkbe5WGXiHHu5HBLkSgAAABc + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + accept-ranges: + - bytes + apptime: + - D=1979 + content-length: + - '14963' + content-type: + - application/json + last-modified: + - Mon, 15 Apr 2024 01:25:53 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + x-fedora-appserver: + - kojipkgs02.iad2.fedoraproject.org + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - close + Host: + - kojipkgs.fedoraproject.org + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://kojipkgs.fedoraproject.org/compose/40/Fedora-40-20240414.0/compose/metadata/images.json + response: + body: + string: "{\n \"header\": {\n \"type\": \"productmd.images\",\n \"version\": + \"1.2\"\n },\n \"payload\": {\n \"compose\": {\n \"date\": + \"20240414\",\n \"id\": \"Fedora-40-20240414.0\",\n \"respin\": + 0,\n \"type\": \"production\"\n },\n \"images\": + {\n \"Cloud\": {\n \"aarch64\": [\n {\n + \ \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"ab0fcaf5b5bbb4362d3757ff5e3fcea04fb4a4d6c501c19c1a55064194290230\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135599,\n \"path\": + \"Cloud/aarch64/images/Fedora-Cloud-Base-AmazonEC2.aarch64-40-1.14.raw.xz\",\n + \ \"size\": 365970064,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"raw-xz\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"aarch64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"d53dbc3f75e527f12bad03c0b00f6b3ebbc45be3098c37cf932cdb3b2889c0ab\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"vhd.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135978,\n \"path\": + \"Cloud/aarch64/images/Fedora-Cloud-Base-Azure.aarch64-40-1.14.vhdfixed.xz\",\n + \ \"size\": 426868528,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"vhd-compressed\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"aarch64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"7153713f2a44607376b45786f609026cd64b2c3e276ee421c70a6f4fea74b501\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.gz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135981,\n \"path\": + \"Cloud/aarch64/images/Fedora-Cloud-Base-GCE.aarch64-40-1.14.tar.gz\",\n \"size\": + 407577788,\n \"subvariant\": \"Cloud_Base\",\n \"type\": + \"docker\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"ebdce26d861a9d15072affe1919ed753ec7015bd97b3a7d0d0df6a10834f7459\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713135596,\n \"path\": + \"Cloud/aarch64/images/Fedora-Cloud-Base-Generic.aarch64-40-1.14.qcow2\",\n + \ \"size\": 408289280,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"qcow2\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"aarch64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"95224953d04b8af9447c5422e6af819e8e47a961476528b9b814dc52d48f424e\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713135984,\n \"path\": + \"Cloud/aarch64/images/Fedora-Cloud-Base-UEFI-UKI.aarch64-40-1.14.qcow2\",\n + \ \"size\": 400883712,\n \"subvariant\": + \"Cloud_Base_UKI\",\n \"type\": \"qcow2\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"aarch64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"02aca73fe591bcc8e7d02b69d15d58a40110e73c7dd33de819aae3c602e9e1ed\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"vagrant-libvirt.box\",\n \"implant_md5\": + null,\n \"mtime\": 1713135601,\n \"path\": + \"Cloud/aarch64/images/Fedora-Cloud-Base-Vagrant-libvirt.aarch64-40-1.14.vagrant.libvirt.box\",\n + \ \"size\": 384506222,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"vagrant-libvirt\",\n + \ \"volume_id\": null\n }\n ],\n + \ \"ppc64le\": [\n {\n \"arch\": + \"ppc64le\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"ede915e0461c112b444519559fbed5f9c9f69a72db215a2c2989b99f03f0b08a\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713136020,\n \"path\": + \"Cloud/ppc64le/images/Fedora-Cloud-Base-Generic.ppc64le-40-1.14.qcow2\",\n + \ \"size\": 398589952,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"qcow2\",\n \"volume_id\": + null\n }\n ],\n \"s390x\": + [\n {\n \"arch\": \"s390x\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"808226b31c6c61e08cde77fe7ba61d766f7528c857e7ae8553040c177cbda9a7\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713135364,\n \"path\": + \"Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2\",\n \"size\": + 367915520,\n \"subvariant\": \"Cloud_Base\",\n \"type\": + \"qcow2\",\n \"volume_id\": null\n }\n + \ ],\n \"x86_64\": [\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"42c682c2c77ead24ea6af989d1fed28d93e2134c85b016674e109ee6f6699446\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135441,\n \"path\": + \"Cloud/x86_64/images/Fedora-Cloud-Base-AmazonEC2.x86_64-40-1.14.raw.xz\",\n + \ \"size\": 366518332,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"raw-xz\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"x86_64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"9630c21d15990a08a793c35d4ef70dbef4bf98d8865dda6081aa14c1a90200e3\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"vhd.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135500,\n \"path\": + \"Cloud/x86_64/images/Fedora-Cloud-Base-Azure.x86_64-40-1.14.vhdfixed.xz\",\n + \ \"size\": 437304100,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"vhd-compressed\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"x86_64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"dcc05425e07b87f6f53f142c693bff3d47942fa4b05e1e08ab122db57ba478b5\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.gz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135465,\n \"path\": + \"Cloud/x86_64/images/Fedora-Cloud-Base-GCE.x86_64-40-1.14.tar.gz\",\n \"size\": + 400065273,\n \"subvariant\": \"Cloud_Base\",\n \"type\": + \"docker\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"ac58f3c35b73272d5986fa6d3bc44fd246b45df4c334e99a07b3bbd00684adee\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713135440,\n \"path\": + \"Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2\",\n + \ \"size\": 397475840,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"qcow2\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"x86_64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"e58fbd6c147c0eda6eca72491ddc74871c3c3db9b808dc4fcf0d313510c43d81\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713135438,\n \"path\": + \"Cloud/x86_64/images/Fedora-Cloud-Base-UEFI-UKI.x86_64-40-1.14.qcow2\",\n + \ \"size\": 403767296,\n \"subvariant\": + \"Cloud_Base_UKI\",\n \"type\": \"qcow2\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"x86_64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"35f734b81396b3da3bc75c201cb71458745f7539f22ac1dd11b8268a81fa2915\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"vagrant-virtualbox.box\",\n \"implant_md5\": + null,\n \"mtime\": 1713135451,\n \"path\": + \"Cloud/x86_64/images/Fedora-Cloud-Base-Vagrant-VirtualBox.x86_64-40-1.14.vagrant.virtualbox.box\",\n + \ \"size\": 375556047,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"vagrant-virtualbox\",\n + \ \"volume_id\": null\n },\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"359c93a006c378210ae8f3a26eb7333693152ed2a6960904a9113742850ad12b\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"vagrant-libvirt.box\",\n \"implant_md5\": + null,\n \"mtime\": 1713135456,\n \"path\": + \"Cloud/x86_64/images/Fedora-Cloud-Base-Vagrant-libvirt.x86_64-40-1.14.vagrant.libvirt.box\",\n + \ \"size\": 379222737,\n \"subvariant\": + \"Cloud_Base\",\n \"type\": \"vagrant-libvirt\",\n + \ \"volume_id\": null\n }\n ]\n + \ },\n \"Container\": {\n \"aarch64\": + [\n {\n \"arch\": \"aarch64\",\n + \ \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"e374388c2a158729dcc7e9b4d61507ee0146103119eb711e9b91745e559ee94b\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135329,\n \"path\": + \"Container/aarch64/images/Fedora-Container-Base-Generic-Minimal.aarch64-40-1.14.oci.tar.xz\",\n + \ \"size\": 44594488,\n \"subvariant\": + \"Container_Minimal_Base\",\n \"type\": \"docker\",\n + \ \"volume_id\": null\n },\n {\n + \ \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"8f7262dfaf502787581c49669d73b3bd0210b5d916f1d669b9a5737ad1a84830\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135489,\n \"path\": + \"Container/aarch64/images/Fedora-Container-Base-Generic.aarch64-40-1.14.oci.tar.xz\",\n + \ \"size\": 80074648,\n \"subvariant\": + \"Container_Base\",\n \"type\": \"docker\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"aarch64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"247ec625257f0da9f5ce637e65900e61a127e60f508c8f489c13a14521a6f8a4\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135395,\n \"path\": + \"Container/aarch64/images/Fedora-Container-Toolbox.aarch64-40-1.14.oci.tar.xz\",\n + \ \"size\": 302343672,\n \"subvariant\": + \"Container_Toolbox\",\n \"type\": \"docker\",\n \"volume_id\": + null\n }\n ],\n \"ppc64le\": + [\n {\n \"arch\": \"ppc64le\",\n + \ \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"c8fd5cfab4d0a960a28df32d187c9b83133953aebc8096bd9c1bc37a71b592dd\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135311,\n \"path\": + \"Container/ppc64le/images/Fedora-Container-Base-Generic-Minimal.ppc64le-40-1.14.oci.tar.xz\",\n + \ \"size\": 51102672,\n \"subvariant\": + \"Container_Minimal_Base\",\n \"type\": \"docker\",\n + \ \"volume_id\": null\n },\n {\n + \ \"arch\": \"ppc64le\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"75d9864be59de913596240bca2779697d3a5f18e1a4fc0c8a05aafcb13a0034b\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713136025,\n \"path\": + \"Container/ppc64le/images/Fedora-Container-Base-Generic.ppc64le-40-1.14.oci.tar.xz\",\n + \ \"size\": 87901272,\n \"subvariant\": + \"Container_Base\",\n \"type\": \"docker\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"ppc64le\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"0bbf987a98ebf61b24e89f4a1b6e348edc690e87ee7eb3a410c9bef56f75eece\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713136473,\n \"path\": + \"Container/ppc64le/images/Fedora-Container-Toolbox.ppc64le-40-1.14.oci.tar.xz\",\n + \ \"size\": 307939276,\n \"subvariant\": + \"Container_Toolbox\",\n \"type\": \"docker\",\n \"volume_id\": + null\n }\n ],\n \"s390x\": + [\n {\n \"arch\": \"s390x\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"90704b4ce8156cb26e4e92c3eafb69e823c8c837d7567b5287dca7c9e7e4d631\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135252,\n \"path\": + \"Container/s390x/images/Fedora-Container-Base-Generic-Minimal.s390x-40-1.14.oci.tar.xz\",\n + \ \"size\": 46196064,\n \"subvariant\": + \"Container_Minimal_Base\",\n \"type\": \"docker\",\n + \ \"volume_id\": null\n },\n {\n + \ \"arch\": \"s390x\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"3930880dc22d405611f4aaae3526d45024ecf71f5ae0825fd397c176fd61aaa1\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135272,\n \"path\": + \"Container/s390x/images/Fedora-Container-Base-Generic.s390x-40-1.14.oci.tar.xz\",\n + \ \"size\": 81930940,\n \"subvariant\": + \"Container_Base\",\n \"type\": \"docker\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"s390x\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"49bc41d3180300abaced1c49be91f2c4050551c4c81652e672c197649519b050\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135340,\n \"path\": + \"Container/s390x/images/Fedora-Container-Toolbox.s390x-40-1.14.oci.tar.xz\",\n + \ \"size\": 285858376,\n \"subvariant\": + \"Container_Toolbox\",\n \"type\": \"docker\",\n \"volume_id\": + null\n }\n ],\n \"x86_64\": + [\n {\n \"arch\": \"x86_64\",\n + \ \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"78434b6f41b209a2ed882b0c0f4f9f78a20aa965899c7860da24d02ab11235e3\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135278,\n \"path\": + \"Container/x86_64/images/Fedora-Container-Base-Generic-Minimal.x86_64-40-1.14.oci.tar.xz\",\n + \ \"size\": 45908620,\n \"subvariant\": + \"Container_Minimal_Base\",\n \"type\": \"docker\",\n + \ \"volume_id\": null\n },\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"c5c9dc3320ca474ff40b5a378b443a2b290f258a08e909a43fe81ca7a9bbe966\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135297,\n \"path\": + \"Container/x86_64/images/Fedora-Container-Base-Generic.x86_64-40-1.14.oci.tar.xz\",\n + \ \"size\": 81711536,\n \"subvariant\": + \"Container_Base\",\n \"type\": \"docker\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"x86_64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"335900c5185c273e68da30c461ba4739f0a9692a8013014032c9929396840bf8\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"tar.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135361,\n \"path\": + \"Container/x86_64/images/Fedora-Container-Toolbox.x86_64-40-1.14.oci.tar.xz\",\n + \ \"size\": 323370324,\n \"subvariant\": + \"Container_Toolbox\",\n \"type\": \"docker\",\n \"volume_id\": + null\n }\n ]\n },\n \"Everything\": + {\n \"aarch64\": [\n {\n \"arch\": + \"aarch64\",\n \"bootable\": true,\n \"checksums\": + {\n \"sha256\": \"512d1da43a71cde6fd20a4c2f5cae39fab2966fe6d3ad491964dd0be9b0772fc\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"7bf3fd693814339bad5d61b4c2fe368b\",\n \"mtime\": + 1713118156,\n \"path\": \"Everything/aarch64/iso/Fedora-Everything-netinst-aarch64-40-1.14.iso\",\n + \ \"size\": 837763072,\n \"subvariant\": + \"Everything\",\n \"type\": \"boot\",\n \"volume_id\": + \"Fedora-E-dvd-aarch64-40\"\n }\n ],\n \"ppc64le\": + [\n {\n \"arch\": \"ppc64le\",\n + \ \"bootable\": true,\n \"checksums\": + {\n \"sha256\": \"8dc915fabe631cf235820a0e41a8bc6ca30664f5fa5aa3e17bb7b9c064e31afe\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"7d35e0a335a3efe6d8f15e7d8cfb9d16\",\n \"mtime\": + 1713119671,\n \"path\": \"Everything/ppc64le/iso/Fedora-Everything-netinst-ppc64le-40-1.14.iso\",\n + \ \"size\": 802918400,\n \"subvariant\": + \"Everything\",\n \"type\": \"boot\",\n \"volume_id\": + \"Fedora-E-dvd-ppc64le-40\"\n }\n ],\n \"s390x\": + [\n {\n \"arch\": \"s390x\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"a9cf7091294710615c10fba7a3ce25da6de516cccf77c6956e8ce5e883704307\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"24a9ee5e8abda63188ee8c7bedc2cec5\",\n \"mtime\": + 1713118230,\n \"path\": \"Everything/s390x/iso/Fedora-Everything-netinst-s390x-40-1.14.iso\",\n + \ \"size\": 500766720,\n \"subvariant\": + \"Everything\",\n \"type\": \"boot\",\n \"volume_id\": + \"Fedora-E-dvd-s390x-40\"\n }\n ],\n \"x86_64\": + [\n {\n \"arch\": \"x86_64\",\n + \ \"bootable\": true,\n \"checksums\": + {\n \"sha256\": \"4d1c0a7dda6c1d21a1483acb6c7914193158921113f947c5a0519d26bcc548b2\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"76fd4488e0831e52f521992d29dcc53d\",\n \"mtime\": + 1713118558,\n \"path\": \"Everything/x86_64/iso/Fedora-Everything-netinst-x86_64-40-1.14.iso\",\n + \ \"size\": 812255232,\n \"subvariant\": + \"Everything\",\n \"type\": \"boot\",\n \"volume_id\": + \"Fedora-E-dvd-x86_64-40\"\n }\n ]\n },\n + \ \"Kinoite\": {\n \"aarch64\": [\n {\n + \ \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"d3f5cea671ea0fed7f036091be0514bf290340e09cea6232a907b747c6a24217\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"ociarchive\",\n \"implant_md5\": + null,\n \"mtime\": 1713120245,\n \"path\": + \"Kinoite/aarch64/images/Fedora-Kinoite-40.1.14.ociarchive\",\n \"size\": + 2644884992,\n \"subvariant\": \"Kinoite\",\n \"type\": + \"ociarchive\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"6fb0687148f494ba273eb9e278bcf269f88be7d1783c6e380067d540a995fbda\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"e5bf9a93a95b4d4660cdcbc8af891ec7\",\n \"mtime\": + 1713133789,\n \"path\": \"Kinoite/aarch64/iso/Fedora-Kinoite-ostree-aarch64-40-1.14.iso\",\n + \ \"size\": 4161081344,\n \"subvariant\": + \"Kinoite\",\n \"type\": \"dvd-ostree\",\n \"volume_id\": + \"Fedora-Knt-ostree-aarch64-40\"\n }\n ],\n + \ \"ppc64le\": [\n {\n \"arch\": + \"ppc64le\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"7ee09b442e2bc77cf9516315724c37e33c7ca729080db56db14e71c2a7e16be8\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"ociarchive\",\n \"implant_md5\": + null,\n \"mtime\": 1713127760,\n \"path\": + \"Kinoite/ppc64le/images/Fedora-Kinoite-40.1.14.ociarchive\",\n \"size\": + 2489408000,\n \"subvariant\": \"Kinoite\",\n \"type\": + \"ociarchive\",\n \"volume_id\": null\n }\n + \ ],\n \"x86_64\": [\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"0afed26d6101f52f2481230978f1491401a332f6d427bdefe657248e09d4981d\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"ociarchive\",\n \"implant_md5\": + null,\n \"mtime\": 1713120471,\n \"path\": + \"Kinoite/x86_64/images/Fedora-Kinoite-40.1.14.ociarchive\",\n \"size\": + 2659151872,\n \"subvariant\": \"Kinoite\",\n \"type\": + \"ociarchive\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"c6abc4d88de97fd62f42b299cd2879a0e68d9552c9cfd3cc98753a1ff27be16c\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"f66598e2003985c75bd9f6e30680fddd\",\n \"mtime\": + 1713134646,\n \"path\": \"Kinoite/x86_64/iso/Fedora-Kinoite-ostree-x86_64-40-1.14.iso\",\n + \ \"size\": 4181080064,\n \"subvariant\": + \"Kinoite\",\n \"type\": \"dvd-ostree\",\n \"volume_id\": + \"Fedora-Knt-ostree-x86_64-40\"\n }\n ]\n + \ },\n \"Labs\": {\n \"aarch64\": [\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"9c3f177cf24a802eaf8ce616b3b8e349b2850f7ea9692c05e9bf068255de1a7a\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713138953,\n \"path\": + \"Labs/aarch64/images/Fedora-Python-Classroom-40-1.14.aarch64.raw.xz\",\n + \ \"size\": 2709743384,\n \"subvariant\": + \"Python_Classroom\",\n \"type\": \"raw-xz\",\n \"volume_id\": + null\n }\n ],\n \"x86_64\": + [\n {\n \"arch\": \"x86_64\",\n + \ \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"163ed90b1c47d8428959c825ea92974fe153714b6c3ca438c91c0b316645baef\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"vagrant-libvirt.box\",\n \"implant_md5\": + null,\n \"mtime\": 1713136066,\n \"path\": + \"Labs/x86_64/images/Fedora-Python-Classroom-Vagrant-40-1.14.x86_64.vagrant-libvirt.box\",\n + \ \"size\": 1547788429,\n \"subvariant\": + \"Python_Classroom\",\n \"type\": \"vagrant-libvirt\",\n + \ \"volume_id\": null\n },\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"aa4da25b27e82add30e5eb0c8526af28963eafcde6f3c7c6a6a96122819e1389\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"vagrant-virtualbox.box\",\n \"implant_md5\": + null,\n \"mtime\": 1713136106,\n \"path\": + \"Labs/x86_64/images/Fedora-Python-Classroom-Vagrant-40-1.14.x86_64.vagrant-virtualbox.box\",\n + \ \"size\": 1569054720,\n \"subvariant\": + \"Python_Classroom\",\n \"type\": \"vagrant-virtualbox\",\n + \ \"volume_id\": null\n },\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"78c2cfe481c9ef549eca5808ffc9f0a21a85ad2bb4c444369740fd8d9dd32b6f\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"vagrant-libvirt.box\",\n \"implant_md5\": + null,\n \"mtime\": 1713137373,\n \"path\": + \"Labs/x86_64/images/Fedora-Scientific-Vagrant-40-1.14.x86_64.vagrant-libvirt.box\",\n + \ \"size\": 4930855083,\n \"subvariant\": + \"Scientific\",\n \"type\": \"vagrant-libvirt\",\n + \ \"volume_id\": null\n },\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"ab61c41a4199165ee85b00b1bb3b1f5c27f7d10603ab13e4116e6d27951406bf\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"vagrant-virtualbox.box\",\n \"implant_md5\": + null,\n \"mtime\": 1713137485,\n \"path\": + \"Labs/x86_64/images/Fedora-Scientific-Vagrant-40-1.14.x86_64.vagrant-virtualbox.box\",\n + \ \"size\": 4987146240,\n \"subvariant\": + \"Scientific\",\n \"type\": \"vagrant-virtualbox\",\n + \ \"volume_id\": null\n },\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"af586cefa44b7f9c8b755c121e7d5c99f3d88beb39721daec7f3a626622b64fb\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136830,\n \"path\": + \"Labs/x86_64/iso/Fedora-Astronomy_KDE-Live-x86_64-40-1.14.iso\",\n \"size\": + 4634284032,\n \"subvariant\": \"Astronomy_KDE\",\n + \ \"type\": \"live\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"x86_64\",\n \"bootable\": true,\n \"checksums\": + {\n \"sha256\": \"3e17b61870224ca92f85cb031070c4a969a07ad7dacfaacbfd5b70ecb32331c1\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136579,\n \"path\": + \"Labs/x86_64/iso/Fedora-Comp_Neuro-Live-x86_64-40-1.14.iso\",\n \"size\": + 3074414592,\n \"subvariant\": \"Comp_Neuro\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"d99ad7ec55a27393dcb846a333b0e74d5d8b0c70a335b4a0a98ff6e850c852aa\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136822,\n \"path\": + \"Labs/x86_64/iso/Fedora-Games-Live-x86_64-40-1.14.iso\",\n \"size\": + 6890553344,\n \"subvariant\": \"Games\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"816a7d24aa1afc5e875a33e319204a7cd12a7780ae33ab019ee1c5141941611f\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136478,\n \"path\": + \"Labs/x86_64/iso/Fedora-Jam_KDE-Live-x86_64-40-1.14.iso\",\n \"size\": + 3520172032,\n \"subvariant\": \"Jam_KDE\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"5893394eccd8228f9e4f708e76f6cdb77f61ba79c6d19a1dd4a11776e824afe6\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136343,\n \"path\": + \"Labs/x86_64/iso/Fedora-Python-Classroom-Live-x86_64-40-1.14.iso\",\n \"size\": + 2346051584,\n \"subvariant\": \"Python_Classroom\",\n + \ \"type\": \"live\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"x86_64\",\n \"bootable\": true,\n \"checksums\": + {\n \"sha256\": \"c8de28ddb4667d57dc9527d2a7b445ec77861e129b3354251068a0ca9a2e640d\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136335,\n \"path\": + \"Labs/x86_64/iso/Fedora-Robotics-Live-x86_64-40-1.14.iso\",\n \"size\": + 3168759808,\n \"subvariant\": \"Robotics\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"4cfb06b40a5b7fbbc46794a8a1fa89f819712681fc2b8d23d3beb4b394cea0db\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713137226,\n \"path\": + \"Labs/x86_64/iso/Fedora-Scientific_KDE-Live-x86_64-40-1.14.iso\",\n \"size\": + 5545820160,\n \"subvariant\": \"Scientific_KDE\",\n + \ \"type\": \"live\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"x86_64\",\n \"bootable\": true,\n \"checksums\": + {\n \"sha256\": \"2a2e55d2fb08c905e945e259d8b5cab55701c3dbdec717d178d7fb4a5da45608\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136333,\n \"path\": + \"Labs/x86_64/iso/Fedora-Security-Live-x86_64-40-1.14.iso\",\n \"size\": + 2463766528,\n \"subvariant\": \"Security\",\n \"type\": + \"live\",\n \"volume_id\": null\n }\n + \ ]\n },\n \"Onyx\": {\n \"x86_64\": + [\n {\n \"arch\": \"x86_64\",\n + \ \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"511c2f46c298d1cff1df08b770d23f6fcd25d252d19ca837732e349f12086bb1\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"ociarchive\",\n \"implant_md5\": + null,\n \"mtime\": 1713134693,\n \"path\": + \"Onyx/x86_64/images/Fedora-Onyx-40.1.14.ociarchive\",\n \"size\": + 2201719808,\n \"subvariant\": \"Onyx\",\n \"type\": + \"ociarchive\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"b196159ab8bf2ced06204a13925f330546f9b0f3db253f6b399a3a5dac517acb\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"6d1aaecf42d3d0cc855324173ccf6859\",\n \"mtime\": + 1713133807,\n \"path\": \"Onyx/x86_64/iso/Fedora-Onyx-ostree-x86_64-40-1.14.iso\",\n + \ \"size\": 2701541376,\n \"subvariant\": + \"Onyx\",\n \"type\": \"dvd-ostree\",\n \"volume_id\": + \"Fedora-Onyx-ostree-x86_64-40\"\n }\n ]\n + \ },\n \"Sericea\": {\n \"aarch64\": [\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"216c52c960f4a7da1a5fc0056ee138e25cef3f41d2131501089cb3486aaff35e\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"ociarchive\",\n \"implant_md5\": + null,\n \"mtime\": 1713118667,\n \"path\": + \"Sericea/aarch64/images/Fedora-Sericea-40.1.14.ociarchive\",\n \"size\": + 1987797504,\n \"subvariant\": \"Sericea\",\n \"type\": + \"ociarchive\",\n \"volume_id\": null\n }\n + \ ],\n \"x86_64\": [\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"f5d797d8ff27771b95aedd418eebc0d271904505e9156444c8a0c7c5dca0a08a\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"ociarchive\",\n \"implant_md5\": + null,\n \"mtime\": 1713119001,\n \"path\": + \"Sericea/x86_64/images/Fedora-Sericea-40.1.14.ociarchive\",\n \"size\": + 2001887744,\n \"subvariant\": \"Sericea\",\n \"type\": + \"ociarchive\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"9b8cce1ecbaba24a7e8db1b401b240382954acee5fb9993ad4b536f42f9186a6\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"030db49ce5182ba4e71c717b950598fb\",\n \"mtime\": + 1713133600,\n \"path\": \"Sericea/x86_64/iso/Fedora-Sericea-ostree-x86_64-40-1.14.iso\",\n + \ \"size\": 2536486912,\n \"subvariant\": + \"Sericea\",\n \"type\": \"dvd-ostree\",\n \"volume_id\": + \"Fedora-Src-ostree-x86_64-40\"\n }\n ]\n + \ },\n \"Server\": {\n \"aarch64\": [\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"a624d7275bf8538ee875a5f69b60b04d9114ad6ea918ecad160dde24b4b75b35\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713137407,\n \"path\": + \"Server/aarch64/images/Fedora-Server-40-1.14.aarch64.raw.xz\",\n \"size\": + 1108904380,\n \"subvariant\": \"Server\",\n \"type\": + \"raw-xz\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"2fed4e38a927824704d6bd88466b3b938543b335669e470981fa123f965f1c68\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713136435,\n \"path\": + \"Server/aarch64/images/Fedora-Server-KVM-40-1.14.aarch64.qcow2\",\n \"size\": + 672661504,\n \"subvariant\": \"Server_KVM\",\n \"type\": + \"qcow2\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"9146b9563d68c9c9cc53fac75f5e9caefaff8d0e350cd6c4312553deb99b5430\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"1ec36133552bcf746633b30e19b7b0eb\",\n \"mtime\": + 1713135235,\n \"path\": \"Server/aarch64/iso/Fedora-Server-dvd-aarch64-40-1.14.iso\",\n + \ \"size\": 2535260160,\n \"subvariant\": + \"Server\",\n \"type\": \"dvd\",\n \"volume_id\": + \"Fedora-S-dvd-aarch64-40\"\n },\n {\n + \ \"arch\": \"aarch64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"690731ac6abba81413d97517baa80841cb122d07b296ec3f2935848be45be8fe\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"5a1006b4b30a1ad1b21d4d756c9495cd\",\n \"mtime\": + 1713118154,\n \"path\": \"Server/aarch64/iso/Fedora-Server-netinst-aarch64-40-1.14.iso\",\n + \ \"size\": 837820416,\n \"subvariant\": + \"Server\",\n \"type\": \"boot\",\n \"volume_id\": + \"Fedora-S-dvd-aarch64-40\"\n }\n ],\n \"ppc64le\": + [\n {\n \"arch\": \"ppc64le\",\n + \ \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"b5817bcabd28f336f457cc7cafedeef963dc6e1b3227786b92446a8f9bade549\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713143951,\n \"path\": + \"Server/ppc64le/images/Fedora-Server-KVM-40-1.14.ppc64le.qcow2\",\n \"size\": + 675479552,\n \"subvariant\": \"Server_KVM\",\n \"type\": + \"qcow2\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"ppc64le\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"4fa5eafedf7668093f5b10dbbefa8f3d49269036af09dd35f17247d1aed8c0a6\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"dfe900eaeea376d841d11cecdfa6d01e\",\n \"mtime\": + 1713135288,\n \"path\": \"Server/ppc64le/iso/Fedora-Server-dvd-ppc64le-40-1.14.iso\",\n + \ \"size\": 2357985280,\n \"subvariant\": + \"Server\",\n \"type\": \"dvd\",\n \"volume_id\": + \"Fedora-S-dvd-ppc64le-40\"\n },\n {\n + \ \"arch\": \"ppc64le\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"e24354b40722b7a1964e50abae0efc1030faa5605503fcc371bece1897b289eb\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"178c3a1225edc5110692bb32ebae55db\",\n \"mtime\": + 1713118384,\n \"path\": \"Server/ppc64le/iso/Fedora-Server-netinst-ppc64le-40-1.14.iso\",\n + \ \"size\": 802988032,\n \"subvariant\": + \"Server\",\n \"type\": \"boot\",\n \"volume_id\": + \"Fedora-S-dvd-ppc64le-40\"\n }\n ],\n \"s390x\": + [\n {\n \"arch\": \"s390x\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"091c232a7301be14e19c76ce9a0c1cbd2be2c4157884a731e1fc4f89e7455a5f\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713135580,\n \"path\": + \"Server/s390x/images/Fedora-Server-KVM-40-1.14.s390x.qcow2\",\n \"size\": + 646119424,\n \"subvariant\": \"Server_KVM\",\n \"type\": + \"qcow2\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"s390x\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"5e1844fa681ddedcd69ef10a54b4c7bf0dadcb335027b9982c26d53acc9c0f61\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"a32cc4d8ca8f0e1074a6231d5a77a678\",\n \"mtime\": + 1713135471,\n \"path\": \"Server/s390x/iso/Fedora-Server-dvd-s390x-40-1.14.iso\",\n + \ \"size\": 1990197248,\n \"subvariant\": + \"Server\",\n \"type\": \"dvd\",\n \"volume_id\": + \"Fedora-S-dvd-s390x-40\"\n },\n {\n + \ \"arch\": \"s390x\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"6daee5daf5367802633ca8262e122df74ce0cbdab0e39a6ecb6ad4c18bd9afda\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"a25987f92bde5966a9decffdb1681cd1\",\n \"mtime\": + 1713118230,\n \"path\": \"Server/s390x/iso/Fedora-Server-netinst-s390x-40-1.14.iso\",\n + \ \"size\": 500807680,\n \"subvariant\": + \"Server\",\n \"type\": \"boot\",\n \"volume_id\": + \"Fedora-S-dvd-s390x-40\"\n }\n ],\n \"x86_64\": + [\n {\n \"arch\": \"x86_64\",\n + \ \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"a16ba1f26aaf010f62bd94e9f772079353e4bbcffe2c8078f1dfab8aeb848851\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"qcow2\",\n \"implant_md5\": + null,\n \"mtime\": 1713135735,\n \"path\": + \"Server/x86_64/images/Fedora-Server-KVM-40-1.14.x86_64.qcow2\",\n \"size\": + 658702336,\n \"subvariant\": \"Server_KVM\",\n \"type\": + \"qcow2\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"32d9ab1798fc8106a0b06e873bdcd83a3efea8412c9401dfe4097347ed0cfc65\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"cff4f63cc29f4c5a34b3187e643646d4\",\n \"mtime\": + 1713135246,\n \"path\": \"Server/x86_64/iso/Fedora-Server-dvd-x86_64-40-1.14.iso\",\n + \ \"size\": 2612854784,\n \"subvariant\": + \"Server\",\n \"type\": \"dvd\",\n \"volume_id\": + \"Fedora-S-dvd-x86_64-40\"\n },\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"1b4f163c55aa9b35bb08f3d465534aa68899a4984b8ba8976b1e7b28297b61fe\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"da6ff3e6d0ffe4bae7cea6062f6fe307\",\n \"mtime\": + 1713119419,\n \"path\": \"Server/x86_64/iso/Fedora-Server-netinst-x86_64-40-1.14.iso\",\n + \ \"size\": 812312576,\n \"subvariant\": + \"Server\",\n \"type\": \"boot\",\n \"volume_id\": + \"Fedora-S-dvd-x86_64-40\"\n }\n ]\n },\n + \ \"Silverblue\": {\n \"aarch64\": [\n {\n + \ \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"7f7c6839aa83c03c388b37f6b90c57c799a56a1eab45443a57400b410ac591d1\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"ociarchive\",\n \"implant_md5\": + null,\n \"mtime\": 1713119502,\n \"path\": + \"Silverblue/aarch64/images/Fedora-Silverblue-40.1.14.ociarchive\",\n \"size\": + 2108361216,\n \"subvariant\": \"Silverblue\",\n \"type\": + \"ociarchive\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"c482885894c0ff722c305ca36259dc59d94a36582053b64d6042287c103c9c1c\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"0f104e39971464627679ed12a1fb8d9b\",\n \"mtime\": + 1713133688,\n \"path\": \"Silverblue/aarch64/iso/Fedora-Silverblue-ostree-aarch64-40-1.14.iso\",\n + \ \"size\": 3573305344,\n \"subvariant\": + \"Silverblue\",\n \"type\": \"dvd-ostree\",\n \"volume_id\": + \"Fedora-SB-ostree-aarch64-40\"\n }\n ],\n + \ \"ppc64le\": [\n {\n \"arch\": + \"ppc64le\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"32107335909c0bb98c195c1bcd1b3c7b515409ac3cd9460c020a5dd8d8ca9a1d\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"ociarchive\",\n \"implant_md5\": + null,\n \"mtime\": 1713127903,\n \"path\": + \"Silverblue/ppc64le/images/Fedora-Silverblue-40.1.14.ociarchive\",\n \"size\": + 2049432576,\n \"subvariant\": \"Silverblue\",\n \"type\": + \"ociarchive\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"ppc64le\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"cbadcf23a74783bb61f0907329310ad4ac07e7b06659f33afa9106f896fafb25\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"3f83f88976c5551c67b6e9ac831f7faf\",\n \"mtime\": + 1713134909,\n \"path\": \"Silverblue/ppc64le/iso/Fedora-Silverblue-ostree-ppc64le-40-1.14.iso\",\n + \ \"size\": 3499855872,\n \"subvariant\": + \"Silverblue\",\n \"type\": \"dvd-ostree\",\n \"volume_id\": + \"Fedora-SB-ostree-ppc64le-40\"\n }\n ],\n + \ \"x86_64\": [\n {\n \"arch\": + \"x86_64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"706ddc97e9cc8a35d3ce457370aecae032f382bffd0de404aeba062f74940d4c\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"ociarchive\",\n \"implant_md5\": + null,\n \"mtime\": 1713119572,\n \"path\": + \"Silverblue/x86_64/images/Fedora-Silverblue-40.1.14.ociarchive\",\n \"size\": + 2124795904,\n \"subvariant\": \"Silverblue\",\n \"type\": + \"ociarchive\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"8f49c9880cf0eb24e0461498d27d3d5134f056975c478f7d0febb1b9e5d1edbb\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + \"4cc0e9c55bdaad116a611d41223e5d54\",\n \"mtime\": + 1713134394,\n \"path\": \"Silverblue/x86_64/iso/Fedora-Silverblue-ostree-x86_64-40-1.14.iso\",\n + \ \"size\": 3582482432,\n \"subvariant\": + \"Silverblue\",\n \"type\": \"dvd-ostree\",\n \"volume_id\": + \"Fedora-SB-ostree-x86_64-40\"\n }\n ]\n + \ },\n \"Spins\": {\n \"aarch64\": [\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"3840ebba322b9a24867a777c472f510a47193db90cf96a51da074758cc5299e1\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713140460,\n \"path\": + \"Spins/aarch64/images/Fedora-KDE-40-1.14.aarch64.raw.xz\",\n \"size\": + 3297951536,\n \"subvariant\": \"KDE\",\n \"type\": + \"raw-xz\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"9a0aa0a82a10edc184f67c1c2609f11f06a2ea43dd6801863df4189dd647e62b\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713136738,\n \"path\": + \"Spins/aarch64/images/Fedora-LXQt-40-1.14.aarch64.raw.xz\",\n \"size\": + 1995815572,\n \"subvariant\": \"LXQt\",\n \"type\": + \"raw-xz\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"36920c0f7a0ae00c2542579f9b600108f77de228a892417ebf8cb651123ad1e8\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713135848,\n \"path\": + \"Spins/aarch64/images/Fedora-Minimal-40-1.14.aarch64.raw.xz\",\n \"size\": + 912716876,\n \"subvariant\": \"Minimal\",\n \"type\": + \"raw-xz\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"27a015a74dd7cdfd8a2a13cf0fec521e04f04249e5430e26bc698719f6df60b1\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713136685,\n \"path\": + \"Spins/aarch64/images/Fedora-Phosh-40-1.14.aarch64.raw.xz\",\n \"size\": + 2086621740,\n \"subvariant\": \"Phosh\",\n \"type\": + \"raw-xz\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"a4cdd47d37438bbd90ddf1f9ecde7ed94765788381afa4a93412a22301014c87\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713136186,\n \"path\": + \"Spins/aarch64/images/Fedora-SoaS-40-1.14.aarch64.raw.xz\",\n \"size\": + 1720404580,\n \"subvariant\": \"SoaS\",\n \"type\": + \"raw-xz\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"aarch64\",\n \"bootable\": + false,\n \"checksums\": {\n \"sha256\": + \"8622a0f05cc09ec22bd63bc3712b552cee3512f2b135fa51d08a745e4b0169ce\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713136735,\n \"path\": + \"Spins/aarch64/images/Fedora-Xfce-40-1.14.aarch64.raw.xz\",\n \"size\": + 2282925736,\n \"subvariant\": \"Xfce\",\n \"type\": + \"raw-xz\",\n \"volume_id\": null\n }\n + \ ],\n \"x86_64\": [\n {\n + \ \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"18a2876d031fd58d00d9a37d3a823caa03cf7059309bed1de79eb3a46dc4bc21\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136139,\n \"path\": + \"Spins/x86_64/iso/Fedora-Budgie-Live-x86_64-40-1.14.iso\",\n \"size\": + 2146633728,\n \"subvariant\": \"Budgie\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"081ac2402d3e2e704d36ee6aacd67ba631d1939e0c35cf517e996dbb70117735\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136218,\n \"path\": + \"Spins/x86_64/iso/Fedora-Cinnamon-Live-x86_64-40-1.14.iso\",\n \"size\": + 2558238720,\n \"subvariant\": \"Cinnamon\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"8b9da20cfa947b16c8f0c5187e9b4389e13821e31b062688a48cf1b3028c335c\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136407,\n \"path\": + \"Spins/x86_64/iso/Fedora-KDE-Live-x86_64-40-1.14.iso\",\n \"size\": + 2645645312,\n \"subvariant\": \"KDE\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"3be326068be6bd7e98d7e7e89f4427648fe83484ecd36e1e77304af1369d1920\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713135996,\n \"path\": + \"Spins/x86_64/iso/Fedora-LXDE-Live-x86_64-40-1.14.iso\",\n \"size\": + 1741191168,\n \"subvariant\": \"LXDE\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"ef0fbed423acc7484b6fea14a062c41a3026ca93d71edf28debe2d883f9ce61c\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136088,\n \"path\": + \"Spins/x86_64/iso/Fedora-LXQt-Live-x86_64-40-1.14.iso\",\n \"size\": + 1845794816,\n \"subvariant\": \"LXQt\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"3242eb53dd2d0bad66dff04f7e54848aa750910171a110e2f8677aa23b8e84e0\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136230,\n \"path\": + \"Spins/x86_64/iso/Fedora-MATE_Compiz-Live-x86_64-40-1.14.iso\",\n \"size\": + 2454198272,\n \"subvariant\": \"Mate\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"4287b380b4be2f2c421178b9dfdcaf8c64ed58e343baa7d1d482c4f3481975fb\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136027,\n \"path\": + \"Spins/x86_64/iso/Fedora-SoaS-Live-x86_64-40-1.14.iso\",\n \"size\": + 1440874496,\n \"subvariant\": \"SoaS\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"6974428b65153156e133fe0165cdf5cb4420b987fe27c53218480414b685e602\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713135976,\n \"path\": + \"Spins/x86_64/iso/Fedora-Sway-Live-x86_64-40-1.14.iso\",\n \"size\": + 1637679104,\n \"subvariant\": \"Sway\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"519db49a21587c007b8135cfc8fba470951937d2f7edc01a8f4b96abc772370c\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136105,\n \"path\": + \"Spins/x86_64/iso/Fedora-Xfce-Live-x86_64-40-1.14.iso\",\n \"size\": + 1889988608,\n \"subvariant\": \"Xfce\",\n \"type\": + \"live\",\n \"volume_id\": null\n },\n + \ {\n \"arch\": \"x86_64\",\n \"bootable\": + true,\n \"checksums\": {\n \"sha256\": + \"1f55028b79c6633178a0106fdb3d34ccb489f1dc039c5e96a829cea28624d7a8\"\n },\n + \ \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136412,\n \"path\": + \"Spins/x86_64/iso/Fedora-i3-Live-x86_64-40-1.14.iso\",\n \"size\": + 1617053696,\n \"subvariant\": \"i3\",\n \"type\": + \"live\",\n \"volume_id\": null\n }\n + \ ]\n },\n \"Workstation\": {\n \"aarch64\": + [\n {\n \"arch\": \"aarch64\",\n + \ \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"edaaf8e78db25c81c5600ef65b1ed2c85417ba7b51c3a5785d5acff6e8c90721\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"raw.xz\",\n \"implant_md5\": + null,\n \"mtime\": 1713137105,\n \"path\": + \"Workstation/aarch64/images/Fedora-Workstation-40-1.14.aarch64.raw.xz\",\n + \ \"size\": 2622667416,\n \"subvariant\": + \"Workstation\",\n \"type\": \"raw-xz\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"aarch64\",\n \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"ebb1edbf16da88ed3fb804eca01625fb4341f59ce747c6b89ec00af58a9a6158\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713138011,\n \"path\": + \"Workstation/aarch64/iso/Fedora-Workstation-Live-osb-40-1.14.aarch64.iso\",\n + \ \"size\": 2582759424,\n \"subvariant\": + \"Workstation\",\n \"type\": \"live-osbuild\",\n \"volume_id\": + null\n }\n ],\n \"ppc64le\": + [\n {\n \"arch\": \"ppc64le\",\n + \ \"bootable\": true,\n \"checksums\": + {\n \"sha256\": \"d015fe246beac888433a1e5b3bc314d29946e91a4df90bb24d1c7b1903e8edf4\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713138621,\n \"path\": + \"Workstation/ppc64le/iso/Fedora-Workstation-Live-ppc64le-40-1.14.iso\",\n + \ \"size\": 2228242432,\n \"subvariant\": + \"Workstation\",\n \"type\": \"live\",\n \"volume_id\": + null\n }\n ],\n \"x86_64\": + [\n {\n \"arch\": \"x86_64\",\n + \ \"bootable\": false,\n \"checksums\": + {\n \"sha256\": \"8d3cb4d99f27eb932064915bc9ad34a7529d5d073a390896152a8a899518573f\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713138847,\n \"path\": + \"Workstation/x86_64/iso/Fedora-Workstation-Live-osb-40-1.14.x86_64.iso\",\n + \ \"size\": 2623733760,\n \"subvariant\": + \"Workstation\",\n \"type\": \"live-osbuild\",\n \"volume_id\": + null\n },\n {\n \"arch\": + \"x86_64\",\n \"bootable\": true,\n \"checksums\": + {\n \"sha256\": \"dd1faca950d1a8c3d169adf2df4c3644ebb62f8aac04c401f2393e521395d613\"\n + \ },\n \"disc_count\": 1,\n \"disc_number\": + 1,\n \"format\": \"iso\",\n \"implant_md5\": + null,\n \"mtime\": 1713136256,\n \"path\": + \"Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-40-1.14.iso\",\n \"size\": + 2295853056,\n \"subvariant\": \"Workstation\",\n \"type\": + \"live\",\n \"volume_id\": null\n }\n + \ ]\n }\n }\n }\n}" + headers: + Connection: + - close + Date: + - Wed, 05 Jun 2024 22:24:18 GMT + Referrer-Policy: + - same-origin + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + X-Fedora-ProxyServer: + - proxy10.iad2.fedoraproject.org + X-Fedora-RequestID: + - ZmDlkq-V0M1dEnGJ-xPMGgAADZE + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + accept-ranges: + - bytes + apptime: + - D=1479 + content-length: + - '78266' + content-type: + - application/json + last-modified: + - Mon, 15 Apr 2024 01:25:53 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload + x-fedora-appserver: + - kojipkgs02.iad2.fedoraproject.org status: code: 200 message: OK diff --git a/tests/test_handler.py b/tests/test_handler.py index 56616f6..f5172da 100644 --- a/tests/test_handler.py +++ b/tests/test_handler.py @@ -79,6 +79,7 @@ def test_gallery_name(mock_runner, fixtures_dir, azure_fm_conf, compose): "fedora_image_uploader.handler.Uploader.download_image", lambda a, b, c, decompress: f"/test/{os.path.basename(b['path'].removesuffix('.xz'))}", ) +@mock.patch("fedora_image_uploader.handler.Uploader._missing_manifest_arches", return_value=set()) @mock.patch("subprocess.run") @pytest.mark.parametrize( "compose", @@ -111,7 +112,7 @@ def test_gallery_name(mock_runner, fixtures_dir, azure_fm_conf, compose): ), ], ) -def test_containers(mock_subrun, fixtures_dir, compose): +def test_containers(mock_subrun, mock_missing, fixtures_dir, caplog, compose): mock_subrun.return_value.returncode = 0 message_file, cidorlabel, relnum, alias, expected_images = compose # mapping of reponames to expected image filename base strings @@ -137,22 +138,28 @@ def test_containers(mock_subrun, fixtures_dir, compose): # (space-joined args iterables passed to _run) # we will check that every command we expect is in here, remove # them all, and assert it's empty at the end - calls = [" ".join(call.args[0]) for call in mock_subrun.call_args_list] + runcalls = [" ".join(call.args[0]) for call in mock_subrun.call_args_list] + # also check calls to _missing_manifest_arches + misscalls = mock_missing.call_args_list for exprepo, arches in expected_images.items(): # find the manifest creation calls (these are just per repo, # and get images from the first configured registry) expmanref = f"localhost/fiu-temp-{exprepo}-{relnum}" - expimgbase = f"registry.fedoraproject.org/{exprepo}:{relnum}" + expfirstregref = f"registry.fedoraproject.org/{exprepo}:{relnum}" expcalls = ( f"buildah rmi {expmanref}", f"buildah manifest create {expmanref} " - + " ".join(f"{expimgbase}-{arch}" for arch in arches), + + " ".join(f"{expfirstregref}-{arch}" for arch in arches), f"buildah rmi {expmanref}", ) for call in expcalls: - assert call in calls - calls.remove(call) + assert call in runcalls + runcalls.remove(call) + # find the expected _missing_manifest_arches call + expmcall = mock.call(expfirstregref, arches) + assert expmcall in misscalls + misscalls.remove(expmcall) for registry in ["registry.fedoraproject.org", "quay.io/fedora"]: # find the expected calls to skopeo copy for arch in arches: @@ -165,8 +172,8 @@ def test_containers(mock_subrun, fixtures_dir, compose): # https://gitlab.com/fedora/ostree/sig/-/issues/31 expfn = f"oci-archive:/test/{ident}-{cidorlabel.replace('-', '.')}.ociarchive" expcall = f"skopeo copy {expfn} docker://{registry}/{exprepo}:{relnum}-{arch}" - assert expcall in calls - calls.remove(expcall) + assert expcall in runcalls + runcalls.remove(expcall) repopath = f"{registry}/{exprepo}:{relnum}" aliaspath = f"{registry}/{exprepo}:{alias}" # find the expected calls to buildah for manifest publish @@ -175,10 +182,98 @@ def test_containers(mock_subrun, fixtures_dir, compose): f"buildah manifest push {expmanref} docker://{aliaspath} --all", ) for call in expcalls: - assert call in calls - calls.remove(call) + assert call in runcalls + runcalls.remove(call) - assert len(calls) == 0 + assert len(runcalls) == 0 + assert len(misscalls) == 0 + + # if mock_missing returns something, we should skip manifests + mock_subrun.reset_mock() + mock_missing.return_value = set(("x86_64",)) + consumer(msg) + runcalls = [" ".join(call.args[0]) for call in mock_subrun.call_args_list] + assert all("buildah" not in call for call in runcalls) + assert ( + caplog.records[-1].getMessage() + == "Arches x86_64 in current manifest were not built, not publishing manifest" + ) + + +@pytest.mark.vcr +@mock.patch( + "fedora_image_uploader.handler.Uploader.download_image", + lambda a, b, c, decompress: f"/test/{os.path.basename(b['path'].removesuffix('.xz'))}", +) +@mock.patch("subprocess.run") +def test_containers_missing(mock_subrun, caplog): + """Tests for the _missing_manifest_arches functionality.""" + # mock result of the `buildah inspect` command, this is an edited + # version of the real f40 response with two "real" manifest dicts. + # The real response has eight dicts - four 'oci.image' and four + # 'docker.distribution' dicts, one of each for the four arches + mock_subrun.return_value.stdout = """ +{ + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "size": 529, + "digest": "sha256:a0f4dffd30e0af6e53f57533e79a9e32699d37d8e850132ff89f612d6ea8a300", + "platform": { + "architecture": "amd64", + "os": "linux" + } + }, + {"platform": {"architecture": "arm64"}}, + {"platform": {"architecture": "ppc64le"}}, + {"platform": {"architecture": "s390x"}}, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "size": 504, + "digest": "sha256:95bc17b0c49dc8f454fa5dbded9ab1c20bbf8177ddf46fac314601715c60c324", + "platform": { + "architecture": "arm64", + "os": "linux" + } + } + ] +} +""" + mock_subrun.return_value.returncode = 0 + consumer = Uploader() + # request with the same set of arches should return empty set + assert ( + consumer._missing_manifest_arches( + "registry.fedoraproject.org/fedora:40", ["aarch64", "x86_64", "ppc64le", "s390x"] + ) + == set() + ) + # check the correct command was run + assert mock_subrun.call_count == 1 + misscmd = " ".join(mock_subrun.call_args[0][0]) + assert misscmd == "buildah manifest inspect registry.fedoraproject.org/fedora:40" + # request with *more* arches should return empty set + assert ( + consumer._missing_manifest_arches( + "registry.fedoraproject.org/fedora:40", + ["aarch64", "x86_64", "ppc64le", "s390x", "i686"], + ) + == set() + ) + # request with *fewer* or *no* arches should return the diff, + # without duplication + assert consumer._missing_manifest_arches( + "registry.fedoraproject.org/fedora:40", ["x86_64"] + ) == set(("aarch64", "ppc64le", "s390x")) + assert consumer._missing_manifest_arches("registry.fedoraproject.org/fedora:40", []) == set( + ("aarch64", "ppc64le", "s390x", "x86_64") + ) + # we should log a warning and return nothing if parsing fails + mock_subrun.return_value.stdout = "notjson" + assert consumer._missing_manifest_arches("mtest", []) == set() + assert caplog.records[-1].getMessage() == "Could not find or parse existing manifest mtest!" @pytest.mark.vcr