def create_options(self, request): client = self.request.user.clients.filter( services__openstack_project__isnull=False).first() if not client: raise APIConflict(_('No client with an OpenStack project found')) selected_region, regions = get_regions(request, for_end_user=True) external_networks = [{ 'name': net.name, 'id': net.id, 'region': net.region } for net in Network.objects.get_networks_for_project( project_id=client.first_project.project_id, external=True).filter( router_external=True)] return Response({ 'regions': regions, 'external_networks': external_networks, 'selected_region': selected_region, 'can_create_resource': check_if_enough_credit( client=self.request.user.clients.all().first(), update_uptodate_credit=False, ), })
def create_options(self, request, *args, **kwargs): selected_region, regions = get_regions(request, filter_for='volumes') # get volume size increments conf = OSConfig() volume_size_increments = conf.volume_size_increments # get volume types volume_types = [] for volume_type in VolumeType.objects.public().filter( region=selected_region): type_display = volume_type.description if volume_type.description else volume_type.name volume_types.append({ 'name': volume_type.name, 'type_display': type_display, 'sizeIncrement': self.get_size_increment(volume_size_increments, volume_type.name, selected_region) }) selected_client = request.query_params.get('client', None) db_project = None if selected_client: try: db_project = Client.objects.get( pk=selected_client).first_project except Client.DoesNotExist as e: LOG.error(e) available_images = Image.objects.filter(region=selected_region) if db_project: available_images = available_images.get_images_for_project( project_id=db_project.project_id) else: available_images = available_images.public() if selected_client: available_volumes = Volume.objects.filter( project__service__client__id=selected_client, region=selected_region) available_volumes = available_volumes.values( 'id', 'name', 'region') else: available_volumes = [] volume_sources = { 'image': available_images.values('id', 'name', 'type', 'region', 'min_disk'), 'volume': available_volumes } return Response({ 'types': volume_types, 'regions': regions, 'sources': volume_sources, 'selected_region': selected_region })
def create_options(self, request): selected_region, regions = get_regions(request) external_networks = [{ 'name': net.name, 'id': net.id, 'region': net.region } for net in Network.objects.filter(router_external=True)] return Response({ 'regions': regions, 'external_networks': external_networks, 'selected_region': selected_region })
def filter_options(self, request, *args, **kwargs): del args, kwargs # unused selected_region, regions = get_regions(request, filter_for='volumes', for_end_user=True) filter_options = { 'regions': regions, 'statuses': statuses_dict_to_statuses_choices(VolumeStatus.status_map.items()), } return Response(filter_options)
def create_options(self, request, *args, **kwargs): selected_region, regions = get_regions(request, for_end_user=True) return Response({ 'regions': regions, 'selected_region': selected_region, 'can_create_resource': check_if_enough_credit( client=self.request.user.clients.all().first(), update_uptodate_credit=False, ), })
def create_options(self, request): selected_region, regions = get_regions(request, for_end_user=True) return Response({ 'regions': RegionSerializer(instance=regions, many=True).data, 'selected_region': selected_region, 'can_create_resource': check_if_enough_credit( client=self.request.user.clients.all().first(), update_uptodate_credit=False, ) })
def create_options(self, request, *args, **kwargs): del args, kwargs # unused selected_region, regions = get_regions(request) create_options = {'regions': regions, 'container_formats': [x for (x, y) in OpenstackImage.IMAGE_CONTAINER_FORMAT], 'disk_formats': [x for (x, y) in OpenstackImage.IMAGE_DISK_FORMAT], 'visibilities': [x for (x, y) in OpenstackImage.IMAGE_VISIBILITY], 'os_distros': [x for (x, y) in settings.OS_TYPES], 'hypervisor_types': [x for x in settings.OS_HYPERVISOR_TYPES], 'selected_region': selected_region, 'statuses': statuses_dict_to_statuses_choices(OpenstackImage.IMAGE_STATUS), 'allowed_formats': getattr(django_settings, 'OS_IMAGE_UPLOAD_FORMATS', []) } return Response(create_options)
def create_options(self, request): provider_types = dict() for provider_type in settings.OPENSTACK_NETWORK_PROVIDER_TYPES: try: provider_types[provider_type] = constants.PROVIDER_TYPES[ provider_type] except KeyError: LOG.error('Undefined network provider type found: {}'.format( provider_type)) selected_region, regions = get_regions(request) return Response({ 'regions': RegionSerializer(instance=regions, many=True).data, 'provider_types': provider_types, 'segmentation_id_range': constants.SEGMENTATION_ID_RANGE, 'selected_region': selected_region })
def create_options(self, request): selected_region, regions = get_regions(request, for_end_user=True) client = request.user.clients.first() openstack_settings = OpenstackSettings.for_client( client=client) if client else None create_options = { 'regions': regions, 'container_formats': [x for (x, y) in Image.IMAGE_CONTAINER_FORMAT], 'disk_formats': [x for (x, y) in Image.IMAGE_DISK_FORMAT], 'visibilities': OpenStackImageVisibility.get_user_choices(), 'os_distros': [x for (x, y) in settings.OS_TYPES], 'selected_region': selected_region, 'hypervisor_types': [x for x in settings.OS_HYPERVISOR_TYPES], 'statuses': statuses_dict_to_statuses_choices(Image.IMAGE_STATUS), 'cleanup_enabled': openstack_settings.auto_cleanup_images if openstack_settings else False, 'cleanup_days': openstack_settings.auto_cleanup_number_of_days if openstack_settings else False, 'cleanup_formats': openstack_settings.auto_cleanup_image_types if openstack_settings else None, 'allowed_formats': getattr(django_settings, 'OS_IMAGE_UPLOAD_FORMATS', []), 'can_create_resource': check_if_enough_credit( client=self.request.user.clients.all().first(), update_uptodate_credit=False, ), } return Response(create_options)
def create_options(self, request, *args, **kwargs): selected_region, regions = get_regions(request) return Response({ 'regions': regions, 'selected_region': selected_region, })
def create_options(self, request): selected_region, regions = get_regions(request) return Response({'regions': regions, 'selected_region': selected_region, 'types': ZONE_TYPES})
def create_options(self, request): regions = get_regions(request) return Response({'regions': regions})
def create_options(self, request, *args, **kwargs): client = self.request.user.clients.filter( services__openstack_project__isnull=False).first() if client is None: raise APIConflict(detail=_( 'No client with an OpenStack project associated found')) db_project = client.first_project conf = OSConfig() volume_size_increments = conf.volume_size_increments selected_region, regions = get_regions(request, filter_for='volumes', for_end_user=True) # get volume types volume_types = [] for volume_type in VolumeType.objects.public().filter( region=selected_region): type_display = volume_type.description if volume_type.description else volume_type.name volume_types.append({ 'name': volume_type.name, 'type_display': type_display, 'sizeIncrement': self.get_size_increment(volume_size_increments, volume_type.name, selected_region) }) available_images = Image.objects.get_images_for_project( project_id=db_project.project_id) available_images = available_images.filter( region=selected_region).distinct() # filter for reseller available_images = available_images.exclude( Q(visibility__in=[ OpenStackImageVisibility.PUBLIC, OpenStackImageVisibility.COMMUNITY ]) & ~Q(reseller_resources=client.reseller_resources)) available_volumes = Volume.objects.filter( project__service__client=client, region=selected_region) available_volumes = available_volumes.values('id', 'name', 'region') volume_sources = { 'image': available_images.values('id', 'name', 'type', 'region', 'min_disk'), 'volume': available_volumes } return Response({ 'types': volume_types, 'regions': regions, 'sources': volume_sources, 'selected_region': selected_region, 'can_create_resource': check_if_enough_credit( client=self.request.user.clients.all().first(), update_uptodate_credit=False, ), })