257 |
257 |
def GET(self):
|
258 |
258 |
"""Reboot an instance.
|
259 |
259 |
|
|
260 |
The URI takes type=[hard|soft|full] and
|
|
261 |
ignore_secondaries=[False|True] parameters.
|
|
262 |
|
260 |
263 |
"""
|
261 |
264 |
instance_name = self.items[0]
|
262 |
|
reboot_type = self.queryargs.get('reboot_type',
|
263 |
|
constants.INSTANCE_REBOOT_HARD)
|
264 |
|
ignore_secondaries = self.queryargs.get('ignore_secondaries', False)
|
|
265 |
reboot_type = self.queryargs.get('type',
|
|
266 |
[constants.INSTANCE_REBOOT_HARD])[0]
|
|
267 |
ignore_secondaries = bool(self.queryargs.get('ignore_secondaries',
|
|
268 |
[False])[0])
|
265 |
269 |
op = ganeti.opcodes.OpRebootInstance(
|
266 |
270 |
instance_name=instance_name,
|
267 |
271 |
reboot_type=reboot_type,
|
... | ... | |
272 |
276 |
return job_id
|
273 |
277 |
|
274 |
278 |
|
|
279 |
class R_2_instances_name_startup(baserlib.R_Generic):
|
|
280 |
"""/2/instances/[instance_name]/startup resource.
|
|
281 |
|
|
282 |
Implements an instance startup.
|
|
283 |
|
|
284 |
"""
|
|
285 |
|
|
286 |
DOC_URI = "/2/instances/[instance_name]/startup"
|
|
287 |
|
|
288 |
def GET(self):
|
|
289 |
"""Startup an instance.
|
|
290 |
|
|
291 |
The URI takes force=[False|True] parameter to start the instance if even if
|
|
292 |
secondary disks are failing.
|
|
293 |
|
|
294 |
"""
|
|
295 |
instance_name = self.items[0]
|
|
296 |
force_startup = bool(self.queryargs.get('force', [False])[0])
|
|
297 |
op = ganeti.opcodes.OpStartupInstance(instance_name=instance_name,
|
|
298 |
force=force_startup)
|
|
299 |
|
|
300 |
job_id = ganeti.cli.SendJob([op])
|
|
301 |
|
|
302 |
return job_id
|
|
303 |
|
|
304 |
|
|
305 |
class R_2_instances_name_shutdown(baserlib.R_Generic):
|
|
306 |
"""/2/instances/[instance_name]/shutdown resource.
|
|
307 |
|
|
308 |
Implements an instance shutdown.
|
|
309 |
|
|
310 |
"""
|
|
311 |
|
|
312 |
DOC_URI = "/2/instances/[instance_name]/shutdown"
|
|
313 |
|
|
314 |
def GET(self):
|
|
315 |
"""Shutdown an instance.
|
|
316 |
|
|
317 |
"""
|
|
318 |
instance_name = self.items[0]
|
|
319 |
op = ganeti.opcodes.OpShutdownInstance(instance_name=instance_name)
|
|
320 |
|
|
321 |
job_id = ganeti.cli.SendJob([op])
|
|
322 |
|
|
323 |
return job_id
|
|
324 |
|
|
325 |
|
275 |
326 |
class R_2_instances_name_tags(baserlib.R_Generic):
|
276 |
327 |
"""/2/instances/[instance_name]/tags resource.
|
277 |
328 |
|
... | ... | |
291 |
342 |
def POST(self):
|
292 |
343 |
"""Add a set of tags to the instance.
|
293 |
344 |
|
294 |
|
The reqest as a list of strings should be POST to this URI. And you'll have
|
|
345 |
The request as a list of strings should be POST to this URI. And you'll have
|
295 |
346 |
back a job id.
|
296 |
347 |
|
297 |
348 |
"""
|