Revision b714ff89 htools/Ganeti/Daemon.hs
b/htools/Ganeti/Daemon.hs | ||
---|---|---|
34 | 34 |
, oDebug |
35 | 35 |
, oPort |
36 | 36 |
, oBindAddress |
37 |
, oSyslogUsage |
|
37 | 38 |
, parseArgs |
38 | 39 |
, parseAddress |
39 | 40 |
, writePidFile |
... | ... | |
75 | 76 |
, optDebug :: Bool -- ^ Enable debug messages |
76 | 77 |
, optNoUserChecks :: Bool -- ^ Ignore user checks |
77 | 78 |
, optBindAddress :: Maybe String -- ^ Override for the bind address |
79 |
, optSyslogUsage :: Maybe SyslogUsage -- ^ Override for Syslog usage |
|
78 | 80 |
} |
79 | 81 |
|
80 | 82 |
-- | Default values for the command line options. |
... | ... | |
87 | 89 |
, optDebug = False |
88 | 90 |
, optNoUserChecks = False |
89 | 91 |
, optBindAddress = Nothing |
92 |
, optSyslogUsage = Nothing |
|
90 | 93 |
} |
91 | 94 |
|
92 | 95 |
-- | Abrreviation for the option type. |
... | ... | |
142 | 145 |
"ADDR") |
143 | 146 |
"Bind address (default depends on cluster configuration)" |
144 | 147 |
|
148 |
oSyslogUsage :: OptType |
|
149 |
oSyslogUsage = Option "" ["syslog"] |
|
150 |
(reqWithConversion syslogUsageFromRaw |
|
151 |
(\su opts -> Ok opts { optSyslogUsage = Just su }) |
|
152 |
"SYSLOG") |
|
153 |
("Enable logging to syslog (except debug \ |
|
154 |
\messages); one of 'no', 'yes' or 'only' [" ++ C.syslogUsage ++ |
|
155 |
"]") |
|
156 |
|
|
145 | 157 |
-- | Usage info. |
146 | 158 |
usageHelp :: String -> [OptType] -> String |
147 | 159 |
usageHelp progname = |
... | ... | |
291 | 303 |
exitWith $ ExitFailure C.exitFailure |
292 | 304 |
Ok ents -> verifyDaemonUser daemon ents |
293 | 305 |
|
306 |
syslog <- case optSyslogUsage opts of |
|
307 |
Nothing -> exitIfBad $ |
|
308 |
annotateResult "Invalid cluster syslog setting" $ |
|
309 |
syslogUsageFromRaw C.syslogUsage |
|
310 |
Just v -> return v |
|
294 | 311 |
let processFn = if optDaemonize opts then daemonize else id |
295 |
processFn $ innerMain daemon opts (main opts) |
|
312 |
processFn $ innerMain daemon opts syslog (main opts)
|
|
296 | 313 |
|
297 | 314 |
-- | Inner daemon function. |
298 | 315 |
-- |
299 | 316 |
-- This is executed after daemonization. |
300 |
innerMain :: GanetiDaemon -> DaemonOptions -> IO () -> IO () |
|
301 |
innerMain daemon opts main = do |
|
317 |
innerMain :: GanetiDaemon -> DaemonOptions -> SyslogUsage -> IO () -> IO ()
|
|
318 |
innerMain daemon opts syslog main = do
|
|
302 | 319 |
setupLogging (daemonLogFile daemon) (daemonName daemon) (optDebug opts) |
303 |
(not (optDaemonize opts)) False SyslogNo
|
|
320 |
(not (optDaemonize opts)) False syslog
|
|
304 | 321 |
pid_fd <- writePidFile (daemonPidFile daemon) |
305 | 322 |
case pid_fd of |
306 | 323 |
Bad msg -> do |
Also available in: Unified diff