Safe Haskell | Safe |
---|
Parser for the output of the xm list --long
command of Xen
Synopsis
- lispConfigParser :: Parser LispConfig
- findConf :: String -> [LispConfig] -> Result LispConfig
- getValue :: FromLispConfig a => String -> [LispConfig] -> Result a
- extractValues :: LispConfig -> Result [LispConfig]
- isNamed :: String -> LispConfig -> Bool
- parseState :: String -> ActualState
- getDomainConfig :: LispConfig -> Result Domain
- xmListParser :: Parser (Map String Domain)
- xmUptimeParser :: Parser (Map Int UptimeInfo)
- uptimeLineParser :: Parser UptimeInfo
Documentation
lispConfigParser :: Parser LispConfig Source #
A parser for parsing generic config files written in the (LISP-like)
format that is the output of the xm list --long
command.
This parser only takes care of the syntactic parse, but does not care
about the semantics.
Note: parsing the double requires checking for the next character in order
to prevent string like "9a" to be recognized as the number 9.
findConf :: String -> [LispConfig] -> Result LispConfig Source #
Find a configuration having the given string as its first element, from a list of configurations.
getValue :: FromLispConfig a => String -> [LispConfig] -> Result a Source #
Get the value of of a configuration having the given string as its first element. The value is the content of the configuration, discarding the name itself.
extractValues :: LispConfig -> Result [LispConfig] Source #
Extract the values of a configuration containing a list of them.
isNamed :: String -> LispConfig -> Bool Source #
Verify whether the given configuration has a certain name or not.fmap The name of a configuration is its first parameter, if it is a string.
parseState :: String -> ActualState Source #
Parser for recognising the current state of a Xen domain.
getDomainConfig :: LispConfig -> Result Domain Source #
Extract the configuration data of a Xen domain from a generic LispConfig data structure. Fail if the LispConfig does not represent a domain.
xmListParser :: Parser (Map String Domain) Source #
A parser for parsing the output of the xm list --long
command.
It adds the semantic layer on top of lispConfigParser.
It returns a map of domains, with their name as the key.
FIXME: This is efficient under the assumption that only a few fields of the
domain configuration are actually needed. If many of them are required, a
parser able to directly extract the domain config would actually be better.
xmUptimeParser :: Parser (Map Int UptimeInfo) Source #
A parser for parsing the output of the xm uptime
command.
uptimeLineParser :: Parser UptimeInfo Source #
A helper for parsing a single line of the xm uptime
output.