From a198b2d908196d9bbcb9ad5feb85d01e5e5f5d75 Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Tue, 11 May 2010 16:08:40 +0200
Subject: [PATCH] RAPI client: Add constant for RAPI version

This reverts a60e3cb0a partially by moving the RAPI version into a constant.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
---
 lib/rapi/client.py | 142 +++++++++++++++++++++++++++++----------------
 1 file changed, 92 insertions(+), 50 deletions(-)

diff --git a/lib/rapi/client.py b/lib/rapi/client.py
index c0809cf99..090ec54d2 100644
--- a/lib/rapi/client.py
+++ b/lib/rapi/client.py
@@ -32,6 +32,7 @@ import distutils.version
 
 
 GANETI_RAPI_PORT = 5080
+GANETI_RAPI_VERSION = 2
 
 HTTP_DELETE = "DELETE"
 HTTP_GET = "GET"
@@ -444,7 +445,8 @@ class GanetiRapiClient(object):
     @return: operating systems
 
     """
-    return self._SendRequest(HTTP_GET, "/2/os", None, None)
+    return self._SendRequest(HTTP_GET, "/%s/os" % GANETI_RAPI_VERSION,
+                             None, None)
 
   def GetInfo(self):
     """Gets info about the cluster.
@@ -453,7 +455,8 @@ class GanetiRapiClient(object):
     @return: information about the cluster
 
     """
-    return self._SendRequest(HTTP_GET, "/2/info", None, None)
+    return self._SendRequest(HTTP_GET, "/%s/info" % GANETI_RAPI_VERSION,
+                             None, None)
 
   def GetClusterTags(self):
     """Gets the cluster tags.
@@ -462,7 +465,8 @@ class GanetiRapiClient(object):
     @return: cluster tags
 
     """
-    return self._SendRequest(HTTP_GET, "/2/tags", None, None)
+    return self._SendRequest(HTTP_GET, "/%s/tags" % GANETI_RAPI_VERSION,
+                             None, None)
 
   def AddClusterTags(self, tags, dry_run=False):
     """Adds tags to the cluster.
@@ -480,7 +484,8 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_PUT, "/2/tags", query, None)
+    return self._SendRequest(HTTP_PUT, "/%s/tags" % GANETI_RAPI_VERSION,
+                             query, None)
 
   def DeleteClusterTags(self, tags, dry_run=False):
     """Deletes tags from the cluster.
@@ -495,7 +500,8 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_DELETE, "/2/tags", query, None)
+    return self._SendRequest(HTTP_DELETE, "/%s/tags" % GANETI_RAPI_VERSION,
+                             query, None)
 
   def GetInstances(self, bulk=False):
     """Gets information about instances on the cluster.
@@ -511,7 +517,9 @@ class GanetiRapiClient(object):
     if bulk:
       query.append(("bulk", 1))
 
-    instances = self._SendRequest(HTTP_GET, "/2/instances", query, None)
+    instances = self._SendRequest(HTTP_GET,
+                                  "/%s/instances" % GANETI_RAPI_VERSION,
+                                  query, None)
     if bulk:
       return instances
     else:
@@ -527,7 +535,9 @@ class GanetiRapiClient(object):
     @return: info about the instance
 
     """
-    return self._SendRequest(HTTP_GET, "/2/instances/%s" % instance, None, None)
+    return self._SendRequest(HTTP_GET,
+                             ("/%s/instances/%s" %
+                              (GANETI_RAPI_VERSION, instance)), None, None)
 
   def CreateInstance(self, dry_run=False):
     """Creates a new instance.
@@ -544,7 +554,8 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_POST, "/2/instances", query, None)
+    return self._SendRequest(HTTP_POST, "/%s/instances" % GANETI_RAPI_VERSION,
+                             query, None)
 
   def DeleteInstance(self, instance, dry_run=False):
     """Deletes an instance.
@@ -560,8 +571,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_DELETE, "/2/instances/%s" % instance,
-                             query, None)
+    return self._SendRequest(HTTP_DELETE,
+                             ("/%s/instances/%s" %
+                              (GANETI_RAPI_VERSION, instance)), query, None)
 
   def GetInstanceTags(self, instance):
     """Gets tags for an instance.
@@ -573,8 +585,9 @@ class GanetiRapiClient(object):
     @return: tags for the instance
 
     """
-    return self._SendRequest(HTTP_GET, "/2/instances/%s/tags" % instance,
-                             None, None)
+    return self._SendRequest(HTTP_GET,
+                             ("/%s/instances/%s/tags" %
+                              (GANETI_RAPI_VERSION, instance)), None, None)
 
   def AddInstanceTags(self, instance, tags, dry_run=False):
     """Adds tags to an instance.
@@ -594,8 +607,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_PUT, "/2/instances/%s/tags" % instance,
-                             query, None)
+    return self._SendRequest(HTTP_PUT,
+                             ("/%s/instances/%s/tags" %
+                              (GANETI_RAPI_VERSION, instance)), query, None)
 
   def DeleteInstanceTags(self, instance, tags, dry_run=False):
     """Deletes tags from an instance.
@@ -612,8 +626,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_DELETE, "/2/instances/%s/tags" % instance,
-                             query, None)
+    return self._SendRequest(HTTP_DELETE,
+                             ("/%s/instances/%s/tags" %
+                              (GANETI_RAPI_VERSION, instance)), query, None)
 
   def RebootInstance(self, instance, reboot_type=None, ignore_secondaries=None,
                      dry_run=False):
@@ -638,8 +653,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_POST, "/2/instances/%s/reboot" % instance,
-                             query, None)
+    return self._SendRequest(HTTP_POST,
+                             ("/%s/instances/%s/reboot" %
+                              (GANETI_RAPI_VERSION, instance)), query, None)
 
   def ShutdownInstance(self, instance, dry_run=False):
     """Shuts down an instance.
@@ -654,8 +670,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_PUT, "/2/instances/%s/shutdown" % instance,
-                             query, None)
+    return self._SendRequest(HTTP_PUT,
+                             ("/%s/instances/%s/shutdown" %
+                              (GANETI_RAPI_VERSION, instance)), query, None)
 
   def StartupInstance(self, instance, dry_run=False):
     """Starts up an instance.
@@ -670,8 +687,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_PUT, "/2/instances/%s/startup" % instance,
-                             query, None)
+    return self._SendRequest(HTTP_PUT,
+                             ("/%s/instances/%s/startup" %
+                              (GANETI_RAPI_VERSION, instance)), query, None)
 
   def ReinstallInstance(self, instance, os, no_startup=False):
     """Reinstalls an instance.
@@ -687,8 +705,9 @@ class GanetiRapiClient(object):
     query = [("os", os)]
     if no_startup:
       query.append(("nostartup", 1))
-    return self._SendRequest(HTTP_POST, "/2/instances/%s/reinstall" % instance,
-                             query, None)
+    return self._SendRequest(HTTP_POST,
+                             ("/%s/instances/%s/reinstall" %
+                              (GANETI_RAPI_VERSION, instance)), query, None)
 
   def ReplaceInstanceDisks(self, instance, disks, mode=REPLACE_DISK_AUTO,
                            remote_node=None, iallocator=None, dry_run=False):
@@ -737,8 +756,8 @@ class GanetiRapiClient(object):
       query.append(("dry-run", 1))
 
     return self._SendRequest(HTTP_POST,
-                             "/2/instances/%s/replace-disks" % instance,
-                             query, None)
+                             ("/%s/instances/%s/replace-disks" %
+                              (GANETI_RAPI_VERSION, instance)), query, None)
 
   def GetJobs(self):
     """Gets all jobs for the cluster.
@@ -748,7 +767,9 @@ class GanetiRapiClient(object):
 
     """
     return [int(j["id"])
-            for j in self._SendRequest(HTTP_GET, "/2/jobs", None, None)]
+            for j in self._SendRequest(HTTP_GET,
+                                       "/%s/jobs" % GANETI_RAPI_VERSION,
+                                       None, None)]
 
   def GetJobStatus(self, job_id):
     """Gets the status of a job.
@@ -760,7 +781,9 @@ class GanetiRapiClient(object):
     @return: job status
 
     """
-    return self._SendRequest(HTTP_GET, "/2/jobs/%s" % job_id, None, None)
+    return self._SendRequest(HTTP_GET,
+                             "/%s/jobs/%s" % (GANETI_RAPI_VERSION, job_id),
+                             None, None)
 
   def WaitForJobChange(self, job_id, fields, prev_job_info, prev_log_serial):
     """Waits for job changes.
@@ -775,7 +798,9 @@ class GanetiRapiClient(object):
       "previous_log_serial": prev_log_serial,
       }
 
-    return self._SendRequest(HTTP_GET, "/2/jobs/%s/wait" % job_id, None, body)
+    return self._SendRequest(HTTP_GET,
+                             "/%s/jobs/%s/wait" % (GANETI_RAPI_VERSION, job_id),
+                             None, body)
 
   def CancelJob(self, job_id, dry_run=False):
     """Cancels a job.
@@ -790,7 +815,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_DELETE, "/2/jobs/%s" % job_id, query, None)
+    return self._SendRequest(HTTP_DELETE,
+                             "/%s/jobs/%s" % (GANETI_RAPI_VERSION, job_id),
+                             query, None)
 
   def GetNodes(self, bulk=False):
     """Gets all nodes in the cluster.
@@ -807,7 +834,8 @@ class GanetiRapiClient(object):
     if bulk:
       query.append(("bulk", 1))
 
-    nodes = self._SendRequest(HTTP_GET, "/2/nodes", query, None)
+    nodes = self._SendRequest(HTTP_GET, "/%s/nodes" % GANETI_RAPI_VERSION,
+                              query, None)
     if bulk:
       return nodes
     else:
@@ -823,7 +851,9 @@ class GanetiRapiClient(object):
     @return: info about the node
 
     """
-    return self._SendRequest(HTTP_GET, "/2/nodes/%s" % node, None, None)
+    return self._SendRequest(HTTP_GET,
+                             "/%s/nodes/%s" % (GANETI_RAPI_VERSION, node),
+                             None, None)
 
   def EvacuateNode(self, node, iallocator=None, remote_node=None,
                    dry_run=False):
@@ -855,8 +885,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_POST, "/2/nodes/%s/evacuate" % node,
-                             query, None)
+    return self._SendRequest(HTTP_POST,
+                             ("/%s/nodes/%s/evacuate" %
+                              (GANETI_RAPI_VERSION, node)), query, None)
 
   def MigrateNode(self, node, live=True, dry_run=False):
     """Migrates all primary instances from a node.
@@ -878,8 +909,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_POST, "/2/nodes/%s/migrate" % node,
-                             query, None)
+    return self._SendRequest(HTTP_POST,
+                             ("/%s/nodes/%s/migrate" %
+                              (GANETI_RAPI_VERSION, node)), query, None)
 
   def GetNodeRole(self, node):
     """Gets the current role for a node.
@@ -891,7 +923,9 @@ class GanetiRapiClient(object):
     @return: the current role for a node
 
     """
-    return self._SendRequest(HTTP_GET, "/2/nodes/%s/role" % node, None, None)
+    return self._SendRequest(HTTP_GET,
+                             ("/%s/nodes/%s/role" %
+                              (GANETI_RAPI_VERSION, node)), None, None)
 
   def SetNodeRole(self, node, role, force=False):
     """Sets the role for a node.
@@ -914,8 +948,9 @@ class GanetiRapiClient(object):
 
     query = [("force", force)]
 
-    return self._SendRequest(HTTP_PUT, "/2/nodes/%s/role" % node,
-                             query, role)
+    return self._SendRequest(HTTP_PUT,
+                             ("/%s/nodes/%s/role" %
+                              (GANETI_RAPI_VERSION, node)), query, role)
 
   def GetNodeStorageUnits(self, node, storage_type, output_fields):
     """Gets the storage units for a node.
@@ -941,8 +976,9 @@ class GanetiRapiClient(object):
       ("output_fields", output_fields),
       ]
 
-    return self._SendRequest(HTTP_GET, "/2/nodes/%s/storage" % node,
-                             query, None)
+    return self._SendRequest(HTTP_GET,
+                             ("/%s/nodes/%s/storage" %
+                              (GANETI_RAPI_VERSION, node)), query, None)
 
   def ModifyNodeStorageUnits(self, node, storage_type, name, allocatable=True):
     """Modifies parameters of storage units on the node.
@@ -970,8 +1006,9 @@ class GanetiRapiClient(object):
       ("allocatable", allocatable),
       ]
 
-    return self._SendRequest(HTTP_PUT, "/2/nodes/%s/storage/modify" % node,
-                             query, None)
+    return self._SendRequest(HTTP_PUT,
+                             ("/%s/nodes/%s/storage/modify" %
+                              (GANETI_RAPI_VERSION, node)), query, None)
 
   def RepairNodeStorageUnits(self, node, storage_type, name):
     """Repairs a storage unit on the node.
@@ -996,8 +1033,9 @@ class GanetiRapiClient(object):
       ("name", name),
       ]
 
-    return self._SendRequest(HTTP_PUT, "/2/nodes/%s/storage/repair" % node,
-                             query, None)
+    return self._SendRequest(HTTP_PUT,
+                             ("/%s/nodes/%s/storage/repair" %
+                              (GANETI_RAPI_VERSION, node)), query, None)
 
   def GetNodeTags(self, node):
     """Gets the tags for a node.
@@ -1009,7 +1047,9 @@ class GanetiRapiClient(object):
     @return: tags for the node
 
     """
-    return self._SendRequest(HTTP_GET, "/2/nodes/%s/tags" % node, None, None)
+    return self._SendRequest(HTTP_GET,
+                             ("/%s/nodes/%s/tags" %
+                              (GANETI_RAPI_VERSION, node)), None, None)
 
   def AddNodeTags(self, node, tags, dry_run=False):
     """Adds tags to a node.
@@ -1029,8 +1069,9 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_PUT, "/2/nodes/%s/tags" % node,
-                             query, tags)
+    return self._SendRequest(HTTP_PUT,
+                             ("/%s/nodes/%s/tags" %
+                              (GANETI_RAPI_VERSION, node)), query, tags)
 
   def DeleteNodeTags(self, node, tags, dry_run=False):
     """Delete tags from a node.
@@ -1050,5 +1091,6 @@ class GanetiRapiClient(object):
     if dry_run:
       query.append(("dry-run", 1))
 
-    return self._SendRequest(HTTP_DELETE, "/2/nodes/%s/tags" % node,
-                             query, None)
+    return self._SendRequest(HTTP_DELETE,
+                             ("/%s/nodes/%s/tags" %
+                              (GANETI_RAPI_VERSION, node)), query, None)
-- 
GitLab