Mirantis Container Cloud (MCC) becomes part of Mirantis OpenStack for Kubernetes (MOSK)!

Starting with MOSK 25.2, the MOSK documentation set covers all product layers, including MOSK management (formerly MCC). This means everything you need is in one place. The separate MCC documentation site will be retired, so please update your bookmarks for continued easy access to the latest content.

Monitor the airgapped tool status in JSON format

The sync and validate commands of the airgapped tool support machine-readable output in the JSONL (JSON lines) format, when each line is a complete JSON string. This allows for line-by-line parsing and progress tracking during command execution.

To enable JSON output, use the --json flag by adding it before a subcommand name. For example:

./airgapped.sh --json sync ...

JSON strings contain the following fields:

timestamp

Timestamp of a log message.

level

Verbosity level of a message: INFO, WARNING, ERROR, VERBOSE, or DEBUG.

message

Textual description of an event or an action.

status

Non-mandatory. Status of a long-running action or additional information in the machine-readable form. The status field contains the following mandatory boolean fields:

completed

Indicates whether an action has completed.

failed

Indicates whether an action has failed (if completed is true) or only a step of an action has failed (if completed is false). Usually, failed steps contain "level": "ERROR".

progressing

Indicates that an action is in progress.

When the status field is present, the message field contains description of an action. Each log message related to the action contains the same text in the message field allowing to select messages related to the same action. Additional information may also be provided in "status": {"message": "..."}.

Example of a successful sync output
./airgapped.sh --json sync --kaas-release kaas-2-29-6 --cluster-release mke-16-4-6-3-7-24
{"timestamp": 1755597563.0669844, "level": "WARNING", "message": "File '/workspace/release_artifacts-mcc_2.29.6.tar.gz' already exists, skipping download ..."}
{"timestamp": 1755597563.0672197, "level": "WARNING", "message": "File '/workspace/release_artifacts-mcc_2.29.6.tar.gz.digest' already exists, skipping download ..."}
{"timestamp": 1755597563.0941432, "level": "WARNING", "message": "File '/workspace/release_files-mcc_2.29.6.tar.gz' already exists, skipping download ..."}
{"timestamp": 1755597563.0943644, "level": "WARNING", "message": "File '/workspace/release_files-mcc_2.29.6.tar.gz.digest' already exists, skipping download ..."}
{"timestamp": 1755597564.067759, "level": "INFO", "message": "Synchronizing files", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597579.108996, "level": "INFO", "message": "Synchronizing images", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597579.5244758, "level": "INFO", "message": "Synchronizing files", "status": {"total_files": 43406, "bad_files": 0, "completed": true, "failed": false, "progressing": false, "message": "Processed 43406 files, bad files - 0."}}
{"timestamp": 1755597579.5299454, "level": "INFO", "message": "Synchronizing images", "status": {"total_images": 161, "bad_images": 0, "total_blobs": 1319, "bad_blobs": 0, "completed": true, "failed": false, "progressing": false, "message": "Processed 161 images, bad images - 0. Processed 1319 blobs, bad blobs - 0."}}
Example of a successful validate output
./airgapped.sh --json validate --cached --kaas-release kaas-2-29-6 --cluster-release mke-16-4-6-3-7-24
{"timestamp": 1755597514.4130914, "level": "WARNING", "message": "File '/workspace/release_artifacts-mcc_2.29.6.tar.gz' already exists, skipping download ..."}
{"timestamp": 1755597514.413293, "level": "WARNING", "message": "File '/workspace/release_artifacts-mcc_2.29.6.tar.gz.digest' already exists, skipping download ..."}
{"timestamp": 1755597514.4399714, "level": "WARNING", "message": "File '/workspace/release_files-mcc_2.29.6.tar.gz' already exists, skipping download ..."}
{"timestamp": 1755597514.440121, "level": "WARNING", "message": "File '/workspace/release_files-mcc_2.29.6.tar.gz.digest' already exists, skipping download ..."}
{"timestamp": 1755597515.4122643, "level": "INFO", "message": "Validating files", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597515.4124095, "level": "INFO", "message": "Validating cached files", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597524.7470822, "level": "INFO", "message": "Validating cached files", "status": {"total_files": 43406, "bad_files": 0, "completed": true, "failed": false, "progressing": false, "message": "Total files - 43406, bad files - 0."}}
{"timestamp": 1755597524.7553222, "level": "INFO", "message": "Validating files", "status": {"completed": true, "failed": false, "progressing": false}}
{"timestamp": 1755597524.7554657, "level": "INFO", "message": "Validating images", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597524.755511, "level": "INFO", "message": "Validating cached images", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597524.9610856, "level": "INFO", "message": "Validating cached images", "status": {"total_images": 161, "total_blobs": 1319, "bad_images": 0, "bad_blobs": 0, "completed": true, "failed": false, "progressing": false, "message": "Total images - 161, bad images - 0, total blobs - 1319, bad blobs - 0."}}
{"timestamp": 1755597524.9612145, "level": "INFO", "message": "Validating images", "status": {"completed": true, "failed": false, "progressing": false}}
Example of a failed validate output
./airgapped.sh --json validate --cached --kaas-release kaas-2-29-6 --cluster-release mke-16-4-6-3-7-24
{"timestamp": 1755597741.2202103, "level": "WARNING", "message": "File '/workspace/release_artifacts-mcc_2.29.6.tar.gz' already exists, skipping download ..."}
{"timestamp": 1755597741.220743, "level": "WARNING", "message": "File '/workspace/release_artifacts-mcc_2.29.6.tar.gz.digest' already exists, skipping download ..."}
{"timestamp": 1755597741.2485487, "level": "WARNING", "message": "File '/workspace/release_files-mcc_2.29.6.tar.gz' already exists, skipping download ..."}
{"timestamp": 1755597741.2487361, "level": "WARNING", "message": "File '/workspace/release_files-mcc_2.29.6.tar.gz.digest' already exists, skipping download ..."}
{"timestamp": 1755597742.2164998, "level": "INFO", "message": "Validating files", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597742.216663, "level": "INFO", "message": "Validating cached files", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597746.9459758, "level": "ERROR", "message": "Validating cached files", "status": {"filename": "kaas/ubuntu-2025-07-16-003900/pool/universe/h/haskell-listlike/libghc-listlike-prof_4.7.1-1build1_amd64.deb", "blob_digest": "sha256:02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152", "reason": "<Blob(sha256:02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152)> does not exist // [Errno 2] No such file or directory: '/workspace/files/blobs/sha256/02/02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152/data'", "completed": false, "failed": true, "progressing": true, "message": "Blob 'sha256:02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152' (kaas/ubuntu-2025-07-16-003900/pool/universe/h/haskell-listlike/libghc-listlike-prof_4.7.1-1build1_amd64.deb) invalid: <Blob(sha256:02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152)> does not exist // [Errno 2] No such file or directory: '/workspace/files/blobs/sha256/02/02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152/data'"}}
{"timestamp": 1755597752.2745066, "level": "ERROR", "message": "Validating cached files", "status": {"total_files": 43406, "bad_files": 1, "completed": true, "failed": true, "progressing": false, "message": "Total files - 43406, bad files - 1."}}
{"timestamp": 1755597752.2749348, "level": "ERROR", "message": "Validating files", "status": {"completed": true, "failed": true, "progressing": false}}
{"timestamp": 1755597752.2750237, "level": "INFO", "message": "Validating images", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597752.275078, "level": "INFO", "message": "Validating cached images", "status": {"completed": false, "failed": false, "progressing": true}}
{"timestamp": 1755597752.4782774, "level": "INFO", "message": "Validating cached images", "status": {"total_images": 161, "total_blobs": 1319, "bad_images": 0, "bad_blobs": 0, "completed": true, "failed": false, "progressing": false, "message": "Total images - 161, bad images - 0, total blobs - 1319, bad blobs - 0."}}
{"timestamp": 1755597752.4784915, "level": "INFO", "message": "Validating images", "status": {"completed": true, "failed": false, "progressing": false}}
Example of an error message for a file that failed validation
{
  "timestamp": 1755597746.9459758,
  "level": "ERROR",
  "message": "Validating cached files",
  "status": {
    "filename": "kaas/ubuntu-2025-07-16-003900/pool/universe/h/haskell-listlike/libghc-listlike-prof_4.7.1-1build1_amd64.deb",
    "blob_digest": "sha256:02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152",
    "reason": "<Blob(sha256:02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152)> does not exist // [Errno 2] No such file or directory: /workspace/files/blobs/sha256/02/02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152/data",
    "completed": false,
    "failed": true,
    "progressing": true,
    "message": "Blob sha256:02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152 (kaas/ubuntu-2025-07-16-003900/pool/universe/h/haskell-listlike/libghc-listlike-prof_4.7.1-1build1_amd64.deb) invalid: <Blob(sha256:02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152)> does not exist // [Errno 2] No such file or directory: /workspace/files/blobs/sha256/02/02111e5e15c186581710b8e5517c5d1ee1284198fe30b8c5d6e1096031ac1152/data"
  }
}
Example of the overall status of a completed action
{
  "timestamp": 1755597752.2745066,
  "level": "ERROR",
  "message": "Validating cached files",
  "status": {
    "total_files": 43406,
    "bad_files": 1,
    "completed": true,
    "failed": true,
    "progressing": false,
    "message": "Total files - 43406, bad files - 1."
  }
}