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