From d82608427986a9cd542346b45e7fb4c9918c66fd Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Tue, 18 Aug 2009 11:40:02 +0200 Subject: [PATCH] rapi: Add /2/instances/[instance_name]/info resource Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- doc/rapi.rst | 14 ++++++++++++++ lib/rapi/connector.py | 2 ++ lib/rapi/rlib2.py | 16 ++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/doc/rapi.rst b/doc/rapi.rst index 92c923a92..125221904 100644 --- a/doc/rapi.rst +++ b/doc/rapi.rst @@ -283,6 +283,20 @@ Deletes an instance. It supports the ``dry-run`` argument. +``/2/instances/[instance_name]/info`` ++++++++++++++++++++++++++++++++++++++++ + +It supports the following commands: ``GET``. + +``GET`` +~~~~~~~ + +Requests detailed information about the instance. An optional parameter, +``static`` (bool), can be set to return only static information from the +configuration without querying the instance's nodes. The result will be a job +id. + + ``/2/instances/[instance_name]/reboot`` +++++++++++++++++++++++++++++++++++++++ diff --git a/lib/rapi/connector.py b/lib/rapi/connector.py index 96d616e17..168d96067 100644 --- a/lib/rapi/connector.py +++ b/lib/rapi/connector.py @@ -167,6 +167,8 @@ CONNECTOR.update({ rlib2.R_2_nodes_name_storage_repair, "/2/instances": rlib2.R_2_instances, re.compile(r'^/2/instances/([\w\._-]+)$'): rlib2.R_2_instances_name, + re.compile(r'^/2/instances/([\w\._-]+)/info$'): + rlib2.R_2_instances_name_info, 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, diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py index 72937c3b5..3c6f22729 100644 --- a/lib/rapi/rlib2.py +++ b/lib/rapi/rlib2.py @@ -481,6 +481,22 @@ class R_2_instances_name(baserlib.R_Generic): return baserlib.SubmitJob([op]) +class R_2_instances_name_info(baserlib.R_Generic): + """/2/instances/[instance_name]/info resource. + + """ + def GET(self): + """Request detailed instance information. + + """ + instance_name = self.items[0] + static = bool(self._checkIntVariable("static", default=0)) + + op = opcodes.OpQueryInstanceData(instances=[instance_name], + static=static) + return baserlib.SubmitJob([op]) + + class R_2_instances_name_reboot(baserlib.R_Generic): """/2/instances/[instance_name]/reboot resource. -- GitLab