Statistics
| Branch: | Tag: | Revision:

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"