simplify get/delete for scalesets (#468)

This commit is contained in:
bmc-msft
2021-01-26 14:43:14 -05:00
committed by GitHub
parent 165257e989
commit 5027745ee2
2 changed files with 17 additions and 10 deletions

View File

@ -46,16 +46,17 @@ def list_vmss(name: UUID) -> Optional[List[str]]:
def delete_vmss(name: UUID) -> bool:
resource_group = get_base_resource_group()
compute_client = get_compute_client()
try:
compute_client.virtual_machine_scale_sets.begin_delete(
response = compute_client.virtual_machine_scale_sets.begin_delete(
resource_group, str(name)
)
except ResourceNotFoundError:
return True
except CloudError as err:
logging.error("cloud error deleting vmss: %s (%s)", name, err)
return False
# https://docs.microsoft.com/en-us/python/api/azure-core/
# azure.core.polling.lropoller?view=azure-python#status--
#
# status returns a str, however mypy thinks this is an Any.
#
# Checked by hand that the result is Succeeded in practice
return bool(response.status() == "Succeeded")
def get_vmss(name: UUID) -> Optional[Any]:
@ -64,7 +65,7 @@ def get_vmss(name: UUID) -> Optional[Any]:
compute_client = get_compute_client()
try:
return compute_client.virtual_machine_scale_sets.get(resource_group, str(name))
except (ResourceNotFoundError, CloudError) as err:
except ResourceNotFoundError as err:
logging.debug("vm does not exist %s", err)
return None

View File

@ -5,6 +5,7 @@
import inspect
import json
import logging
from datetime import datetime
from enum import Enum
from typing import (
@ -85,6 +86,11 @@ def process_state_update(obj: HasState) -> None:
func = getattr(obj, obj.state.name, None)
if func is None:
return
get_keys = getattr(obj, "get_keys", None)
if get_keys is not None:
logging.info("processing state update: %s - %s", get_keys(), obj.state.name)
func()