From 74b8389609f9fb3db627a13eeb9dc73eee34444b Mon Sep 17 00:00:00 2001 From: Dudás Ádám <dudas.adam@cloud.ik.bme.hu> Date: Mon, 25 Nov 2013 18:49:12 +0100 Subject: [PATCH] vm: extract vnc port search --- circle/vm/models.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/circle/vm/models.py b/circle/vm/models.py index ac1dc9a..05d7e2d 100644 --- a/circle/vm/models.py +++ b/circle/vm/models.py @@ -39,6 +39,15 @@ pre_state_changed = Signal(providing_args=["new_state"]) post_state_changed = Signal(providing_args=["new_state"]) +def find_unused_vnc_port(): + used = Instance.objects.values_list('vnc_port', flat=True) + for p in xrange(*VNC_PORT_RANGE): + if p not in used: + return p + else: + raise Exception("No unused port could be found for VNC.") + + class InstanceActiveManager(Manager): def get_query_set(self): @@ -669,13 +678,7 @@ class Instance(AclBase, VirtualMachineDescModel, TimeStampedModel): # Find unused port for VNC if self.vnc_port is None: - used = Instance.objects.values_list('vnc_port', flat=True) - for p in xrange(*VNC_PORT_RANGE): - if p not in used: - self.vnc_port = p - break - else: - raise Exception("No unused port could be found for VNC.") + self.vnc_port = find_unused_vnc_port() # Schedule if self.node is None: -- libgit2 0.26.0