mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-17 04:18:07 +00:00
simplify get/delete for scalesets (#468)
This commit is contained in:
@ -46,16 +46,17 @@ def list_vmss(name: UUID) -> Optional[List[str]]:
|
|||||||
def delete_vmss(name: UUID) -> bool:
|
def delete_vmss(name: UUID) -> bool:
|
||||||
resource_group = get_base_resource_group()
|
resource_group = get_base_resource_group()
|
||||||
compute_client = get_compute_client()
|
compute_client = get_compute_client()
|
||||||
try:
|
response = compute_client.virtual_machine_scale_sets.begin_delete(
|
||||||
compute_client.virtual_machine_scale_sets.begin_delete(
|
resource_group, str(name)
|
||||||
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]:
|
def get_vmss(name: UUID) -> Optional[Any]:
|
||||||
@ -64,7 +65,7 @@ def get_vmss(name: UUID) -> Optional[Any]:
|
|||||||
compute_client = get_compute_client()
|
compute_client = get_compute_client()
|
||||||
try:
|
try:
|
||||||
return compute_client.virtual_machine_scale_sets.get(resource_group, str(name))
|
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)
|
logging.debug("vm does not exist %s", err)
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
import inspect
|
import inspect
|
||||||
import json
|
import json
|
||||||
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import (
|
from typing import (
|
||||||
@ -85,6 +86,11 @@ def process_state_update(obj: HasState) -> None:
|
|||||||
func = getattr(obj, obj.state.name, None)
|
func = getattr(obj, obj.state.name, None)
|
||||||
if func is None:
|
if func is None:
|
||||||
return
|
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()
|
func()
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user