Revision 73aed6bf
b/api/networks.py | ||
---|---|---|
76 | 76 |
return method_not_allowed(request) |
77 | 77 |
|
78 | 78 |
|
79 |
def network_to_dict(network, detail=True): |
|
79 |
def network_to_dict(network, user, detail=True):
|
|
80 | 80 |
network_id = str(network.id) if not network.public else 'public' |
81 | 81 |
d = {'id': network_id, 'name': network.name} |
82 | 82 |
if detail: |
83 | 83 |
d['updated'] = util.isoformat(network.updated) |
84 | 84 |
d['created'] = util.isoformat(network.created) |
85 |
d['servers'] = {'values': [vm.id for vm in network.machines.all()]} |
|
86 | 85 |
d['status'] = network.state |
86 |
servers = [vm.id for vm in network.machines.filter(owner=user)] |
|
87 |
d['servers'] = {'values': servers} |
|
87 | 88 |
return d |
88 | 89 |
|
89 | 90 |
def render_network(request, networkdict, status=200): |
... | ... | |
115 | 116 |
else: |
116 | 117 |
user_networks = user_networks.filter(state='ACTIVE') |
117 | 118 |
|
118 |
networks = [network_to_dict(network, detail) for network in user_networks] |
|
119 |
|
|
119 |
networks = [network_to_dict(network, owner, detail) |
|
120 |
for network in user_networks] |
|
121 |
|
|
120 | 122 |
if request.serialization == 'xml': |
121 | 123 |
data = render_to_string('list_networks.xml', { |
122 | 124 |
'networks': networks, |
... | ... | |
149 | 151 |
if not network: |
150 | 152 |
raise OverLimit('Network count limit exceeded for your account.') |
151 | 153 |
|
152 |
networkdict = network_to_dict(network) |
|
154 |
networkdict = network_to_dict(network, request.user)
|
|
153 | 155 |
return render_network(request, networkdict, status=202) |
154 | 156 |
|
155 | 157 |
@util.api_method('GET') |
... | ... | |
164 | 166 |
|
165 | 167 |
log.debug('get_network_details %s', network_id) |
166 | 168 |
net = util.get_network(network_id, request.user) |
167 |
netdict = network_to_dict(net) |
|
169 |
netdict = network_to_dict(net, request.user)
|
|
168 | 170 |
return render_network(request, netdict) |
169 | 171 |
|
170 | 172 |
@util.api_method('PUT') |
Also available in: Unified diff