root / htools / Ganeti / Path.hs @ 37904802
History | View | Annotate | Download (2.1 kB)
1 | 9eeb0aa5 | Michael Hanselmann | {-| Path-related helper functions. |
---|---|---|---|
2 | 9eeb0aa5 | Michael Hanselmann | |
3 | 9eeb0aa5 | Michael Hanselmann | -} |
4 | 9eeb0aa5 | Michael Hanselmann | |
5 | 9eeb0aa5 | Michael Hanselmann | {- |
6 | 9eeb0aa5 | Michael Hanselmann | |
7 | 9eeb0aa5 | Michael Hanselmann | Copyright (C) 2012 Google Inc. |
8 | 9eeb0aa5 | Michael Hanselmann | |
9 | 9eeb0aa5 | Michael Hanselmann | This program is free software; you can redistribute it and/or modify |
10 | 9eeb0aa5 | Michael Hanselmann | it under the terms of the GNU General Public License as published by |
11 | 9eeb0aa5 | Michael Hanselmann | the Free Software Foundation; either version 2 of the License, or |
12 | 9eeb0aa5 | Michael Hanselmann | (at your option) any later version. |
13 | 9eeb0aa5 | Michael Hanselmann | |
14 | 9eeb0aa5 | Michael Hanselmann | This program is distributed in the hope that it will be useful, but |
15 | 9eeb0aa5 | Michael Hanselmann | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | 9eeb0aa5 | Michael Hanselmann | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 | 9eeb0aa5 | Michael Hanselmann | General Public License for more details. |
18 | 9eeb0aa5 | Michael Hanselmann | |
19 | 9eeb0aa5 | Michael Hanselmann | You should have received a copy of the GNU General Public License |
20 | 9eeb0aa5 | Michael Hanselmann | along with this program; if not, write to the Free Software |
21 | 9eeb0aa5 | Michael Hanselmann | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
22 | 9eeb0aa5 | Michael Hanselmann | 02110-1301, USA. |
23 | 9eeb0aa5 | Michael Hanselmann | |
24 | 9eeb0aa5 | Michael Hanselmann | -} |
25 | 9eeb0aa5 | Michael Hanselmann | |
26 | 2f441f72 | Michael Hanselmann | module Ganeti.Path where |
27 | 9eeb0aa5 | Michael Hanselmann | |
28 | 9eeb0aa5 | Michael Hanselmann | import qualified Ganeti.Constants as C |
29 | 9eeb0aa5 | Michael Hanselmann | import System.FilePath |
30 | 2f441f72 | Michael Hanselmann | import System.Posix.Env (getEnvDefault) |
31 | 2f441f72 | Michael Hanselmann | import System.IO.Unsafe |
32 | 9eeb0aa5 | Michael Hanselmann | |
33 | 2f441f72 | Michael Hanselmann | {-# NOINLINE getRootDir #-} |
34 | 2f441f72 | Michael Hanselmann | getRootDir :: FilePath |
35 | 2f441f72 | Michael Hanselmann | getRootDir = unsafePerformIO $ getEnvDefault "GANETI_ROOTDIR" "" |
36 | 2f441f72 | Michael Hanselmann | |
37 | 2f441f72 | Michael Hanselmann | -- | Prefixes a path with the current root directory |
38 | 2f441f72 | Michael Hanselmann | addNodePrefix :: FilePath -> FilePath |
39 | 2f441f72 | Michael Hanselmann | addNodePrefix path = getRootDir ++ path |
40 | 9eeb0aa5 | Michael Hanselmann | |
41 | 9eeb0aa5 | Michael Hanselmann | -- | Directory for data |
42 | 9eeb0aa5 | Michael Hanselmann | dataDir :: FilePath |
43 | 2f441f72 | Michael Hanselmann | dataDir = addNodePrefix $ C.autoconfLocalstatedir </> "lib" </> "ganeti" |
44 | 9eeb0aa5 | Michael Hanselmann | |
45 | 9eeb0aa5 | Michael Hanselmann | -- | Directory for runtime files |
46 | 9eeb0aa5 | Michael Hanselmann | runDir :: FilePath |
47 | 2f441f72 | Michael Hanselmann | runDir = addNodePrefix $ C.autoconfLocalstatedir </> "run" </> "ganeti" |
48 | 9eeb0aa5 | Michael Hanselmann | |
49 | 9eeb0aa5 | Michael Hanselmann | -- | Directory for log files |
50 | 9eeb0aa5 | Michael Hanselmann | logDir :: FilePath |
51 | 2f441f72 | Michael Hanselmann | logDir = addNodePrefix $ C.autoconfLocalstatedir </> "log" </> "ganeti" |
52 | 9eeb0aa5 | Michael Hanselmann | |
53 | 9eeb0aa5 | Michael Hanselmann | -- | Directory for Unix sockets |
54 | 9eeb0aa5 | Michael Hanselmann | socketDir :: FilePath |
55 | 9eeb0aa5 | Michael Hanselmann | socketDir = runDir </> "socket" |
56 | 9eeb0aa5 | Michael Hanselmann | |
57 | 9eeb0aa5 | Michael Hanselmann | -- | The default LUXI socket path. |
58 | 9eeb0aa5 | Michael Hanselmann | defaultLuxiSocket :: FilePath |
59 | 9eeb0aa5 | Michael Hanselmann | defaultLuxiSocket = socketDir </> "ganeti-master" |
60 | 9eeb0aa5 | Michael Hanselmann | |
61 | 9eeb0aa5 | Michael Hanselmann | -- | The default LUXI socket for queries. |
62 | 9eeb0aa5 | Michael Hanselmann | defaultQuerySocket :: FilePath |
63 | 9eeb0aa5 | Michael Hanselmann | defaultQuerySocket = socketDir </> "ganeti-query" |
64 | 9eeb0aa5 | Michael Hanselmann | |
65 | 9eeb0aa5 | Michael Hanselmann | -- | Path to file containing confd's HMAC key |
66 | 9eeb0aa5 | Michael Hanselmann | confdHmacKey :: FilePath |
67 | 9eeb0aa5 | Michael Hanselmann | confdHmacKey = dataDir </> "hmac.key" |
68 | 9eeb0aa5 | Michael Hanselmann | |
69 | 9eeb0aa5 | Michael Hanselmann | -- | Path to cluster configuration file |
70 | 9eeb0aa5 | Michael Hanselmann | clusterConfFile :: FilePath |
71 | 9eeb0aa5 | Michael Hanselmann | clusterConfFile = dataDir </> "config.data" |
72 | 7766de33 | Agata Murawska | |
73 | 7766de33 | Agata Murawska | -- | Path |
74 | 7766de33 | Agata Murawska | nodedCertFile :: FilePath |
75 | 7766de33 | Agata Murawska | nodedCertFile = dataDir </> "server.pem" |