rpc: Change {import,export}_start to take source/dest in single argument
authorMichael Hanselmann <hansmi@google.com>
Mon, 31 Oct 2011 17:47:15 +0000 (18:47 +0100)
committerMichael Hanselmann <hansmi@google.com>
Tue, 1 Nov 2011 15:17:12 +0000 (16:17 +0100)
This simplifies the RPC argument encoding code.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: RenĂ© Nussbaumer <rn@google.com>

lib/masterd/instance.py
lib/rpc.py
lib/rpc_defs.py
lib/server/noded.py

index 5ede274..8211f31 100644 (file)
@@ -530,7 +530,7 @@ class DiskImport(_DiskImportExportBase):
     """
     return self._lu.rpc.call_import_start(self.node_name, self._opts,
                                           self._instance, self._component,
-                                          self._dest, self._dest_args)
+                                          (self._dest, self._dest_args))
 
   def CheckListening(self):
     """Checks whether the daemon is listening.
@@ -616,7 +616,7 @@ class DiskExport(_DiskImportExportBase):
     return self._lu.rpc.call_export_start(self.node_name, self._opts,
                                           self._dest_host, self._dest_port,
                                           self._instance, self._component,
-                                          self._source, self._source_args)
+                                          (self._source, self._source_args))
 
   def CheckListening(self):
     """Checks whether the daemon is listening.
index fcead58..c73e701 100644 (file)
@@ -565,19 +565,19 @@ class RpcRunner(_generated_rpc.RpcClientDefault,
     return result
 
   @staticmethod
-  def _EncodeImportExportIO(ieio, ieioargs):
+  def _EncodeImportExportIO((ieio, ieioargs)):
     """Encodes import/export I/O information.
 
     """
     if ieio == constants.IEIO_RAW_DISK:
       assert len(ieioargs) == 1
-      return (ieioargs[0].ToDict(), )
+      return (ieio, (ieioargs[0].ToDict(), ))
 
     if ieio == constants.IEIO_SCRIPT:
       assert len(ieioargs) == 2
-      return (ieioargs[0].ToDict(), ieioargs[1])
+      return (ieio, (ieioargs[0].ToDict(), ieioargs[1]))
 
-    return ieioargs
+    return (ieio, ieioargs)
 
   @staticmethod
   def _PrepareFileUpload(filename):
index 1e22549..a3ba76f 100644 (file)
@@ -165,8 +165,7 @@ _IMPEXP_CALLS = [
     ("opts", OBJECT_TO_DICT, None),
     ("instance", INST_TO_DICT, None),
     ("component", None, None),
-    ("dest", None, None),
-    ("dest_args", "self._EncodeImportExportIO(dest, %s)", None),
+    ("dest", "self._EncodeImportExportIO(%s)", "Import destination"),
     ], None, "Starts an import daemon"),
   ("export_start", SINGLE, TMO_NORMAL, [
     ("opts", OBJECT_TO_DICT, None),
@@ -174,8 +173,7 @@ _IMPEXP_CALLS = [
     ("port", None, None),
     ("instance", INST_TO_DICT, None),
     ("component", None, None),
-    ("source", None, None),
-    ("source_args", "self._EncodeImportExportIO(source, %s)", None),
+    ("source", "self._EncodeImportExportIO(%s)", "Export source"),
     ], None, "Starts an export daemon"),
   ("impexp_status", SINGLE, TMO_FAST, [
     ("names", None, "Import/export names"),
index 90d879f..2f951c7 100644 (file)
@@ -951,7 +951,7 @@ class NodeHttpServer(http.server.HttpServer):
     """Starts an import daemon.
 
     """
-    (opts_s, instance, component, dest, dest_args) = params
+    (opts_s, instance, component, (dest, dest_args)) = params
 
     opts = objects.ImportExportOptions.FromDict(opts_s)
 
@@ -967,7 +967,7 @@ class NodeHttpServer(http.server.HttpServer):
     """Starts an export daemon.
 
     """
-    (opts_s, host, port, instance, component, source, source_args) = params
+    (opts_s, host, port, instance, component, (source, source_args)) = params
 
     opts = objects.ImportExportOptions.FromDict(opts_s)