Revision 40777cc8 api/util.py

b/api/util.py
67 67
    return ''.join(choice(pool) for i in range(length))
68 68

  
69 69

  
70
def get_user():
71
    # XXX Placeholder function, everything belongs to a single SynnefoUser for now
72
    try:
73
        return SynnefoUser.objects.all()[0]
74
    except IndexError:
75
        raise Unauthorized('No users found.')
76

  
77
def get_vm(server_id):
70
def get_vm(server_id, owner):
78 71
    """Return a VirtualMachine instance or raise ItemNotFound."""
79 72
    
80 73
    try:
81 74
        server_id = int(server_id)
82
        return VirtualMachine.objects.get(id=server_id)
75
        return VirtualMachine.objects.get(id=server_id, owner=owner)
83 76
    except ValueError:
84 77
        raise BadRequest('Invalid server ID.')
85 78
    except VirtualMachine.DoesNotExist:
86 79
        raise ItemNotFound('Server not found.')
87 80

  
88
def get_vm_meta(server_id, key):
81
def get_vm_meta(vm, key):
89 82
    """Return a VirtualMachineMetadata instance or raise ItemNotFound."""
90 83
    
91 84
    try:
92
        server_id = int(server_id)
93
        return VirtualMachineMetadata.objects.get(meta_key=key, vm=server_id)
85
        return VirtualMachineMetadata.objects.get(meta_key=key, vm=vm)
94 86
    except VirtualMachineMetadata.DoesNotExist:
95 87
        raise ItemNotFound('Metadata key not found.')
96 88

  
97
def get_image(image_id):
89
def get_image(image_id, owner):
98 90
    """Return an Image instance or raise ItemNotFound."""
99 91
    
100 92
    try:
101 93
        image_id = int(image_id)
102
        return Image.objects.get(id=image_id)
94
        return Image.objects.get(id=image_id, owner=owner)
95
    except ValueError:
96
        raise BadRequest('Invalid image ID.')
103 97
    except Image.DoesNotExist:
104 98
        raise ItemNotFound('Image not found.')
105 99

  
106
def get_image_meta(image_id, key):
100
def get_image_meta(image, key):
107 101
    """Return a ImageMetadata instance or raise ItemNotFound."""
108 102

  
109 103
    try:
110
        image_id = int(image_id)
111
        return ImageMetadata.objects.get(meta_key=key, image=image_id)
104
        return ImageMetadata.objects.get(meta_key=key, image=image)
112 105
    except ImageMetadata.DoesNotExist:
113 106
        raise ItemNotFound('Metadata key not found.')
114 107

  
......
118 111
    try:
119 112
        flavor_id = int(flavor_id)
120 113
        return Flavor.objects.get(id=flavor_id)
114
    except ValueError:
115
        raise BadRequest('Invalid flavor ID.')
121 116
    except Flavor.DoesNotExist:
122 117
        raise ItemNotFound('Flavor not found.')
123 118

  
......
208 203
        @wraps(func)
209 204
        def wrapper(request, *args, **kwargs):
210 205
            try:
206
                if not request.user:
207
                    raise Unauthorized('No user found.')
211 208
                request.serialization = request_serialization(request, atom_allowed)
212 209
                if http_method and request.method != http_method:
213 210
                    raise BadRequest('Method not allowed.')

Also available in: Unified diff