Пример #1
0
        private static void DeallocateVms(IEnumerable <ScaleSetVirtualMachineStripped> vmInstances, IVirtualMachineScaleSet scaleSet, int agentsCountToDeallocate)
        {
            var virtualMachinesCounter = 0;

            foreach (var vmInstance in vmInstances)
            {
                if (virtualMachinesCounter >= agentsCountToDeallocate)
                {
                    break;
                }
                Console.WriteLine($"Deallocating VM with instance ID {vmInstance}");
                virtualMachinesCounter++;
                if (Properties.IsDryRun)
                {
                    continue;
                }

                if (Decisions.IsVmExecutingJob(vmInstance.VmName))
                {
                    //this VM just got job assigned, so we should not deallocate it
                    continue;
                }

                scaleSet.VirtualMachines.Inner.BeginDeallocateWithHttpMessagesAsync(Properties.VmScaleSetResourceGroupName, Properties.VmScaleSetName,
                                                                                    vmInstance.VmInstanceId);
            }
        }