def _create_subports_info(self, pod, project_id, subnets, security_groups, trunk_id, num_ports, unbound=False): subports_info = [] in_use_vlan_ids = self._get_in_use_vlan_ids_set(trunk_id) port_rq = self._get_port_request(pod, project_id, subnets, security_groups, unbound) for i in range(num_ports): try: vlan_id = seg_driver.allocate_segmentation_id(in_use_vlan_ids) except kl_exc.SegmentationIdAllocationFailure: LOG.warning( "There is not enough vlan ids available to " "create a batch of %d subports.", num_ports) break in_use_vlan_ids.add(vlan_id) subports_info.append({ 'segmentation_id': vlan_id, 'port_id': '', 'segmentation_type': 'vlan' }) return port_rq, subports_info
def _get_segmentation_id(self, id): if id in self.port_vlan_dic.keys(): return self.port_vlan_dic[id] seg_id = seg_driver.allocate_segmentation_id( self.port_vlan_dic.values()) self.port_vlan_dic[id] = seg_id return seg_id
def _get_vlan_id(self, trunk_id): vlan_ids = self._get_in_use_vlan_ids_set(trunk_id) return seg_driver.allocate_segmentation_id(vlan_ids)