From 5ff82cc9f1f556650b85751d1a4c0415d0c40895 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20Nussbaumer?= <rn@google.com>
Date: Tue, 8 May 2012 11:16:11 +0200
Subject: [PATCH] bdev: Add a guard to verify disk parameters are set
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/bdev.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/lib/bdev.py b/lib/bdev.py
index 452e51005..310ddf877 100644
--- a/lib/bdev.py
+++ b/lib/bdev.py
@@ -2653,6 +2653,16 @@ def _VerifyDiskType(dev_type):
     raise errors.ProgrammerError("Invalid block device type '%s'" % dev_type)
 
 
+def _VerifyDiskParams(disk):
+  """Verifies if all disk parameters are set.
+
+  """
+  missing = set(constants.DISK_LD_DEFAULTS[disk.dev_type]) - set(disk.params)
+  if missing:
+    raise errors.ProgrammerError("Block device is missing disk parameters: %s" %
+                                 missing)
+
+
 def FindDevice(disk, children):
   """Search for an existing, assembled device.
 
@@ -2688,6 +2698,7 @@ def Assemble(disk, children):
 
   """
   _VerifyDiskType(disk.dev_type)
+  _VerifyDiskParams(disk)
   device = DEV_MAP[disk.dev_type](disk.physical_id, children, disk.size,
                                   disk.params)
   device.Assemble()
@@ -2705,6 +2716,7 @@ def Create(disk, children):
 
   """
   _VerifyDiskType(disk.dev_type)
+  _VerifyDiskParams(disk)
   device = DEV_MAP[disk.dev_type].Create(disk.physical_id, children, disk.size,
                                          disk.params)
   return device
-- 
GitLab