Example #1
0
    def create_network_segment_range(self, context, network_segment_range):
        """Check network types supported on network segment range creation."""
        range_data = network_segment_range['network_segment_range']
        if self._is_network_segment_range_type_supported(
                range_data['network_type']):
            with db_api.CONTEXT_WRITER.using(context):
                self._validate_network_segment_range_eligible(range_data)
                self._validate_network_segment_range_overlap(
                    context, range_data)
                network_segment_range = (
                    obj_network_segment_range.NetworkSegmentRange(
                        context,
                        name=range_data['name'],
                        description=range_data.get('description'),
                        default=False,
                        shared=range_data['shared'],
                        project_id=(range_data['project_id']
                                    if not range_data['shared'] else None),
                        network_type=range_data['network_type'],
                        physical_network=(range_data['physical_network']
                                          if range_data['network_type']
                                          == const.TYPE_VLAN else None),
                        minimum=range_data['minimum'],
                        maximum=range_data['maximum']))
                network_segment_range.create()

        self.type_manager.update_network_segment_range_allocations(
            network_segment_range['network_type'])
        return network_segment_range.to_dict()
Example #2
0
 def _populate_new_default_network_segment_ranges(self):
     ctx = context.get_admin_context()
     for tun_min, tun_max in self.tunnel_ranges:
         res = {
             'id': uuidutils.generate_uuid(),
             'name': '',
             'default': True,
             'shared': True,
             'network_type': self.get_type(),
             'minimum': tun_min,
             'maximum': tun_max}
         with db_api.CONTEXT_WRITER.using(ctx):
             new_default_range_obj = (
                 range_obj.NetworkSegmentRange(ctx, **res))
             new_default_range_obj.create()
Example #3
0
 def _populate_new_default_network_segment_ranges(self):
     ctx = context.get_admin_context()
     for (physical_network, vlan_ranges) in (
             self.network_vlan_ranges.items()):
         for vlan_min, vlan_max in vlan_ranges:
             res = {
                 'id': uuidutils.generate_uuid(),
                 'name': '',
                 'default': True,
                 'shared': True,
                 'network_type': p_const.TYPE_VLAN,
                 'physical_network': physical_network,
                 'minimum': vlan_min,
                 'maximum': vlan_max}
             with db_api.CONTEXT_WRITER.using(ctx):
                 new_default_range_obj = (
                     range_obj.NetworkSegmentRange(ctx, **res))
                 new_default_range_obj.create()