Skip to content

Commit 7f0827c

Browse files
Enable machine deletions upon task completion when scale-set is scaling down.
1 parent c62b3c7 commit 7f0827c

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

modules/machinery/az.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
CuckooMachineError,
3434
CuckooOperationalError,
3535
)
36-
from lib.cuckoo.core.database import TASK_PENDING
36+
from lib.cuckoo.core.database import TASK_PENDING, Machine
3737

3838
# Only log INFO or higher from imported python packages
3939
logging.getLogger("adal-python").setLevel(logging.INFO)
@@ -468,9 +468,13 @@ def stop(self, label):
468468
time.sleep(5)
469469
with reimage_lock:
470470
label_in_reimage_vm_list = label in [f"{vm['vmss']}_{vm['id']}" for vm in reimage_vm_list]
471-
# TODO: Find a way to enable machine deletion here without causing a sqlalchemy.orm.exc.StaleDataError
472-
# else:
473-
# self.delete_machine(label)
471+
472+
def release(self, machine: Machine):
473+
vmss_name = machine.label.split("_")[0]
474+
if machine_pools[vmss_name]["is_scaling_down"]:
475+
self.delete_machine(machine.label)
476+
else:
477+
_ = super(Azure, self).release(machine)
474478

475479
def availables(self, label=None, platform=None, tags=None, arch=None, include_reserved=False, os_version=[]):
476480
"""
@@ -627,7 +631,7 @@ def delete_machine(self, label, delete_from_vmss=True):
627631
"""
628632
global vms_currently_being_deleted
629633

630-
_ = super(Azure, self).delete_machine(label)
634+
super(Azure, self).delete_machine(label)
631635

632636
if delete_from_vmss:
633637
vmss_name, instance_id = label.split("_")

0 commit comments

Comments
 (0)