Revision 1c31b263 src/Ganeti/Runtime.hs
b/src/Ganeti/Runtime.hs | ||
---|---|---|
30 | 30 |
, RuntimeEnts |
31 | 31 |
, daemonName |
32 | 32 |
, daemonOnlyOnMaster |
33 |
, daemonLogBase |
|
33 | 34 |
, daemonUser |
34 | 35 |
, daemonGroup |
35 | 36 |
, ExtraLogReason(..) |
36 | 37 |
, daemonLogFile |
38 |
, daemonsExtraLogbase |
|
37 | 39 |
, daemonsExtraLogFile |
38 | 40 |
, daemonPidFile |
39 | 41 |
, getEnts |
... | ... | |
51 | 53 |
import System.Posix.User |
52 | 54 |
import Text.Printf |
53 | 55 |
|
54 |
import qualified Ganeti.Constants as C
|
|
56 |
import qualified Ganeti.ConstantUtils as ConstantUtils
|
|
55 | 57 |
import qualified Ganeti.Path as Path |
56 | 58 |
import Ganeti.BasicTypes |
57 | 59 |
|
60 |
import AutoConf |
|
61 |
|
|
58 | 62 |
data GanetiDaemon = GanetiMasterd |
59 | 63 |
| GanetiNoded |
60 | 64 |
| GanetiRapi |
... | ... | |
75 | 79 |
|
76 | 80 |
-- | Returns the daemon name for a given daemon. |
77 | 81 |
daemonName :: GanetiDaemon -> String |
78 |
daemonName GanetiMasterd = C.masterd
|
|
79 |
daemonName GanetiNoded = C.noded
|
|
80 |
daemonName GanetiRapi = C.rapi
|
|
81 |
daemonName GanetiConfd = C.confd
|
|
82 |
daemonName GanetiLuxid = C.luxid
|
|
83 |
daemonName GanetiMond = C.mond
|
|
82 |
daemonName GanetiMasterd = "ganeti-masterd"
|
|
83 |
daemonName GanetiNoded = "ganeti-noded"
|
|
84 |
daemonName GanetiRapi = "ganeti-rapi"
|
|
85 |
daemonName GanetiConfd = "ganeti-confd"
|
|
86 |
daemonName GanetiLuxid = "ganeti-luxid"
|
|
87 |
daemonName GanetiMond = "ganeti-mond"
|
|
84 | 88 |
|
85 | 89 |
-- | Returns whether the daemon only runs on the master node. |
86 | 90 |
daemonOnlyOnMaster :: GanetiDaemon -> Bool |
... | ... | |
93 | 97 |
|
94 | 98 |
-- | Returns the log file base for a daemon. |
95 | 99 |
daemonLogBase :: GanetiDaemon -> String |
96 |
daemonLogBase GanetiMasterd = C.daemonsLogbaseGanetiMasterd
|
|
97 |
daemonLogBase GanetiNoded = C.daemonsLogbaseGanetiNoded
|
|
98 |
daemonLogBase GanetiRapi = C.daemonsLogbaseGanetiRapi
|
|
99 |
daemonLogBase GanetiConfd = C.daemonsLogbaseGanetiConfd
|
|
100 |
daemonLogBase GanetiLuxid = C.daemonsLogbaseGanetiLuxid
|
|
101 |
daemonLogBase GanetiMond = C.daemonsLogbaseGanetiMond
|
|
100 |
daemonLogBase GanetiMasterd = "master-daemon"
|
|
101 |
daemonLogBase GanetiNoded = "node-daemon"
|
|
102 |
daemonLogBase GanetiRapi = "rapi-daemon"
|
|
103 |
daemonLogBase GanetiConfd = "conf-daemon"
|
|
104 |
daemonLogBase GanetiLuxid = "luxi-daemon"
|
|
105 |
daemonLogBase GanetiMond = "monitoring-daemon"
|
|
102 | 106 |
|
103 | 107 |
-- | Returns the configured user name for a daemon. |
104 | 108 |
daemonUser :: GanetiDaemon -> String |
105 |
daemonUser GanetiMasterd = C.masterdUser
|
|
106 |
daemonUser GanetiNoded = C.nodedUser
|
|
107 |
daemonUser GanetiRapi = C.rapiUser
|
|
108 |
daemonUser GanetiConfd = C.confdUser
|
|
109 |
daemonUser GanetiLuxid = C.luxidUser
|
|
110 |
daemonUser GanetiMond = C.mondUser
|
|
109 |
daemonUser GanetiMasterd = AutoConf.masterdUser
|
|
110 |
daemonUser GanetiNoded = AutoConf.nodedUser
|
|
111 |
daemonUser GanetiRapi = AutoConf.rapiUser
|
|
112 |
daemonUser GanetiConfd = AutoConf.confdUser
|
|
113 |
daemonUser GanetiLuxid = AutoConf.luxidUser
|
|
114 |
daemonUser GanetiMond = AutoConf.mondUser
|
|
111 | 115 |
|
112 | 116 |
-- | Returns the configured group for a daemon. |
113 | 117 |
daemonGroup :: GanetiGroup -> String |
114 |
daemonGroup (DaemonGroup GanetiMasterd) = C.masterdGroup
|
|
115 |
daemonGroup (DaemonGroup GanetiNoded) = C.nodedGroup
|
|
116 |
daemonGroup (DaemonGroup GanetiRapi) = C.rapiGroup
|
|
117 |
daemonGroup (DaemonGroup GanetiConfd) = C.confdGroup
|
|
118 |
daemonGroup (DaemonGroup GanetiLuxid) = C.luxidGroup
|
|
119 |
daemonGroup (DaemonGroup GanetiMond) = C.mondGroup
|
|
120 |
daemonGroup (ExtraGroup DaemonsGroup) = C.daemonsGroup
|
|
121 |
daemonGroup (ExtraGroup AdminGroup) = C.adminGroup
|
|
118 |
daemonGroup (DaemonGroup GanetiMasterd) = AutoConf.masterdGroup
|
|
119 |
daemonGroup (DaemonGroup GanetiNoded) = AutoConf.nodedGroup
|
|
120 |
daemonGroup (DaemonGroup GanetiRapi) = AutoConf.rapiGroup
|
|
121 |
daemonGroup (DaemonGroup GanetiConfd) = AutoConf.confdGroup
|
|
122 |
daemonGroup (DaemonGroup GanetiLuxid) = AutoConf.luxidGroup
|
|
123 |
daemonGroup (DaemonGroup GanetiMond) = AutoConf.mondGroup
|
|
124 |
daemonGroup (ExtraGroup DaemonsGroup) = AutoConf.daemonsGroup
|
|
125 |
daemonGroup (ExtraGroup AdminGroup) = AutoConf.adminGroup
|
|
122 | 126 |
|
123 | 127 |
data ExtraLogReason = AccessLog | ErrorLog |
124 | 128 |
|
125 |
daemonsExtraLogbase :: GanetiDaemon -> ExtraLogReason -> Maybe String |
|
126 |
daemonsExtraLogbase GanetiMond AccessLog = |
|
127 |
Just C.daemonsExtraLogbaseGanetiMondAccess |
|
128 |
|
|
129 |
daemonsExtraLogbase GanetiMond ErrorLog = |
|
130 |
Just C.daemonsExtraLogbaseGanetiMondError |
|
131 |
|
|
132 |
daemonsExtraLogbase _ _ = Nothing |
|
129 |
daemonsExtraLogbase :: GanetiDaemon -> ExtraLogReason -> String |
|
130 |
daemonsExtraLogbase daemon AccessLog = daemonLogBase daemon ++ "-access" |
|
131 |
daemonsExtraLogbase daemon ErrorLog = daemonLogBase daemon ++ "-error" |
|
133 | 132 |
|
134 | 133 |
-- | Returns the log file for a daemon. |
135 | 134 |
daemonLogFile :: GanetiDaemon -> IO FilePath |
... | ... | |
137 | 136 |
logDir <- Path.logDir |
138 | 137 |
return $ logDir </> daemonLogBase daemon <.> "log" |
139 | 138 |
|
140 |
daemonsExtraLogFile :: GanetiDaemon -> ExtraLogReason -> IO (Maybe FilePath) |
|
139 |
-- | Returns the extra log files for a daemon. |
|
140 |
daemonsExtraLogFile :: GanetiDaemon -> ExtraLogReason -> IO FilePath |
|
141 | 141 |
daemonsExtraLogFile daemon logreason = do |
142 | 142 |
logDir <- Path.logDir |
143 |
case daemonsExtraLogbase daemon logreason of |
|
144 |
Nothing -> return Nothing |
|
145 |
Just logbase -> return . Just $ logDir </> logbase <.> "log" |
|
143 |
return $ logDir </> daemonsExtraLogbase daemon logreason <.> "log" |
|
146 | 144 |
|
147 | 145 |
-- | Returns the pid file name for a daemon. |
148 | 146 |
daemonPidFile :: GanetiDaemon -> IO FilePath |
... | ... | |
202 | 200 |
\expected %d\n" name |
203 | 201 |
(fromIntegral actual::Int) |
204 | 202 |
(fromIntegral expected::Int) :: IO () |
205 |
exitWith $ ExitFailure C.exitFailure |
|
203 |
exitWith $ ExitFailure ConstantUtils.exitFailure |
Also available in: Unified diff