def __init__(self, request, vm, *args, **kwargs): self.request = request self.vm = vm self.dc = None self.nss = None super(VmDcSerializer, self).__init__(*args, **kwargs) self.fields['target_dc'].queryset = get_dcs(request)
def __init__(self, request, name, data): super(DcView, self).__init__(request) self.data = data self.name = name if request.user.is_staff: self.serializer = SuperDcSerializer if self.extended: self.serializer = ExtendedDcSerializer extra = {'select': ExtendedDcSerializer.extra_select} else: extra = None if name: # Return dc from cache (this will also check user permissions for requested DC) # We do this because GET is available for anybody if request.method == 'GET': get_dc(request, name) # But we will use this fresh DC object self.dc = get_object(request, Dc, {'name': name}, sr=('owner',), extra=extra) # Update current datacenter to log tasks for this dc request.dc = self.dc else: # GET many is available for anybody if (request.user.is_staff or self.full) or self.extended: pr = ('roles',) else: pr = None self.dc = get_dcs(request, sr=('owner',), pr=pr, extra=extra, order_by=self.order_by)
def get_dcs_extended(request, sr=('owner', ), pr=None): """ Return queryset of all DCs including extended stats; used by dc_list view. """ annotation = { 'vms': Count('vm', distinct=True), 'dcnodes': Count('dcnode', distinct=True), } extra = {'select': ExtendedDcSerializer.extra_select} return get_dcs(request, sr=sr, pr=pr, annotate=annotation, extra=extra)
def __init__(self, request, node, data, **kwargs): super(BackupFilterForm, self).__init__(data, **kwargs) vms = list(node.backup_set.values('vm__hostname', 'vm__alias') .annotate(bkps=Count('id')).order_by('vm__hostname')) vms_list = [('', _('Server (all)'))] if vms and not vms[-1]['vm__hostname']: # We have backups without VM no_vm = vms.pop() vms_list.append(('novm', _('(no server) (%s)') % no_vm['bkps'])) self.qs = {} self.vm = None self.no_vm = False self.all_vm = True self.fields['dc'].choices = [('', _('Datacenter (all)'))] + list(get_dcs(request).values_list('name', 'alias')) self.fields['hostname'].choices = vms_list + [(vm['vm__hostname'], '%s (%s)' % (vm['vm__hostname'], vm['bkps'])) for vm in vms]
def __init__(self, request, *args, **kwargs): self.request = request kwargs['initial'] = {'name': request.dc.name} super(DcSwitch, self).__init__(*args, **kwargs) self.fields['name'].choices = get_dcs(request).values_list( 'name', 'alias')