From f58ca471ba5630dde5002d00a8d9b84271722444 Mon Sep 17 00:00:00 2001 From: Thomas Grimonet Date: Wed, 20 Mar 2024 17:52:31 +0100 Subject: [PATCH] feat(cli): tag imge with latest when dowloaded with --latest option --- eos_downloader/cli/get/commands.py | 4 +++- eos_downloader/object_downloader.py | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/eos_downloader/cli/get/commands.py b/eos_downloader/cli/get/commands.py index b4525fe..498473a 100644 --- a/eos_downloader/cli/get/commands.py +++ b/eos_downloader/cli/get/commands.py @@ -128,6 +128,7 @@ def eos( console = Console() # Get from Context token = ctx.obj["token"] + is_latest: bool = False if token is None or token == "": console.print( "❗ Token is unset ! Please configure ARISTA_TOKEN or use --token option", @@ -156,6 +157,7 @@ def eos( my_download.authenticate() elif latest: + is_latest = True my_download = eos_downloader.eos.EOSDownloader( image=image_type, software="EOS", @@ -180,7 +182,7 @@ def eos( my_download.download_local(file_path=output, checksum=True) if import_docker: - my_download.docker_import(image_name=docker_name) + my_download.docker_import(image_name=docker_name, is_latest=is_latest) console.print("✅ processing done !") sys.exit(0) diff --git a/eos_downloader/object_downloader.py b/eos_downloader/object_downloader.py index d7b1418..30cf9df 100644 --- a/eos_downloader/object_downloader.py +++ b/eos_downloader/object_downloader.py @@ -547,7 +547,9 @@ def provision_eve(self, noztp: bool = False, checksum: bool = True) -> None: if noztp: self._disable_ztp(file_path=file_path) - def docker_import(self, image_name: str = "arista/ceos") -> None: + def docker_import( + self, image_name: str = "arista/ceos", is_latest: bool = False + ) -> None: """ Import docker container to your docker server. @@ -561,6 +563,9 @@ def docker_import(self, image_name: str = "arista/ceos") -> None: logger.info(f"Importing image {self.filename} to {docker_image}") console.print(f"🚀 Importing image {self.filename} to {docker_image}") os.system(f"$(which docker) import {self.filename} {docker_image}") + if is_latest: + console.print(f"🚀 Configuring {docker_image}:{self.version} to be latest") + os.system(f"$(which docker) tag {docker_image} {image_name}:latest") for filename in glob.glob(f"{self.filename}*"): try: os.remove(filename)