root / htools / Ganeti / HTools / Program.hs @ 3504d6c8
History | View | Annotate | Download (3 kB)
1 |
{-| Small module holding program definitions. |
---|---|
2 |
|
3 |
-} |
4 |
|
5 |
{- |
6 |
|
7 |
Copyright (C) 2011, 2012 Google Inc. |
8 |
|
9 |
This program is free software; you can redistribute it and/or modify |
10 |
it under the terms of the GNU General Public License as published by |
11 |
the Free Software Foundation; either version 2 of the License, or |
12 |
(at your option) any later version. |
13 |
|
14 |
This program is distributed in the hope that it will be useful, but |
15 |
WITHOUT ANY WARRANTY; without even the implied warranty of |
16 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 |
General Public License for more details. |
18 |
|
19 |
You should have received a copy of the GNU General Public License |
20 |
along with this program; if not, write to the Free Software |
21 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
22 |
02110-1301, USA. |
23 |
|
24 |
-} |
25 |
|
26 |
module Ganeti.HTools.Program |
27 |
( personalities |
28 |
) where |
29 |
|
30 |
import Ganeti.Common (PersonalityList) |
31 |
import Ganeti.HTools.CLI (Options) |
32 |
|
33 |
import qualified Ganeti.HTools.Program.Hail as Hail |
34 |
import qualified Ganeti.HTools.Program.Hbal as Hbal |
35 |
import qualified Ganeti.HTools.Program.Hcheck as Hcheck |
36 |
import qualified Ganeti.HTools.Program.Hscan as Hscan |
37 |
import qualified Ganeti.HTools.Program.Hspace as Hspace |
38 |
import qualified Ganeti.HTools.Program.Hinfo as Hinfo |
39 |
import qualified Ganeti.HTools.Program.Hroller as Hroller |
40 |
|
41 |
-- | Supported binaries. |
42 |
personalities :: PersonalityList Options |
43 |
personalities = |
44 |
[ ("hail", (Hail.main, Hail.options, Hail.arguments, |
45 |
"Ganeti IAllocator plugin that implements the instance\ |
46 |
\ placement and movement using the same algorithm as\ |
47 |
\ hbal(1)")) |
48 |
, ("hbal", (Hbal.main, Hbal.options, Hbal.arguments, |
49 |
"cluster balancer that looks at the current state of\ |
50 |
\ the cluster and computes a series of steps designed\ |
51 |
\ to bring the cluster into a better state")) |
52 |
, ("hcheck", (Hcheck.main, Hcheck.options, Hcheck.arguments, |
53 |
"cluster checker; prints information about cluster's\ |
54 |
\ health and checks whether a rebalance done using\ |
55 |
\ hbal would help")) |
56 |
, ("hscan", (Hscan.main, Hscan.options, Hscan.arguments, |
57 |
"tool for scanning clusters via RAPI and saving their\ |
58 |
\ data in the input format used by hbal(1) and hspace(1)")) |
59 |
, ("hspace", (Hspace.main, Hspace.options, Hspace.arguments, |
60 |
"computes how many additional instances can be fit on a\ |
61 |
\ cluster, while maintaining N+1 status.")) |
62 |
, ("hinfo", (Hinfo.main, Hinfo.options, Hinfo.arguments, |
63 |
"cluster information printer; it prints information\ |
64 |
\ about the current cluster state and its residing\ |
65 |
\ nodes/instances")) |
66 |
, ("hroller", (Hroller.main, Hroller.options, Hroller.arguments, |
67 |
"cluster rolling maintenance helper; it helps scheduling\ |
68 |
\ node reboots in a manner that doesn't conflict with the\ |
69 |
\ instances' topology")) |
70 |
] |