From 999a28bc3404b2d5d71d80088322141d4706aaf0 Mon Sep 17 00:00:00 2001 From: Anton Beloglazov Date: Wed, 1 Apr 2015 22:33:54 +1100 Subject: [PATCH] Added a check for non-empty CPU data in best_fit_decreasing --- neat/globals/vm_placement/bin_packing.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/neat/globals/vm_placement/bin_packing.py b/neat/globals/vm_placement/bin_packing.py index 76b7524..325a157 100644 --- a/neat/globals/vm_placement/bin_packing.py +++ b/neat/globals/vm_placement/bin_packing.py @@ -120,10 +120,14 @@ def best_fit_decreasing(last_n_vm_cpu, hosts_cpu, hosts_ram, log.debug('vms_ram: %s', str(vms_ram)) vms_tmp = [] for vm, cpu in vms_cpu.items(): - last_n_cpu = cpu[-last_n_vm_cpu:] - vms_tmp.append((sum(last_n_cpu) / len(last_n_cpu), - vms_ram[vm], - vm)) + if cpu: + last_n_cpu = cpu[-last_n_vm_cpu:] + vms_tmp.append((sum(last_n_cpu) / len(last_n_cpu), + vms_ram[vm], + vm)) + else: + log.warning('No CPU data for VM: %s - skipping', vm) + vms = sorted(vms_tmp, reverse=True) hosts = sorted(((v, hosts_ram[k], k) for k, v in hosts_cpu.items()))