Revision 6ef51e9f snf-app/synnefo/api/networks.py

b/snf-app/synnefo/api/networks.py
1
# Copyright 2011 GRNET S.A. All rights reserved.
1
# Copyright 2011-2012 GRNET S.A. All rights reserved.
2 2
# 
3 3
# Redistribution and use in source and binary forms, with or
4 4
# without modification, are permitted provided that the following
......
65 65
    else:
66 66
        return method_not_allowed(request)
67 67

  
68

  
68 69
def network_demux(request, network_id):
69 70
    if request.method == 'GET':
70 71
        return get_network_details(request, network_id)
......
76 77
        return method_not_allowed(request)
77 78

  
78 79

  
79
def network_to_dict(network, user, detail=True):
80
def network_to_dict(network, user_id, detail=True):
80 81
    network_id = str(network.id) if not network.public else 'public'
81 82
    d = {'id': network_id, 'name': network.name}
82 83
    if detail:
83 84
        d['updated'] = util.isoformat(network.updated)
84 85
        d['created'] = util.isoformat(network.created)
85 86
        d['status'] = network.state
86
        servers = [vm.id for vm in network.machines.filter(owner=user)]
87
        servers = [vm.id for vm in network.machines.filter(userid=user_id)]
87 88
        d['servers'] = {'values': servers}
88 89
    return d
89 90

  
91

  
90 92
def render_network(request, networkdict, status=200):
91 93
    if request.serialization == 'xml':
92 94
        data = render_to_string('network.xml', {'network': networkdict})
......
105 107
    #                       overLimit (413)
106 108
    
107 109
    log.debug('list_networks detail=%s', detail)
108
    owner = request.user
109 110
    since = util.isoparse(request.GET.get('changes-since'))
110
    user_networks = Network.objects.filter(Q(owner=owner) | Q(public=True))
111
    user_networks = Network.objects.filter(
112
                                    Q(userid=request.user) | Q(public=True))
111 113
    
112 114
    if since:
113 115
        user_networks = user_networks.filter(updated__gte=since)
......
116 118
    else:
117 119
        user_networks = user_networks.filter(state='ACTIVE')
118 120
    
119
    networks = [network_to_dict(network, owner, detail)
121
    networks = [network_to_dict(network, request.user, detail)
120 122
                for network in user_networks]
121 123
    
122 124
    if request.serialization == 'xml':
......
128 130

  
129 131
    return HttpResponse(data, status=200)
130 132

  
133

  
131 134
@util.api_method('POST')
132 135
def create_network(request):
133 136
    # Normal Response Code: 202
......
154 157
    networkdict = network_to_dict(network, request.user)
155 158
    return render_network(request, networkdict, status=202)
156 159

  
160

  
157 161
@util.api_method('GET')
158 162
def get_network_details(request, network_id):
159 163
    # Normal Response Codes: 200, 203
......
169 173
    netdict = network_to_dict(net, request.user)
170 174
    return render_network(request, netdict)
171 175

  
176

  
172 177
@util.api_method('PUT')
173 178
def update_network_name(request, network_id):
174 179
    # Normal Response Code: 204
......
195 200
    net.save()
196 201
    return HttpResponse(status=204)
197 202

  
203

  
198 204
@util.api_method('DELETE')
199 205
def delete_network(request, network_id):
200 206
    # Normal Response Code: 204
......
212 218
    backend.delete_network(net)
213 219
    return HttpResponse(status=204)
214 220

  
221

  
215 222
@util.api_method('POST')
216 223
def network_action(request, network_id):
217 224
    req = util.get_request_dict(request)

Also available in: Unified diff