def __init__(self, request, name, data, many=False): super(GroupView, self).__init__(request) self.name = name self.data = data self.many = many sr = ('dc_bound', ) if self.extended: self.serializer = ExtendedGroupSerializer if name: self.group = get_virt_object(request, Role, data=data, sr=sr, name=name) else: if self.full or self.extended: pr = ['permissions', 'user_set'] if self.extended: pr.append('dc_set') else: sr = () pr = () self.group = get_virt_object(request, Role, data=data, sr=sr, pr=pr, many=True)
def get_user_profiles(request, where=None, **kwargs): if where: where = where & ExcludeInternalProfileUsers else: where = ExcludeInternalProfileUsers return get_virt_object(request, UserProfile, many=True, where=where, **kwargs)
def __init__(self, request, name, data): super(TemplateVmView, self).__init__(request) self.name = name self.data = data self.template = get_virt_object(request, VmTemplate, data=data, name=name)
def __init__(self, request, name, data): super(ImageView, self).__init__(request) self.data = data self.name = name if self.extended: pr = ('dc',) self.ser_class = ExtendedImageSerializer else: pr = () self.ser_class = ImageSerializer self.img = get_virt_object(request, Image, data=data, pr=pr, many=not name, name=name, order_by=self.order_by)
def get_user(request, username, where=None, sr=('dc_bound',), **kwargs): user = request.user if where: where = where & ExcludeInternalUsers else: where = ExcludeInternalUsers if getattr(request, 'is_profile_owner', False): if user.username == username: # IsProfileOwner return get_object(request, User, {'username': username}, where=where, sr=sr, **kwargs) else: raise PermissionDenied else: # Is SuperAdmin or UserAdmin return get_virt_object(request, User, sr=sr, get_attrs={'username': username}, where=where, **kwargs)
def __init__(self, request, name, data): super(TemplateView, self).__init__(request) self.data = data self.name = name if self.extended: pr = ('dc', ) self.ser_class = ExtendedTemplateSerializer else: pr = () self.ser_class = TemplateSerializer self.template = get_virt_object(request, VmTemplate, data=data, pr=pr, many=not name, name=name, order_by=self.order_by)
def __init__(self, request, name, data): super(NetworkView, self).__init__(request) self.data = data self.name = name if self.extended: pr = ('dc', ) self.ser_class = ExtendedNetworkSerializer extra = {'select': ExtendedNetworkSerializer.extra_select} else: pr = () self.ser_class = NetworkSerializer extra = None self.net = get_virt_object(request, Subnet, data=data, pr=pr, extra=extra, many=not name, name=name, order_by=self.order_by)
def __init__(self, request, name, ip, data, dc=None, many=False): super(NetworkIPView, self).__init__(request) self.data = data self.many = many self.dc = dc net_filter = {'name': name} ip_filter = [] if dc: net_filter['dc'] = dc ip_filter.append(Q(usage__in=[IPAddress.VM, IPAddress.VM_REAL])) ip_filter.append((Q(vm__isnull=False) & Q(vm__dc=dc)) | (~Q(vms=None) & Q(vms__dc=dc))) elif not request.user.is_staff: ip_filter.append(~Q(usage=IPAddress.NODE)) self.net = net = get_virt_object(request, Subnet, data=data, sr=('dc_bound', ), get_attrs=net_filter, exists_ok=True, noexists_fail=True) ip_filter.append(Q(subnet=net)) if many: self.ips = ips = data.get('ips', None) if ips is not None: if not isinstance(ips, (tuple, list)): raise InvalidInput('Invalid ips') ip_filter.append(Q(ip__in=ips)) if request.method == 'GET': usage = data.get('usage', None) if usage and not dc: try: usage = int(usage) if usage not in dict(IPAddress.USAGE_REAL): raise ValueError except ValueError: raise InvalidInput('Invalid usage') else: ip_filter.append(Q(usage=usage)) try: ip_filter = reduce(operator.and_, ip_filter) self.ip = IPAddress.objects.select_related('vm', 'vm__dc', 'subnet')\ .prefetch_related('vms', 'vms__dc')\ .filter(ip_filter)\ .order_by(*self.order_by).distinct() except TypeError: raise InvalidInput('Invalid ips') else: ip_filter = reduce(operator.and_, ip_filter) self.ip = get_object(request, IPAddress, {'ip': ip}, where=ip_filter, sr=('vm', 'vm__dc', 'subnet'))
def __init__(self, request, name, data): super(NetworkVmView, self).__init__(request) self.name = name self.data = data self.net = get_virt_object(request, Subnet, data=data, name=name)
def __init__(self, request, name, data): super(ImageVmView, self).__init__(request) self.name = name self.data = data self.img = get_virt_object(request, Image, data=data, name=name)