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