Safe Haskell | Safe-Infered |
---|
Implementation of the Ganeti Query2 common objects.
- data NoDataRuntime = NoDataRuntime
- vTypeToQFT :: VType -> FieldType
- rsNoData :: ResultEntry
- rsUnavail :: ResultEntry
- rsNormal :: JSON a => a -> ResultEntry
- rsMaybeNoData :: JSON a => Maybe a -> ResultEntry
- rsErrorNoData :: JSON a => ErrorResult a -> ResultEntry
- rsMaybeUnavail :: JSON a => Maybe a -> ResultEntry
- rsUnknown :: ResultEntry
- missingRuntime :: FieldGetter a b
- rpcErrorToStatus :: RpcError -> ResultStatus
- timeStampFields :: TimeStampObject a => FieldList a b
- uuidFields :: UuidObject a => String -> FieldList a b
- serialFields :: SerialNoObject a => String -> FieldList a b
- tagsFields :: TagsObject a => FieldList a b
- dictFieldGetter :: DictObject a => String -> Maybe a -> ResultEntry
- ndParamTypes :: Map String FieldType
- ndParamTitles :: Map String FieldTitle
- ndParamGetter :: NdParamObject a => String -> ConfigData -> a -> ResultEntry
- buildNdParamField :: NdParamObject a => String -> FieldData a b
- beParamTypes :: Map String FieldType
- buildBeParamField :: (String -> ConfigData -> a -> ResultEntry) -> String -> FieldData a b
- hvParamTypes :: Map String FieldType
- buildHvParamField :: (String -> ConfigData -> a -> ResultEntry) -> String -> FieldData a b
- buildParamField :: String -> String -> Map String String -> Map String FieldType -> (String -> ConfigData -> a -> ResultEntry) -> String -> FieldData a b
- getDefaultHypervisorSpec :: ConfigData -> (Hypervisor, HvParams)
- getHvParamsFromCluster :: ConfigData -> Hypervisor -> HvParams
- aliasFields :: [(FieldName, FieldName)] -> FieldList a b -> FieldList a b
Documentation
Generic functions
vTypeToQFT :: VType -> FieldTypeSource
Result helpers
Helper for a result with no data.
rsUnavail :: ResultEntrySource
Helper for result for an entity which supports no such field.
rsNormal :: JSON a => a -> ResultEntrySource
Helper to declare a normal result.
rsMaybeNoData :: JSON a => Maybe a -> ResultEntrySource
Helper to declare a result from a Maybe
(the item might be
missing, in which case we return no data). Note that there's some
ambiguity here: in some cases, we mean RSNoData
, but in other
RSUnavail
; this is easy to solve in simple cases, but not in
nested dicts. If you want to return RSUnavail
in case of Nothing
use the function rsMaybeUnavail
.
rsErrorNoData :: JSON a => ErrorResult a -> ResultEntrySource
Helper to declare a result from a ErrorResult
(an error happened
while retrieving the data from a config, or there was no data).
This function should be used if an error signals there was no data.
rsMaybeUnavail :: JSON a => Maybe a -> ResultEntrySource
Helper to declare a result from a Maybe
. This version returns
a RSUnavail
in case of Nothing
. It should be used for optional
fields that are not set. For cases where Nothing
means that there
was an error, consider using rsMaybe
instead.
rsUnknown :: ResultEntrySource
Helper for unknown field result.
missingRuntime :: FieldGetter a bSource
Helper for a missing runtime parameter.
Error conversion
rpcErrorToStatus :: RpcError -> ResultStatusSource
Convert RpcError to ResultStatus
Common fields
timeStampFields :: TimeStampObject a => FieldList a bSource
The list of timestamp fields.
uuidFields :: UuidObject a => String -> FieldList a bSource
The list of UUID fields.
serialFields :: SerialNoObject a => String -> FieldList a bSource
The list of serial number fields.
tagsFields :: TagsObject a => FieldList a bSource
The list of tag fields.
Generic parameter functions
dictFieldGetter :: DictObject a => String -> Maybe a -> ResultEntrySource
Returns a field from a (possibly missing) DictObject
. This is
used by parameter dictionaries, usually. Note that we have two
levels of maybe: the top level dict might be missing, or one key in
the dictionary might be.
ndParamTypes :: Map String FieldTypeSource
ndParamTitles :: Map String FieldTitleSource
ndParamGetter :: NdParamObject a => String -> ConfigData -> a -> ResultEntrySource
buildNdParamField :: NdParamObject a => String -> FieldData a bSource
Builds the ndparam fields for an object.
beParamTypes :: Map String FieldTypeSource
buildBeParamField :: (String -> ConfigData -> a -> ResultEntry) -> String -> FieldData a bSource
Builds the beparam fields for an object.
hvParamTypes :: Map String FieldTypeSource
buildHvParamField :: (String -> ConfigData -> a -> ResultEntry) -> String -> FieldData a bSource
Builds the beparam fields for an object.
buildParamField :: String -> String -> Map String String -> Map String FieldType -> (String -> ConfigData -> a -> ResultEntry) -> String -> FieldData a bSource
getDefaultHypervisorSpec :: ConfigData -> (Hypervisor, HvParams)Source
Looks up the default hypervisor and its hvparams
getHvParamsFromCluster :: ConfigData -> Hypervisor -> HvParamsSource
Looks up the cluster's hvparams of the given hypervisor