# if they use QinQ or a vxlan overlay, for example
     allow_overlapping = models.BooleanField()
 
-    def get_vlan(self, count=1):
+    def get_vlans(self, count=1):
         """
-        Return the ID of available vlans, but does not reserve them.
+        Return the IDs of available vlans as a list[int], but does not reserve them.
 
         Will throw index exception if not enough vlans are available.
-        If count == 1, the return value is an int. Otherwise, it is a list of ints.
+        Always returns a list of ints
         """
         allocated = []
         vlans = json.loads(self.vlans)
 
         lab.vlan_manager.reserve_public_vlan(public_net.vlan)
         network.vlan_id = public_net.vlan
     else:
-        private_net = lab.vlan_manager.get_vlan()
-        if not private_net:
+        private_nets = lab.vlan_manager.get_vlans(count=1)
+        if not private_nets:
             raise Exception("No more generic vlans are available")
-        lab.vlan_manager.reserve_vlans([private_net])
-        network.vlan_id = private_net
+        lab.vlan_manager.reserve_vlans(private_nets)
+        network.vlan_id = private_nets[0]
 
     network.save()
     return network
 
                 vlan_manager.reserve_public_vlan(public_net.vlan)
                 networks[network.name] = public_net.vlan
             else:
-                vlan = vlan_manager.get_vlan()
-                vlan_manager.reserve_vlans(vlan)
-                networks[network.name] = vlan
+                # already throws if can't get requested count, so can always index in @ 0
+                vlans = vlan_manager.get_vlans(count=1)
+                vlan_manager.reserve_vlans(vlans[0])
+                networks[network.name] = vlans[0]
         return networks
 
     def instantiateTemplate(self, resource_template):
 
         if lab is None or lab.vlan_manager is None:
             return None
         try:
-            vlans = lab.vlan_manager.get_vlan(count=lab.vlan_manager.block_size)
+            vlans = lab.vlan_manager.get_vlans(count=lab.vlan_manager.block_size)
             self.repo_put(self.repo.VLANS, vlans)
             return vlans
         except Exception: