diff options
Diffstat (limited to 'contrib/python/cmd/rmi.py')
-rw-r--r-- | contrib/python/cmd/rmi.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/contrib/python/cmd/rmi.py b/contrib/python/cmd/rmi.py new file mode 100644 index 000000000..807c5c1e4 --- /dev/null +++ b/contrib/python/cmd/rmi.py @@ -0,0 +1,25 @@ +from pman import PodmanRemote +from utils import write_out, write_err + +def cli(subparser): + imagesp = subparser.add_parser("rmi", + help=("delete one or more images")) + imagesp.add_argument("--force", "-f", action="store_true", help="force delete", dest="force") + imagesp.add_argument("delete_targets", nargs='*', help="images to delete") + imagesp.set_defaults(_class=Rmi, func='remove_images') + + +class Rmi(PodmanRemote): + + def remove_images(self): + delete_targets = getattr(self.args, "delete_targets") + if len(delete_targets) < 1: + raise ValueError("you must supply at least one image id or name to delete") + force = getattr(self.args, "force") + for d in delete_targets: + image = self.client.images.get(d) + if image["containers"] > 0 and not force: + write_err("unable to delete {} because it has associated errors. retry with --force".format(d)) + continue + image.remove(force) + write_out(image["id"]) |