Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Ganeti.Objects.Disk
Description
Implementation of the Ganeti Disk config object.
Synopsis
- devType :: String
- type DiskParams = Container JSValue
- type DRBDSecret = String
- data LogicalVolume = LogicalVolume {}
- data DiskLogicalId
- = LIDPlain LogicalVolume
- | LIDDrbd8 String String Int Int Int (Private DRBDSecret)
- | LIDFile FileDriver String
- | LIDSharedFile FileDriver String
- | LIDGluster FileDriver String
- | LIDBlockDev BlockDriver String
- | LIDRados String String
- | LIDExt String String
- lidDiskType :: DiskLogicalId -> DiskTemplate
- lidEncodeType :: DiskLogicalId -> [(String, JSValue)]
- encodeDLId :: DiskLogicalId -> JSValue
- encodeFullDLId :: DiskLogicalId -> (JSValue, [(String, JSValue)])
- decodeDLId :: [(String, JSValue)] -> JSValue -> Result DiskLogicalId
- data Disk
- data ForthcomingDiskData = ForthcomingDiskData {
- forthcomingDiskLogicalId :: (Maybe DiskLogicalId)
- forthcomingDiskChildren :: [Disk]
- forthcomingDiskNodes :: [String]
- forthcomingDiskIvName :: String
- forthcomingDiskSize :: (Maybe Int)
- forthcomingDiskMode :: DiskMode
- forthcomingDiskName :: (Maybe String)
- forthcomingDiskSpindles :: (Maybe Int)
- forthcomingDiskParams :: (Maybe DiskParams)
- forthcomingDiskUuid :: ByteString
- forthcomingDiskSerial :: Int
- forthcomingDiskCtime :: ClockTime
- forthcomingDiskMtime :: ClockTime
- data RealDiskData = RealDiskData {
- realDiskLogicalId :: DiskLogicalId
- realDiskChildren :: [Disk]
- realDiskNodes :: [String]
- realDiskIvName :: String
- realDiskSize :: Int
- realDiskMode :: DiskMode
- realDiskName :: (Maybe String)
- realDiskSpindles :: (Maybe Int)
- realDiskParams :: (Maybe DiskParams)
- realDiskUuid :: ByteString
- realDiskSerial :: Int
- realDiskCtime :: ClockTime
- realDiskMtime :: ClockTime
- diskMtimeL :: Lens' Disk ClockTime
- diskCtimeL :: Lens' Disk ClockTime
- diskSerialL :: Lens' Disk Int
- diskUuidL :: Lens' Disk ByteString
- diskParamsL :: Lens' Disk (Maybe DiskParams)
- diskSpindlesL :: Lens' Disk (Maybe Int)
- diskNameL :: Lens' Disk (Maybe String)
- diskModeL :: Lens' Disk DiskMode
- diskSizeL :: Lens Disk Disk (Maybe Int) Int
- diskIvNameL :: Lens' Disk String
- diskNodesL :: Lens' Disk [String]
- diskChildrenL :: Lens' Disk [Disk]
- diskLogicalIdL :: Lens Disk Disk (Maybe DiskLogicalId) DiskLogicalId
- diskMtime :: Disk -> ClockTime
- diskCtime :: Disk -> ClockTime
- diskSerial :: Disk -> Int
- diskUuid :: Disk -> ByteString
- diskParams :: Disk -> Maybe DiskParams
- diskSpindles :: Disk -> Maybe Int
- diskName :: Disk -> Maybe String
- diskMode :: Disk -> DiskMode
- diskSize :: Disk -> Maybe Int
- diskIvName :: Disk -> String
- diskNodes :: Disk -> [String]
- diskChildren :: Disk -> [Disk]
- diskLogicalId :: Disk -> Maybe DiskLogicalId
- diskForthcoming :: Disk -> Bool
- loadForthcomingDiskData :: JSValue -> Result ForthcomingDiskData
- saveForthcomingDiskData :: ForthcomingDiskData -> JSValue
- loadRealDiskData :: JSValue -> Result RealDiskData
- saveRealDiskData :: RealDiskData -> JSValue
- includesLogicalId :: LogicalVolume -> Disk -> Bool
Documentation
type DiskParams = Container JSValue #
The disk parameters type.
type DRBDSecret = String #
An alias for DRBD secrets
data LogicalVolume #
Constructors
LogicalVolume | |
Instances
data DiskLogicalId #
The disk configuration type. This includes the disk type itself,
for a more complete consistency. Note that since in the Python
code-base there's no authoritative place where we document the
logical id, this is probably a good reference point. There is a bijective
correspondence between the DiskLogicalId
constructors and DiskTemplate
.
Constructors
LIDPlain LogicalVolume | Volume group, logical volume |
LIDDrbd8 String String Int Int Int (Private DRBDSecret) | NodeA, NodeB, Port, MinorA, MinorB, Secret |
LIDFile FileDriver String | Driver, path |
LIDSharedFile FileDriver String | Driver, path |
LIDGluster FileDriver String | Driver, path |
LIDBlockDev BlockDriver String | Driver, path (must be under /dev) |
LIDRados String String | Unused, path |
LIDExt String String | ExtProvider, unique name |
Instances
Show DiskLogicalId # | |
Defined in Ganeti.Objects.Disk Methods showsPrec :: Int -> DiskLogicalId -> ShowS show :: DiskLogicalId -> String showList :: [DiskLogicalId] -> ShowS | |
Eq DiskLogicalId # | |
Defined in Ganeti.Objects.Disk |
lidDiskType :: DiskLogicalId -> DiskTemplate #
Mapping from a logical id to a disk type.
lidEncodeType :: DiskLogicalId -> [(String, JSValue)] #
Builds the extra disk_type field for a given logical id.
encodeDLId :: DiskLogicalId -> JSValue #
Custom encoder for DiskLogicalId (logical id only).
encodeFullDLId :: DiskLogicalId -> (JSValue, [(String, JSValue)]) #
Custom encoder for DiskLogicalId, composing both the logical id and the extra disk_type field.
decodeDLId :: [(String, JSValue)] -> JSValue -> Result DiskLogicalId #
Custom decoder for DiskLogicalId. This is manual for now, since we don't have yet automation for separate-key style fields.
Disk data structure.
Constructors
RealDisk RealDiskData | |
ForthcomingDisk ForthcomingDiskData |
Instances
Show Disk # | |
ArrayObject Disk # | |
Defined in Ganeti.Objects.Disk | |
DictObject Disk # | |
Defined in Ganeti.Objects.Disk | |
SerialNoObjectL Disk # | |
Defined in Ganeti.Objects.Lens | |
TimeStampObjectL Disk # | |
Defined in Ganeti.Objects.Lens | |
UuidObjectL Disk # | |
Defined in Ganeti.Objects.Lens | |
ForthcomingObject Disk # | |
Defined in Ganeti.Objects.Disk Methods isForthcoming :: Disk -> Bool # | |
SerialNoObject Disk # | |
Defined in Ganeti.Objects.Disk | |
TimeStampObject Disk # | |
UuidObject Disk # | |
Defined in Ganeti.Objects.Disk | |
Eq Disk # | |
JSON Disk # | |
data ForthcomingDiskData #
Constructors
ForthcomingDiskData | |
Fields
|
Instances
data RealDiskData #
Constructors
RealDiskData | |
Fields
|
Instances
Show RealDiskData # | |
Defined in Ganeti.Objects.Disk Methods showsPrec :: Int -> RealDiskData -> ShowS show :: RealDiskData -> String showList :: [RealDiskData] -> ShowS | |
ArrayObject RealDiskData # | |
Defined in Ganeti.Objects.Disk | |
DictObject RealDiskData # | |
Defined in Ganeti.Objects.Disk Methods toDict :: RealDiskData -> [(String, JSValue)] # fromDictWKeys :: [(String, JSValue)] -> WriterT UsedKeys Result RealDiskData # fromDict :: [(String, JSValue)] -> Result RealDiskData # | |
Eq RealDiskData # | |
Defined in Ganeti.Objects.Disk | |
JSON RealDiskData # | |
Defined in Ganeti.Objects.Disk Methods readJSON :: JSValue -> Result RealDiskData showJSON :: RealDiskData -> JSValue readJSONs :: JSValue -> Result [RealDiskData] showJSONs :: [RealDiskData] -> JSValue |
diskMtimeL :: Lens' Disk ClockTime #
diskCtimeL :: Lens' Disk ClockTime #
diskSerialL :: Lens' Disk Int #
diskParamsL :: Lens' Disk (Maybe DiskParams) #
diskSpindlesL :: Lens' Disk (Maybe Int) #
diskIvNameL :: Lens' Disk String #
diskNodesL :: Lens' Disk [String] #
diskChildrenL :: Lens' Disk [Disk] #
diskLogicalIdL :: Lens Disk Disk (Maybe DiskLogicalId) DiskLogicalId #
diskSerial :: Disk -> Int #
diskParams :: Disk -> Maybe DiskParams #
diskSpindles :: Disk -> Maybe Int #
diskIvName :: Disk -> String #
diskChildren :: Disk -> [Disk] #
diskLogicalId :: Disk -> Maybe DiskLogicalId #
diskForthcoming :: Disk -> Bool #
loadForthcomingDiskData :: JSValue -> Result ForthcomingDiskData #
saveForthcomingDiskData :: ForthcomingDiskData -> JSValue #
loadRealDiskData :: JSValue -> Result RealDiskData #
saveRealDiskData :: RealDiskData -> JSValue #
includesLogicalId :: LogicalVolume -> Disk -> Bool #
Determines whether a disk or one of his children has the given logical id (determined by the volume group name and by the logical volume name). This can be true only for DRBD or LVM disks.