From aedf5fd77f797ba2bca7d7f5076affef8fe21d1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Nussbaumer?= <rn@google.com> Date: Tue, 3 Apr 2012 13:25:22 +0200 Subject: [PATCH] rpc: Adding new encoders for annotating disk parameters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: RenΓ© Nussbaumer <rn@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- lib/rpc.py | 20 ++++++++++++++++++++ lib/rpc_defs.py | 4 +++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/rpc.py b/lib/rpc.py index 824051035..11459d2ff 100644 --- a/lib/rpc.py +++ b/lib/rpc.py @@ -664,6 +664,10 @@ class RpcRunner(_RpcClientBase, rpc_defs.ED_INST_DICT_HVP_BEP: self._InstDictHvpBep, rpc_defs.ED_INST_DICT_OSP: self._InstDictOsp, + # Encoders annotating disk parameters + rpc_defs.ED_DISKS_DICT_DP: self._DisksDictDP, + rpc_defs.ED_SINGLE_DISK_DICT_DP: self._SingleDiskDictDP, + # Encoders with special requirements rpc_defs.ED_FILE_DETAILS: compat.partial(_PrepareFileUpload, _getents), }) @@ -732,6 +736,22 @@ class RpcRunner(_RpcClientBase, """ return self._InstDict(instance, osp=osparams) + def _DisksDictDP(self, (disks, instance)): + """Wrapper for L{AnnotateDiskParams}. + + """ + diskparams = self._cfg.GetInstanceDiskParams(instance) + return [disk.ToDict() + for disk in AnnotateDiskParams(instance.disk_template, + disks, diskparams)] + + def _SingleDiskDictDP(self, (disk, instance)): + """Wrapper for L{AnnotateDiskParams}. + + """ + (anno_disk,) = self._DisksDictDP(([disk], instance)) + return anno_disk + class JobQueueRunner(_RpcClientBase, _generated_rpc.RpcClientJobQueue): """RPC wrappers for job queue. diff --git a/lib/rpc_defs.py b/lib/rpc_defs.py index 669f79129..60417743c 100644 --- a/lib/rpc_defs.py +++ b/lib/rpc_defs.py @@ -71,7 +71,9 @@ ACCEPT_OFFLINE_NODE = object() ED_FILE_DETAILS, ED_FINALIZE_EXPORT_DISKS, ED_COMPRESS, - ED_BLOCKDEV_RENAME) = range(1, 12) + ED_BLOCKDEV_RENAME, + ED_DISKS_DICT_DP, + ED_SINGLE_DISK_DICT_DP) = range(1, 14) def _Prepare(calls): -- GitLab