Revision bf5c82dc snf-cyclades-app/synnefo/api/actions.py
b/snf-cyclades-app/synnefo/api/actions.py | ||
---|---|---|
49 | 49 |
from synnefo.logic import backend |
50 | 50 |
from synnefo.logic.utils import get_rsapi_state |
51 | 51 |
|
52 |
from logging import getLogger |
|
53 |
log = getLogger(__name__) |
|
54 |
|
|
52 | 55 |
|
53 | 56 |
server_actions = {} |
54 | 57 |
network_actions = {} |
... | ... | |
90 | 93 |
|
91 | 94 |
raise ServiceUnavailable('Changing password is not supported.') |
92 | 95 |
|
96 |
|
|
93 | 97 |
@server_action('reboot') |
94 | 98 |
def reboot(request, vm, args): |
95 | 99 |
# Normal Response Code: 202 |
... | ... | |
102 | 106 |
# buildInProgress (409), |
103 | 107 |
# overLimit (413) |
104 | 108 |
|
109 |
log.info("Reboot VM %s", vm) |
|
105 | 110 |
reboot_type = args.get('type', '') |
106 | 111 |
if reboot_type not in ('SOFT', 'HARD'): |
107 | 112 |
raise BadRequest('Malformed Request.') |
108 | 113 |
backend.reboot_instance(vm, reboot_type.lower()) |
109 | 114 |
return HttpResponse(status=202) |
110 | 115 |
|
116 |
|
|
111 | 117 |
@server_action('start') |
112 | 118 |
def start(request, vm, args): |
113 | 119 |
# Normal Response Code: 202 |
114 | 120 |
# Error Response Codes: serviceUnavailable (503), |
115 | 121 |
# itemNotFound (404) |
116 | 122 |
|
123 |
log.info("Start VM %s", vm) |
|
117 | 124 |
if args: |
118 | 125 |
raise BadRequest('Malformed Request.') |
119 | 126 |
backend.startup_instance(vm) |
120 | 127 |
return HttpResponse(status=202) |
121 | 128 |
|
129 |
|
|
122 | 130 |
@server_action('shutdown') |
123 | 131 |
def shutdown(request, vm, args): |
124 | 132 |
# Normal Response Code: 202 |
125 | 133 |
# Error Response Codes: serviceUnavailable (503), |
126 | 134 |
# itemNotFound (404) |
127 | 135 |
|
136 |
log.info("Shutdown VM %s", vm) |
|
128 | 137 |
if args: |
129 | 138 |
raise BadRequest('Malformed Request.') |
130 | 139 |
backend.shutdown_instance(vm) |
131 | 140 |
return HttpResponse(status=202) |
132 | 141 |
|
142 |
|
|
133 | 143 |
@server_action('rebuild') |
134 | 144 |
def rebuild(request, vm, args): |
135 | 145 |
# Normal Response Code: 202 |
... | ... | |
145 | 155 |
|
146 | 156 |
raise ServiceUnavailable('Rebuild not supported.') |
147 | 157 |
|
158 |
|
|
148 | 159 |
@server_action('resize') |
149 | 160 |
def resize(request, vm, args): |
150 | 161 |
# Normal Response Code: 202 |
... | ... | |
161 | 172 |
|
162 | 173 |
raise ServiceUnavailable('Resize not supported.') |
163 | 174 |
|
175 |
|
|
164 | 176 |
@server_action('confirmResize') |
165 | 177 |
def confirm_resize(request, vm, args): |
166 | 178 |
# Normal Response Code: 204 |
... | ... | |
177 | 189 |
|
178 | 190 |
raise ServiceUnavailable('Resize not supported.') |
179 | 191 |
|
192 |
|
|
180 | 193 |
@server_action('revertResize') |
181 | 194 |
def revert_resize(request, vm, args): |
182 | 195 |
# Normal Response Code: 202 |
... | ... | |
216 | 229 |
# buildInProgress (409), |
217 | 230 |
# overLimit (413) |
218 | 231 |
|
232 |
log.info("Get console VM %s", vm) |
|
233 |
|
|
219 | 234 |
console_type = args.get('type', '') |
220 | 235 |
if console_type != 'vnc': |
221 | 236 |
raise BadRequest('Type can only be "vnc".') |
... | ... | |
284 | 299 |
# overLimit (413) |
285 | 300 |
|
286 | 301 |
profile = args.get('profile', '') |
302 |
log.info("Set VM %s firewall %s", vm, profile) |
|
287 | 303 |
if profile not in [x[0] for x in NetworkInterface.FIREWALL_PROFILES]: |
288 | 304 |
raise BadRequest("Unsupported firewall profile") |
289 | 305 |
backend.set_firewall_profile(vm, profile) |
... | ... | |
307 | 323 |
raise BadRequest('Malformed Request.') |
308 | 324 |
vm = get_vm(server_id, request.user_uniq) |
309 | 325 |
|
326 |
log.info("Connect VM %s to Network %s", vm, net) |
|
327 |
|
|
310 | 328 |
net = Network.objects.get(id=net.id) |
311 | 329 |
|
312 | 330 |
if net.state != 'ACTIVE': |
... | ... | |
318 | 336 |
except EmptyPool: |
319 | 337 |
raise ServiceUnavailable('Network is full') |
320 | 338 |
|
339 |
log.info("Connecting VM %s to Network %s(%s)", vm, net, address) |
|
340 |
|
|
321 | 341 |
backend.connect_to_network(vm, net, address) |
322 | 342 |
return HttpResponse(status=202) |
323 | 343 |
|
... | ... | |
347 | 367 |
vm = get_vm(server_id, request.user_uniq) |
348 | 368 |
nic = get_nic_from_index(vm, nic_index) |
349 | 369 |
|
370 |
log.info("Disconnect VM %s NIC %s", vm, str(nic.index)) |
|
371 |
|
|
350 | 372 |
if nic.dirty: |
351 | 373 |
raise BuildInProgress('Machine is busy.') |
352 | 374 |
else: |
Also available in: Unified diff