Statistics
| Branch: | Tag: | Revision:

root / src / Ganeti / Query / Locks.hs @ 014eaaa0

History | View | Annotate | Download (1.8 kB)

1 014eaaa0 Klaus Aehlig
{-| Implementation of Ganeti Lock field queries
2 014eaaa0 Klaus Aehlig
3 014eaaa0 Klaus Aehlig
The actual computation of the field values is done by forwarding
4 014eaaa0 Klaus Aehlig
the request; so only have a minimal field definition here.
5 014eaaa0 Klaus Aehlig
6 014eaaa0 Klaus Aehlig
-}
7 014eaaa0 Klaus Aehlig
8 014eaaa0 Klaus Aehlig
{-
9 014eaaa0 Klaus Aehlig
10 014eaaa0 Klaus Aehlig
Copyright (C) 2014 Google Inc.
11 014eaaa0 Klaus Aehlig
12 014eaaa0 Klaus Aehlig
This program is free software; you can redistribute it and/or modify
13 014eaaa0 Klaus Aehlig
it under the terms of the GNU General Public License as published by
14 014eaaa0 Klaus Aehlig
the Free Software Foundation; either version 2 of the License, or
15 014eaaa0 Klaus Aehlig
(at your option) any later version.
16 014eaaa0 Klaus Aehlig
17 014eaaa0 Klaus Aehlig
This program is distributed in the hope that it will be useful, but
18 014eaaa0 Klaus Aehlig
WITHOUT ANY WARRANTY; without even the implied warranty of
19 014eaaa0 Klaus Aehlig
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20 014eaaa0 Klaus Aehlig
General Public License for more details.
21 014eaaa0 Klaus Aehlig
22 014eaaa0 Klaus Aehlig
You should have received a copy of the GNU General Public License
23 014eaaa0 Klaus Aehlig
along with this program; if not, write to the Free Software
24 014eaaa0 Klaus Aehlig
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
25 014eaaa0 Klaus Aehlig
02110-1301, USA.
26 014eaaa0 Klaus Aehlig
27 014eaaa0 Klaus Aehlig
-}
28 014eaaa0 Klaus Aehlig
29 014eaaa0 Klaus Aehlig
module Ganeti.Query.Locks
30 014eaaa0 Klaus Aehlig
  ( fieldsMap
31 014eaaa0 Klaus Aehlig
  ) where
32 014eaaa0 Klaus Aehlig
33 014eaaa0 Klaus Aehlig
import qualified Data.Map as Map
34 014eaaa0 Klaus Aehlig
35 014eaaa0 Klaus Aehlig
import Ganeti.Query.Common
36 014eaaa0 Klaus Aehlig
import Ganeti.Query.Language
37 014eaaa0 Klaus Aehlig
import Ganeti.Query.Types
38 014eaaa0 Klaus Aehlig
39 014eaaa0 Klaus Aehlig
-- | List of all lock fields.
40 014eaaa0 Klaus Aehlig
lockFields :: FieldList String ()
41 014eaaa0 Klaus Aehlig
lockFields =
42 014eaaa0 Klaus Aehlig
  [ (FieldDefinition "name" "Name" QFTOther "Lock name",
43 014eaaa0 Klaus Aehlig
     FieldSimple rsNormal, QffNormal)
44 014eaaa0 Klaus Aehlig
  , (FieldDefinition "mode" "Mode" QFTOther "Mode in which the lock is\
45 014eaaa0 Klaus Aehlig
                                             \ currently acquired\
46 014eaaa0 Klaus Aehlig
                                             \ (exclusive or shared)",
47 014eaaa0 Klaus Aehlig
     FieldSimple rsNormal, QffNormal)
48 014eaaa0 Klaus Aehlig
  , (FieldDefinition "owner" "Owner" QFTOther "Current lock owner(s)",
49 014eaaa0 Klaus Aehlig
     FieldSimple rsNormal, QffNormal)
50 014eaaa0 Klaus Aehlig
  , (FieldDefinition "pending" "Pending" QFTOther "Jobs waiting for the lock",
51 014eaaa0 Klaus Aehlig
     FieldSimple rsNormal, QffNormal)
52 014eaaa0 Klaus Aehlig
  ]
53 014eaaa0 Klaus Aehlig
54 014eaaa0 Klaus Aehlig
-- | The lock fields map.
55 014eaaa0 Klaus Aehlig
fieldsMap :: FieldMap String ()
56 014eaaa0 Klaus Aehlig
fieldsMap =
57 014eaaa0 Klaus Aehlig
  Map.fromList $ map (\v@(f, _, _) -> (fdefName f, v)) lockFields