From e55a32c7dbeff9fe02c62b66e91ca3fb9d50f72b Mon Sep 17 00:00:00 2001 From: Feiyue Yu Date: Tue, 11 Feb 2020 20:17:06 +0800 Subject: [PATCH 1/2] [Compute] Increase robustness of vm image list --- .../azure/cli/command_modules/vm/_actions.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/vm/_actions.py b/src/azure-cli/azure/cli/command_modules/vm/_actions.py index 32ef889d424..50e2f84d57c 100644 --- a/src/azure-cli/azure/cli/command_modules/vm/_actions.py +++ b/src/azure-cli/azure/cli/command_modules/vm/_actions.py @@ -40,15 +40,27 @@ def load_images_thru_services(cli_ctx, publisher, offer, sku, location): location = get_one_of_subscription_locations(cli_ctx) def _load_images_from_publisher(publisher): - offers = client.virtual_machine_images.list_offers(location, publisher) + try: + offers = client.virtual_machine_images.list_offers(location, publisher) + except Exception as e: + logger.warning(str(e)) + return if offer: offers = [o for o in offers if _matched(offer, o.name)] for o in offers: - skus = client.virtual_machine_images.list_skus(location, publisher, o.name) + try: + skus = client.virtual_machine_images.list_skus(location, publisher, o.name) + except Exception as e: + logger.warning(str(e)) + continue if sku: skus = [s for s in skus if _matched(sku, s.name)] for s in skus: - images = client.virtual_machine_images.list(location, publisher, o.name, s.name) + try: + images = client.virtual_machine_images.list(location, publisher, o.name, s.name) + except Exception as e: + logger.warning(str(e)) + continue for i in images: all_images.append({ 'publisher': publisher, From 3290a6d171cbd6b08cce9378ca21fed15af9f991 Mon Sep 17 00:00:00 2001 From: Feiyue Yu Date: Tue, 11 Feb 2020 21:02:50 +0800 Subject: [PATCH 2/2] Fix style --- src/azure-cli/azure/cli/command_modules/vm/_actions.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/vm/_actions.py b/src/azure-cli/azure/cli/command_modules/vm/_actions.py index 50e2f84d57c..fc7ef7c5b93 100644 --- a/src/azure-cli/azure/cli/command_modules/vm/_actions.py +++ b/src/azure-cli/azure/cli/command_modules/vm/_actions.py @@ -40,9 +40,10 @@ def load_images_thru_services(cli_ctx, publisher, offer, sku, location): location = get_one_of_subscription_locations(cli_ctx) def _load_images_from_publisher(publisher): + from msrestazure.azure_exceptions import CloudError try: offers = client.virtual_machine_images.list_offers(location, publisher) - except Exception as e: + except CloudError as e: logger.warning(str(e)) return if offer: @@ -50,7 +51,7 @@ def _load_images_from_publisher(publisher): for o in offers: try: skus = client.virtual_machine_images.list_skus(location, publisher, o.name) - except Exception as e: + except CloudError as e: logger.warning(str(e)) continue if sku: @@ -58,7 +59,7 @@ def _load_images_from_publisher(publisher): for s in skus: try: images = client.virtual_machine_images.list(location, publisher, o.name, s.name) - except Exception as e: + except CloudError as e: logger.warning(str(e)) continue for i in images: