Merge branch 'stable-2.13' into stable-2.14
[ganeti-github.git] / src / Ganeti / Constants.hs
index dc03b63..7e960af 100644 (file)
@@ -45,7 +45,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 -}
 module Ganeti.Constants where
 
-import Control.Arrow ((***))
+import Control.Arrow ((***),(&&&))
 import Data.List ((\\))
 import Data.Map (Map)
 import qualified Data.Map as Map (empty, fromList, keys, insert)
@@ -904,6 +904,9 @@ dtExt = Types.diskTemplateToRaw DTExt
 dtGluster :: String
 dtGluster = Types.diskTemplateToRaw DTGluster
 
+dtMixed :: String
+dtMixed = "mixed"
+
 -- | This is used to order determine the default disk template when
 -- the list of enabled disk templates is inferred from the current
 -- state of the cluster.  This only happens on an upgrade from a
@@ -926,16 +929,9 @@ defaultEnabledDiskTemplates = map Types.diskTemplateToRaw [DTDrbd8, DTPlain]
 mapDiskTemplateStorageType :: Map String String
 mapDiskTemplateStorageType =
   Map.fromList $
-  map (Types.diskTemplateToRaw *** Types.storageTypeToRaw)
-  [(DTBlock, StorageBlock),
-   (DTDrbd8, StorageLvmVg),
-   (DTExt, StorageExt),
-   (DTSharedFile, StorageSharedFile),
-   (DTFile, StorageFile),
-   (DTDiskless, StorageDiskless),
-   (DTPlain, StorageLvmVg),
-   (DTRbd, StorageRados),
-   (DTGluster, StorageGluster)]
+  map (   Types.diskTemplateToRaw
+      &&& Types.storageTypeToRaw . diskTemplateToStorageType)
+  [minBound..maxBound]
 
 -- | The set of network-mirrored disk templates
 dtsIntMirror :: FrozenSet String
@@ -981,6 +977,13 @@ dtsFilebased =
   ConstantUtils.mkSet $ map Types.diskTemplateToRaw
   [DTSharedFile, DTFile, DTGluster]
 
+-- | The set of file based disk templates whose path is tied to the instance
+-- name
+dtsInstanceDependentPath :: FrozenSet String
+dtsInstanceDependentPath =
+  ConstantUtils.mkSet $ map Types.diskTemplateToRaw
+  [DTSharedFile, DTFile]
+
 -- | The set of disk templates that can be moved by copying
 --
 -- Note: a requirement is that they're not accessed externally or
@@ -989,6 +992,11 @@ dtsCopyable :: FrozenSet String
 dtsCopyable =
   ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain, DTFile]
 
+-- | The set of disk templates which can be snapshot.
+dtsSnapshotCapable :: FrozenSet String
+dtsSnapshotCapable =
+  ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain, DTDrbd8, DTExt]
+
 -- | The set of disk templates that are supported by exclusive_storage
 dtsExclStorage :: FrozenSet String
 dtsExclStorage = ConstantUtils.mkSet $ map Types.diskTemplateToRaw [DTPlain]
@@ -1210,14 +1218,20 @@ inisectOspPrivate = "os_private"
 ddmAdd :: String
 ddmAdd = Types.ddmFullToRaw DdmFullAdd
 
+ddmAttach :: String
+ddmAttach = Types.ddmFullToRaw DdmFullAttach
+
 ddmModify :: String
 ddmModify = Types.ddmFullToRaw DdmFullModify
 
 ddmRemove :: String
 ddmRemove = Types.ddmFullToRaw DdmFullRemove
 
+ddmDetach :: String
+ddmDetach = Types.ddmFullToRaw DdmFullDetach
+
 ddmsValues :: FrozenSet String
-ddmsValues = ConstantUtils.mkSet [ddmAdd, ddmRemove]
+ddmsValues = ConstantUtils.mkSet [ddmAdd, ddmAttach, ddmRemove, ddmDetach]
 
 ddmsValuesWithModify :: FrozenSet String
 ddmsValuesWithModify = ConstantUtils.mkSet $ map Types.ddmFullToRaw [minBound..]
@@ -1463,6 +1477,12 @@ esActionVerify = "verify"
 esActionSnapshot :: String
 esActionSnapshot = "snapshot"
 
+esActionOpen :: String
+esActionOpen = "open"
+
+esActionClose :: String
+esActionClose = "close"
+
 esScriptCreate :: String
 esScriptCreate = esActionCreate
 
@@ -1487,6 +1507,12 @@ esScriptVerify = esActionVerify
 esScriptSnapshot :: String
 esScriptSnapshot = esActionSnapshot
 
+esScriptOpen :: String
+esScriptOpen = esActionOpen
+
+esScriptClose :: String
+esScriptClose = esActionClose
+
 esScripts :: FrozenSet String
 esScripts =
   ConstantUtils.mkSet [esScriptAttach,
@@ -1496,7 +1522,9 @@ esScripts =
                        esScriptRemove,
                        esScriptSetinfo,
                        esScriptVerify,
-                       esScriptSnapshot]
+                       esScriptSnapshot,
+                       esScriptOpen,
+                       esScriptClose]
 
 esParametersFile :: String
 esParametersFile = "parameters.list"
@@ -2512,17 +2540,22 @@ idiskProvider = "provider"
 idiskAccess :: String
 idiskAccess = "access"
 
+idiskType :: String
+idiskType = "dev_type"
+
 idiskParamsTypes :: Map String VType
 idiskParamsTypes =
-  Map.fromList [(idiskSize, VTypeSize),
-                (idiskSpindles, VTypeInt),
-                (idiskMode, VTypeString),
-                (idiskAdopt, VTypeString),
-                (idiskVg, VTypeString),
-                (idiskMetavg, VTypeString),
-                (idiskProvider, VTypeString),
-                (idiskAccess, VTypeString),
-                (idiskName, VTypeMaybeString)]
+  Map.fromList [ (idiskSize, VTypeSize)
+               , (idiskSpindles, VTypeInt)
+               , (idiskMode, VTypeString)
+               , (idiskAdopt, VTypeString)
+               , (idiskVg, VTypeString)
+               , (idiskMetavg, VTypeString)
+               , (idiskProvider, VTypeString)
+               , (idiskAccess, VTypeString)
+               , (idiskName, VTypeMaybeString)
+               , (idiskType, VTypeString)
+               ]
 
 idiskParams :: FrozenSet String
 idiskParams = ConstantUtils.mkSet (Map.keys idiskParamsTypes)
@@ -4268,9 +4301,9 @@ wconfdDefCtmo = 10
 wconfdDefRwto :: Int
 wconfdDefRwto = 60
 
--- | The prefix of the WConfD livelock file name
-wconfdLivelockPrefix :: String
-wconfdLivelockPrefix = "wconf-daemon"
+-- | The prefix of the WConfD livelock file name.
+wconfLivelockPrefix :: String
+wconfLivelockPrefix = "wconf-daemon"
 
 -- * Confd