Skip to content
4 changes: 4 additions & 0 deletions src/scvmm/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

Release History
===============
1.2.2
++++++
* `az scvmm vm delete`: Clear the retained HybridCompute machine's SCVMM kind before VM instance deletion, including with `--no-wait`.

1.2.1
++++++
* [HotFix] Fixed `az scvmm vm create-from-machines` command for VM Instance creation.
Expand Down
13 changes: 12 additions & 1 deletion src/scvmm/azext_scvmm/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -999,13 +999,24 @@ def delete_vm(
machine_client.delete(resource_group_name, resource_name)
return

if not delete_machine:
try:
machine = machine_client.get(resource_group_name, resource_name)
except ResourceNotFoundError:
machine = None

if machine is not None and machine.kind and machine.kind.lower() == MACHINE_KIND_SCVMM.lower():
_ = machine_client.update(
resource_group_name, resource_name, MachineUpdate(kind=''),
Comment thread
xingf-msft marked this conversation as resolved.
)

try:
# TODO (snaskar): Add deleteFromHost to SDK
op = sdk_no_wait(
no_wait, client.begin_delete, machine_id, force, delete_from_host,
)
except ResourceNotFoundError:
# Nothing to delete if the parent machine does not exist.
# Nothing to delete if the VM instance does not exist.
return

op.result()
Expand Down
10 changes: 10 additions & 0 deletions src/scvmm/azext_scvmm/tests/latest/test_scvmm_scenario.py
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,11 @@ def test_scvmm(self):
)

self.cmd('az scvmm vm delete -g {resource_group} --name {vm_name} -y')
machine = self.cmd(
'az resource show -g {resource_group} -n {vm_name}'
' --resource-type Microsoft.HybridCompute/machines --api-version 2023-04-25-preview'
).get_output_in_json()
self.assertIn(machine.get('kind'), (None, ''))

with self.assertRaisesRegex(SystemExit, "3"):
self.cmd('az scvmm vm show -g {resource_group} --name {vm_name}')
Expand All @@ -333,6 +338,11 @@ def test_scvmm(self):
])

self.cmd('az scvmm vm delete -g {resource_group} --name {vm_name} --delete-from-host -y')
machine = self.cmd(
'az resource show -g {resource_group} -n {vm_name}'
' --resource-type Microsoft.HybridCompute/machines --api-version 2023-04-25-preview'
).get_output_in_json()
self.assertIn(machine.get('kind'), (None, ''))

self.cmd('az scvmm avset delete -g {resource_group} --name {avset_name} -y')

Expand Down
2 changes: 1 addition & 1 deletion src/scvmm/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

logger.warn("Wheel is not available, disabling bdist_wheel hook")

VERSION = '1.2.1'
VERSION = '1.2.2'

# The full list of classifiers is available at
# https://pypi.python.org/pypi?%3Aaction=list_classifiers
Expand Down
Loading