Marketplace
19 min
The marketplace module manages Docker images and containers on Litmus Edge.
Imports
from litmussdk import marketplaceAll functions are accessible directly from the marketplace namespace.
Overview
overview = marketplace.marketplace_overview() # dict
Images
Listing Images
images = marketplace.list_all_images() # list[dict]
# Each entry: {Id, RepoTags, Size, Created, ...}
ftp_images = marketplace.list_ftp_images() # list[dict], images staged on FTPGetting Image Details
details = marketplace.image_details(image_id) # dictPulling an Image
# Find a registry (e.g. public Docker Hub)
registries = marketplace.list_registries()
registry = next(r for r in registries if "docker" in r["name"].lower())
registry_id = registry["id"]
# Trigger the pull, returns the pull job ID
job = marketplace.pull_image(
image_name="ubuntu",
image_tag="latest",
registry_id=registry_id,
)
# Check pull job status
pulls = marketplace.list_image_pulls()Uploading a Local Image
import pathlib
job_id = marketplace.upload_image(
file_name="my-app.tar",
image_name="my-app",
path_to_file=pathlib.Path("/path/to/my-app.tar"),
)Uploading from FTP
# File must already be in ftp-data/docker-images on the device
job = marketplace.upload_from_ftp("my-app.tar")
# Check upload job status
jobs = marketplace.list_upload_jobs()Removing Images
marketplace.remove_images(
image_ids=[image_id_1, image_id_2],
force_remove=True,
prune_children=True,
)
Containers
Listing Containers
containers = marketplace.list_all_containers(include_exited=True) # list[dict]
# Each entry: {Id, Names, Image, Status, State, ...}Running a Container
result = marketplace.run_container(
"docker run -d --name my-app -p 8080:80 my-app:latest"
)
container_id = result["Id"]Lifecycle
marketplace.start_containers([container_id])
marketplace.stop_containers([container_id])
marketplace.pause_containers([container_id])
marketplace.unpause_containers([container_id])Pass a list of IDs. All lifecycle functions accept multiple containers at once.
Removing Containers
# Single
marketplace.delete_container_by_id(container_id)
# Multiple
marketplace.remove_containers_list_by_ids([container_id_1, container_id_2])
# Prune all stopped containers
marketplace.prune_containers()Inspecting a Container
info = marketplace.container_inspect(container_id) # dict, full Docker inspect output
logs = marketplace.container_log(container_id) # str, container stdout/stderr
top = marketplace.container_top(container_id) # dict, running processes
Prometheus Metrics
metrics = marketplace.prometheus_metrics() # str, raw Prometheus exposition format
License
Copyright (c) Litmus Automation Inc.