From 2276aa2998d3a2a3aba29d6d161fb2de5a8338ad Mon Sep 17 00:00:00 2001 From: Oleksiy Mishchenko <oleksiy@google.com> Date: Fri, 14 Nov 2008 10:34:34 +0000 Subject: [PATCH] RAPI: Implement an instance reboot Reviewed-by: imsnah --- lib/rapi/connector.py | 2 ++ lib/rapi/rlib2.py | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/lib/rapi/connector.py b/lib/rapi/connector.py index 1ce02ad26..99a00cec4 100644 --- a/lib/rapi/connector.py +++ b/lib/rapi/connector.py @@ -140,5 +140,7 @@ CONNECTOR.update({ "/2/instances": rlib2.R_2_instances, re.compile(r'^/2/instances/([\w\._-]+)$'): rlib1.R_instances_name, re.compile(r'^/2/instances/([\w\._-]+)/tags$'): rlib2.R_2_instances_name_tags, + re.compile(r'^/2/instances/([\w\._-]+)/reboot$'): + rlib2.R_2_instances_name_reboot, re.compile(r'/2/jobs/(%s)$' % constants.JOB_ID_TEMPLATE): rlib2.R_2_jobs_id, }) diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py index 832fe456f..1556cfbf9 100644 --- a/lib/rapi/rlib2.py +++ b/lib/rapi/rlib2.py @@ -245,6 +245,33 @@ class R_2_instances(baserlib.R_Generic): return job_id +class R_2_instances_name_reboot(baserlib.R_Generic): + """/2/instances/[instance_name]/reboot resource. + + Implements an instance reboot. + + """ + + DOC_URI = "/2/instances/[instance_name]/reboot" + + def GET(self): + """Reboot an instance. + + """ + instance_name = self.items[0] + reboot_type = self.queryargs.get('reboot_type', + constants.INSTANCE_REBOOT_HARD) + ignore_secondaries = self.queryargs.get('ignore_secondaries', False) + op = ganeti.opcodes.OpRebootInstance( + instance_name=instance_name, + reboot_type=reboot_type, + ignore_secondaries=ignore_secondaries) + + job_id = ganeti.cli.SendJob([op]) + + return job_id + + class R_2_instances_name_tags(baserlib.R_Generic): """/2/instances/[instance_name]/tags resource. -- GitLab