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()
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()
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()