Add constants for storage types to constants.py
authorHelga Velroyen <helgav@google.com>
Wed, 13 Mar 2013 12:21:41 +0000 (13:21 +0100)
committerHelga Velroyen <helgav@google.com>
Thu, 21 Mar 2013 15:40:40 +0000 (16:40 +0100)
This patch adds the currently known and used storage methods to the
constants.py file. Note that storage types are different from disk
templates. For example both disk templates, drbd and plain, use lvm
storage types.

The rapi documentation asserts that valid storage types are limited
to lvm and file. With the extension of storage types, this is not true
anymore, but the implementation of listing storage units is not
implemented for the new types. We disable the assert for now, adding
a fixme to extend it once the listing of storage units is extended
for the new types as well.

'gnt-node list-storage' currently does not support any other storage
type than 'lvm' and 'file'. We limit the QA to storage types that are
currently implemented for this operation.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

doc/rapi.rst
lib/constants.py
qa/qa_node.py

index ec5fa5c..ff487b6 100644 (file)
@@ -2092,7 +2092,8 @@ Manages storage units on the node.
 ``GET``
 ~~~~~~~
 
-.. pyassert::
+FIXME: enable ".. pyassert::" again when all storage types are
+implemented::
 
    constants.VALID_STORAGE_TYPES == set([constants.ST_FILE,
                                          constants.ST_LVM_PV,
index 91ca41b..458ee2c 100644 (file)
@@ -376,6 +376,27 @@ HKR_SUCCESS = 2
 ST_FILE = "file"
 ST_LVM_PV = "lvm-pv"
 ST_LVM_VG = "lvm-vg"
+ST_DISKLESS = "diskless"
+ST_SHARED_FILE = "sharedfile"
+ST_BLOCK = "blockdev"
+ST_RADOS = "rados"
+ST_EXT = "ext"
+
+VALID_STORAGE_TYPES = compat.UniqueFrozenset([
+  ST_FILE,
+  ST_LVM_PV,
+  ST_LVM_VG,
+  ST_DISKLESS,
+  ST_SHARED_FILE,
+  ST_BLOCK,
+  ST_RADOS,
+  ST_EXT,
+  ])
+
+# Per default, only lvm is enabled.
+DEFAULT_ENABLED_STORAGE_TYPES = compat.UniqueFrozenset([
+  ST_LVM_VG,
+  ])
 
 # Storage fields
 # first two are valid in LU context only, not passed to backend
@@ -401,12 +422,6 @@ VALID_STORAGE_FIELDS = compat.UniqueFrozenset([
   SF_ALLOCATABLE,
   ])
 
-VALID_STORAGE_TYPES = compat.UniqueFrozenset([
-  ST_FILE,
-  ST_LVM_PV,
-  ST_LVM_VG,
-  ])
-
 MODIFIABLE_STORAGE_FIELDS = {
   ST_LVM_PV: frozenset([SF_ALLOCATABLE]),
   }
index d99004a..c9a3685 100644 (file)
@@ -114,7 +114,10 @@ def TestNodeStorage():
   """gnt-node storage"""
   master = qa_config.GetMasterNode()
 
-  for storage_type in constants.VALID_STORAGE_TYPES:
+  # FIXME: test all storage_types in constants.VALID_STORAGE_TYPES
+  # as soon as they are implemented.
+  for storage_type in [constants.ST_FILE, constants.ST_LVM_VG,
+                       constants.ST_LVM_PV]:
 
     cmd = ["gnt-node", "list-storage", "--storage-type", storage_type]