Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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)