Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Ganeti.Query.Common
Description
Implementation of the Ganeti Query2 common objects.
Synopsis
- data NoDataRuntime = NoDataRuntime
- rsNoData :: ResultEntry
- rsUnavail :: ResultEntry
- rsNormal :: JSON a => a -> ResultEntry
- rsMaybeNoData :: JSON a => Maybe a -> ResultEntry
- rsMaybeUnavail :: JSON a => Maybe a -> ResultEntry
- rsErrorNoData :: JSON a => ErrorResult a -> ResultEntry
- rsErrorMaybeUnavail :: JSON a => ErrorResult (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
- forthcomingFields :: ForthcomingObject a => String -> FieldList a b
- tagsFields :: TagsObject a => FieldList a b
- dictFieldGetter :: DictObject a => String -> Maybe a -> ResultEntry
- buildNdParamField :: NdParamObject a => String -> FieldData a b
- buildBeParamField :: (String -> ConfigData -> a -> ResultEntry) -> String -> FieldData a b
- buildHvParamField :: (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
data NoDataRuntime #
The runtime used by queries which retrieve no live data.
Constructors
NoDataRuntime |
rsNoData :: ResultEntry #
Helper for a result with no data.
Helper for result for an entity which supports no such field.
rsNormal :: JSON a => a -> ResultEntry #
Helper to declare a normal result.
rsMaybeNoData :: JSON a => Maybe a -> ResultEntry #
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
.
rsMaybeUnavail :: JSON a => Maybe a -> ResultEntry #
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.
rsErrorNoData :: JSON a => ErrorResult a -> ResultEntry #
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.
rsErrorMaybeUnavail :: JSON a => ErrorResult (Maybe a) -> ResultEntry #
Helper to declare a result from 'ErrorResult Maybe'. This version
should be used if an error signals there was no data and at the same
time when we have optional fields that may not be setted (i.e. we
want to return a RSUnavail
in case of Nothing
).
Helper for unknown field result.
missingRuntime :: FieldGetter a b #
Helper for a missing runtime parameter.
rpcErrorToStatus :: RpcError -> ResultStatus #
Convert RpcError to ResultStatus
timeStampFields :: TimeStampObject a => FieldList a b #
The list of timestamp fields.
uuidFields :: UuidObject a => String -> FieldList a b #
The list of UUID fields.
serialFields :: SerialNoObject a => String -> FieldList a b #
The list of serial number fields.
forthcomingFields :: ForthcomingObject a => String -> FieldList a b #
The list of the field for the property of being forthcoming.
tagsFields :: TagsObject a => FieldList a b #
The list of tag fields.
dictFieldGetter :: DictObject a => String -> Maybe a -> ResultEntry #
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.
buildNdParamField :: NdParamObject a => String -> FieldData a b #
Builds the ndparam fields for an object.
buildBeParamField :: (String -> ConfigData -> a -> ResultEntry) -> String -> FieldData a b #
Builds the beparam fields for an object.
buildHvParamField :: (String -> ConfigData -> a -> ResultEntry) -> String -> FieldData a b #
Builds the beparam fields for an object.
getDefaultHypervisorSpec :: ConfigData -> (Hypervisor, HvParams) #
Looks up the default hypervisor and its hvparams
getHvParamsFromCluster :: ConfigData -> Hypervisor -> HvParams #
Looks up the cluster's hvparams of the given hypervisor