Safe HaskellSafe-Infered




Implementation of the Ganeti Query2 common objects.


Generic functions

Result helpers

rsNoData :: ResultEntrySource

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.

rsMaybe :: 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.

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.

buildQFTLookup :: [(String, String)] -> Map String FieldTypeSource

Build an optimised lookup map from a Python _PARAMETER_TYPES association list.

buildNdParamField :: NdParamObject a => String -> FieldData a bSource

Builds the ndparam fields for an object.