Revision cdac0552 src/Ganeti/Confd/Types.hs

b/src/Ganeti/Confd/Types.hs
26 26
-}
27 27

  
28 28
module Ganeti.Confd.Types
29
  ( C.confdProtocolVersion
30
  , C.confdMaxClockSkew
31
  , C.confdConfigReloadTimeout
32
  , C.confdConfigReloadRatelimit
33
  , C.confdMagicFourcc
34
  , C.confdDefaultReqCoverage
35
  , C.confdClientExpireTimeout
36
  , C.maxUdpDataSize
37
  , ConfdClient(..)
29
  ( ConfdClient(..)
38 30
  , ConfdRequestType(..)
39
  , ConfdReqQ(..)
31
  , confdRequestTypeToRaw
40 32
  , ConfdReqField(..)
33
  , confdReqFieldToRaw
34
  , ConfdReqQ(..)
41 35
  , ConfdReplyStatus(..)
36
  , confdReplyStatusToRaw
42 37
  , ConfdNodeRole(..)
38
  , confdNodeRoleToRaw
43 39
  , ConfdErrorType(..)
40
  , confdErrorTypeToRaw
44 41
  , ConfdRequest(..)
45 42
  , newConfdRequest
46 43
  , ConfdReply(..)
......
51 48
import Text.JSON
52 49
import qualified Network.Socket as S
53 50

  
54
import qualified Ganeti.Constants as C
55 51
import qualified Ganeti.ConstantUtils as ConstantUtils
56 52
import Ganeti.Hash
57 53
import Ganeti.THH
58 54
import Ganeti.Utils (newUUID)
59 55

  
60
{-
61
   Note that we re-export as is from Constants the following simple items:
62
   - confdProtocolVersion
63
   - confdMaxClockSkew
64
   - confdConfigReloadTimeout
65
   - confdConfigReloadRatelimit
66
   - confdMagicFourcc
67
   - confdDefaultReqCoverage
68
   - confdClientExpireTimeout
69
   - maxUdpDataSize
70

  
71
-}
72

  
73
$(declareIADT "ConfdRequestType"
74
  [ ("ReqPing",             'C.confdReqPing )
75
  , ("ReqNodeRoleByName",   'C.confdReqNodeRoleByname )
76
  , ("ReqNodePipList",      'C.confdReqNodePipList )
77
  , ("ReqNodePipByInstPip", 'C.confdReqNodePipByInstanceIp )
78
  , ("ReqClusterMaster",    'C.confdReqClusterMaster )
79
  , ("ReqMcPipList",        'C.confdReqMcPipList )
80
  , ("ReqInstIpsList",      'C.confdReqInstancesIpsList )
81
  , ("ReqNodeDrbd",         'C.confdReqNodeDrbd )
82
  , ("ReqNodeInstances",    'C.confdReqNodeInstances)
56
$(declareILADT "ConfdRequestType"
57
  [ ("ReqPing",             0)
58
  , ("ReqNodeRoleByName",   1)
59
  , ("ReqNodePipByInstPip", 2)
60
  , ("ReqClusterMaster",    3)
61
  , ("ReqNodePipList",      4)
62
  , ("ReqMcPipList",        5)
63
  , ("ReqInstIpsList",      6)
64
  , ("ReqNodeDrbd",         7)
65
  , ("ReqNodeInstances",    8)
83 66
  ])
84 67
$(makeJSONInstance ''ConfdRequestType)
85 68

  
86
$(declareSADT "ConfdReqField"
87
  [ ("ReqFieldName",     'C.confdReqfieldName )
88
  , ("ReqFieldIp",       'C.confdReqfieldIp )
89
  , ("ReqFieldMNodePip", 'C.confdReqfieldMnodePip )
69
$(declareILADT "ConfdReqField"
70
  [ ("ReqFieldName",     0)
71
  , ("ReqFieldIp",       1)
72
  , ("ReqFieldMNodePip", 2)
90 73
  ])
91 74
$(makeJSONInstance ''ConfdReqField)
92 75

  
......
128 111
                  PlainQuery s -> showJSON s
129 112
                  DictQuery drq -> showJSON drq
130 113

  
131
$(declareIADT "ConfdReplyStatus"
132
  [ ( "ReplyStatusOk",      'C.confdReplStatusOk )
133
  , ( "ReplyStatusError",   'C.confdReplStatusError )
134
  , ( "ReplyStatusNotImpl", 'C.confdReplStatusNotimplemented )
114
$(declareILADT "ConfdReplyStatus"
115
  [ ("ReplyStatusOk",      0)
116
  , ("ReplyStatusError",   1)
117
  , ("ReplyStatusNotImpl", 2)
135 118
  ])
136 119
$(makeJSONInstance ''ConfdReplyStatus)
137 120

  
138
$(declareIADT "ConfdNodeRole"
139
  [ ( "NodeRoleMaster",    'C.confdNodeRoleMaster )
140
  , ( "NodeRoleCandidate", 'C.confdNodeRoleCandidate )
141
  , ( "NodeRoleOffline",   'C.confdNodeRoleOffline )
142
  , ( "NodeRoleDrained",   'C.confdNodeRoleDrained )
143
  , ( "NodeRoleRegular",   'C.confdNodeRoleRegular )
121
$(declareILADT "ConfdNodeRole"
122
  [ ("NodeRoleMaster",    0)
123
  , ("NodeRoleCandidate", 1)
124
  , ("NodeRoleOffline",   2)
125
  , ("NodeRoleDrained",   3)
126
  , ("NodeRoleRegular",   4)
144 127
  ])
145 128
$(makeJSONInstance ''ConfdNodeRole)
146 129

  
147

  
148 130
-- Note that the next item is not a frozenset in Python, but we make
149 131
-- it a separate type for safety
150 132

  
151
$(declareIADT "ConfdErrorType"
152
  [ ( "ConfdErrorUnknownEntry", 'C.confdErrorUnknownEntry )
153
  , ( "ConfdErrorInternal",     'C.confdErrorInternal )
154
  , ( "ConfdErrorArgument",     'C.confdErrorArgument )
133
$(declareILADT "ConfdErrorType"
134
  [ ("ConfdErrorUnknownEntry", 0)
135
  , ("ConfdErrorInternal",     1)
136
  , ("ConfdErrorArgument",     2)
155 137
  ])
156 138
$(makeJSONInstance ''ConfdErrorType)
157 139

  
......
167 149
newConfdRequest :: ConfdRequestType -> ConfdQuery -> IO ConfdRequest
168 150
newConfdRequest reqType query = do
169 151
  rsalt <- newUUID
170
  return $ ConfdRequest C.confdProtocolVersion reqType query rsalt
152
  return $ ConfdRequest ConstantUtils.confdProtocolVersion reqType query rsalt
171 153

  
172 154
$(buildObject "ConfdReply" "confdReply"
173 155
  [ simpleField "protocol" [t| Int              |]

Also available in: Unified diff