ganeti-3.1: Cluster-based virtualization management software
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ganeti.Objects.Disk

Description

Implementation of the Ganeti Disk config object.

Synopsis

Documentation

devType :: String #

Constant for the dev_type key entry in the disk config.

type DiskParams = Container JSValue #

The disk parameters type.

type DRBDSecret = String #

An alias for DRBD secrets

data LogicalVolume #

Constructors

LogicalVolume 

Fields

Instances

Instances details
Show LogicalVolume # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

showsPrec :: Int -> LogicalVolume -> ShowS

show :: LogicalVolume -> String

showList :: [LogicalVolume] -> ShowS

Validatable LogicalVolume #

Check the constraints for VG/LV names (except the /dev/ check).

Instance details

Defined in Ganeti.Objects.Disk

Eq LogicalVolume # 
Instance details

Defined in Ganeti.Objects.Disk

Ord LogicalVolume # 
Instance details

Defined in Ganeti.Objects.Disk

JSON LogicalVolume # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

readJSON :: JSValue -> Result LogicalVolume

showJSON :: LogicalVolume -> JSValue

readJSONs :: JSValue -> Result [LogicalVolume]

showJSONs :: [LogicalVolume] -> JSValue

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

Instances details
Show DiskLogicalId # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

showsPrec :: Int -> DiskLogicalId -> ShowS

show :: DiskLogicalId -> String

showList :: [DiskLogicalId] -> ShowS

Eq DiskLogicalId # 
Instance details

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.

data Disk #

Disk data structure.

Instances

Instances details
Show Disk # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

showsPrec :: Int -> Disk -> ShowS

show :: Disk -> String

showList :: [Disk] -> ShowS

ArrayObject Disk # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

toJSArray :: Disk -> [JSValue] #

fromJSArray :: [JSValue] -> Result Disk #

DictObject Disk # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

toDict :: Disk -> [(String, JSValue)] #

fromDictWKeys :: [(String, JSValue)] -> WriterT UsedKeys Result Disk #

fromDict :: [(String, JSValue)] -> Result Disk #

SerialNoObjectL Disk # 
Instance details

Defined in Ganeti.Objects.Lens

Methods

serialL :: Lens' Disk Int #

TimeStampObjectL Disk # 
Instance details

Defined in Ganeti.Objects.Lens

Methods

mTimeL :: Lens' Disk ClockTime #

UuidObjectL Disk # 
Instance details

Defined in Ganeti.Objects.Lens

Methods

uuidL :: Lens' Disk String #

ForthcomingObject Disk # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

isForthcoming :: Disk -> Bool #

SerialNoObject Disk # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

serialOf :: Disk -> Int #

TimeStampObject Disk # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

cTimeOf :: Disk -> ClockTime #

mTimeOf :: Disk -> ClockTime #

UuidObject Disk # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

uuidOf :: Disk -> String #

Eq Disk # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

(==) :: Disk -> Disk -> Bool

(/=) :: Disk -> Disk -> Bool

JSON Disk # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

readJSON :: JSValue -> Result Disk

showJSON :: Disk -> JSValue

readJSONs :: JSValue -> Result [Disk]

showJSONs :: [Disk] -> JSValue

data ForthcomingDiskData #

Instances

Instances details
Show ForthcomingDiskData # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

showsPrec :: Int -> ForthcomingDiskData -> ShowS

show :: ForthcomingDiskData -> String

showList :: [ForthcomingDiskData] -> ShowS

ArrayObject ForthcomingDiskData # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

toJSArray :: ForthcomingDiskData -> [JSValue] #

fromJSArray :: [JSValue] -> Result ForthcomingDiskData #

DictObject ForthcomingDiskData # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

toDict :: ForthcomingDiskData -> [(String, JSValue)] #

fromDictWKeys :: [(String, JSValue)] -> WriterT UsedKeys Result ForthcomingDiskData #

fromDict :: [(String, JSValue)] -> Result ForthcomingDiskData #

Eq ForthcomingDiskData # 
Instance details

Defined in Ganeti.Objects.Disk

JSON ForthcomingDiskData # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

readJSON :: JSValue -> Result ForthcomingDiskData

showJSON :: ForthcomingDiskData -> JSValue

readJSONs :: JSValue -> Result [ForthcomingDiskData]

showJSONs :: [ForthcomingDiskData] -> JSValue

data RealDiskData #

Constructors

RealDiskData 

Fields

Instances

Instances details
Show RealDiskData # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

showsPrec :: Int -> RealDiskData -> ShowS

show :: RealDiskData -> String

showList :: [RealDiskData] -> ShowS

ArrayObject RealDiskData # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

toJSArray :: RealDiskData -> [JSValue] #

fromJSArray :: [JSValue] -> Result RealDiskData #

DictObject RealDiskData # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

toDict :: RealDiskData -> [(String, JSValue)] #

fromDictWKeys :: [(String, JSValue)] -> WriterT UsedKeys Result RealDiskData #

fromDict :: [(String, JSValue)] -> Result RealDiskData #

Eq RealDiskData # 
Instance details

Defined in Ganeti.Objects.Disk

Methods

(==) :: RealDiskData -> RealDiskData -> Bool

(/=) :: RealDiskData -> RealDiskData -> Bool

JSON RealDiskData # 
Instance details

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 #

diskUuidL :: Lens' Disk ByteString #

diskParamsL :: Lens' Disk (Maybe DiskParams) #

diskSpindlesL :: Lens' Disk (Maybe Int) #

diskNameL :: Lens' Disk (Maybe String) #

diskSizeL :: Lens Disk Disk (Maybe Int) Int #

diskIvNameL :: Lens' Disk String #

diskNodesL :: Lens' Disk [String] #

diskMtime :: Disk -> ClockTime #

diskCtime :: Disk -> ClockTime #

diskSerial :: Disk -> Int #

diskUuid :: Disk -> ByteString #

diskSpindles :: Disk -> Maybe Int #

diskName :: Disk -> Maybe String #

diskSize :: Disk -> Maybe Int #

diskIvName :: Disk -> String #

diskNodes :: Disk -> [String] #

loadRealDiskData :: JSValue -> Result RealDiskData #

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.