mirror of
https://github.com/armbian/build.git
synced 2025-09-07 06:41:08 +02:00
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
import logging
|
|
import os
|
|
import sys
|
|
|
|
import oras.client
|
|
import oras.logger
|
|
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
from common import armbian_utils
|
|
|
|
# Prepare logging
|
|
armbian_utils.setup_logging()
|
|
log: logging.Logger = logging.getLogger("mapper-oci-up-to-date")
|
|
|
|
# Extra logging for ORAS library
|
|
oras.logger.setup_logger(quiet=(not armbian_utils.is_debug()), debug=(armbian_utils.is_debug()))
|
|
|
|
client = oras.client.OrasClient(insecure=False)
|
|
log.info(f"OCI client version: {client.version()}")
|
|
|
|
oci_target = "ghcr.io/armsurvivors/armbian-release/uboot-rockpro64-edge:2025.01-S6d41-P295c-Ha5a3-V9ecd-B1e5e-R448a"
|
|
|
|
container = client.get_container(oci_target)
|
|
manifest = client.get_manifest(container)
|
|
log.debug(f"Got manifest for existing '{oci_target}'.")
|
|
|
|
oci_target_does_not_exist = "ghcr.io/armsurvivors/armbian-release/uboot-rockpro64-edge:does-not-exist"
|
|
try:
|
|
container = client.get_container(oci_target_does_not_exist)
|
|
manifest = client.get_manifest(container)
|
|
log.info(f"Got manifest for non-existing '{oci_target_does_not_exist}'.")
|
|
except Exception as e:
|
|
message: str = str(e)
|
|
# A known-good cache miss.
|
|
if ": Not Found" in message:
|
|
log.info("Got expected 'Not Found' error for non-existing OCI target.")
|
|
else:
|
|
log.warning(f"Failed to get manifest for '{oci_target_does_not_exist}': {e}")
|