Revision da5f09ef src/Ganeti/HTools/Types.hs

b/src/Ganeti/HTools/Types.hs
6 6

  
7 7
{-
8 8

  
9
Copyright (C) 2009, 2010, 2011, 2012 Google Inc.
9
Copyright (C) 2009, 2010, 2011, 2012, 2013 Google Inc.
10 10

  
11 11
This program is free software; you can redistribute it and/or modify
12 12
it under the terms of the GNU General Public License as published by
......
69 69
  , opToResult
70 70
  , EvacMode(..)
71 71
  , ISpec(..)
72
  , MinMaxISpecs(..)
72 73
  , IPolicy(..)
73 74
  , defIPolicy
74 75
  , rspecFromISpec
......
168 169

  
169 170
-- | The default minimum ispec.
170 171
defMinISpec :: ISpec
171
defMinISpec = ISpec { iSpecMemorySize = C.ipolicyDefaultsMinMemorySize
172
                    , iSpecCpuCount   = C.ipolicyDefaultsMinCpuCount
173
                    , iSpecDiskSize   = C.ipolicyDefaultsMinDiskSize
174
                    , iSpecDiskCount  = C.ipolicyDefaultsMinDiskCount
175
                    , iSpecNicCount   = C.ipolicyDefaultsMinNicCount
176
                    , iSpecSpindleUse = C.ipolicyDefaultsMinSpindleUse
172
defMinISpec = ISpec { iSpecMemorySize = C.ipolicyDefaultsMinmaxMinMemorySize
173
                    , iSpecCpuCount   = C.ipolicyDefaultsMinmaxMinCpuCount
174
                    , iSpecDiskSize   = C.ipolicyDefaultsMinmaxMinDiskSize
175
                    , iSpecDiskCount  = C.ipolicyDefaultsMinmaxMinDiskCount
176
                    , iSpecNicCount   = C.ipolicyDefaultsMinmaxMinNicCount
177
                    , iSpecSpindleUse = C.ipolicyDefaultsMinmaxMinSpindleUse
177 178
                    }
178 179

  
179 180
-- | The default standard ispec.
......
188 189

  
189 190
-- | The default max ispec.
190 191
defMaxISpec :: ISpec
191
defMaxISpec = ISpec { iSpecMemorySize = C.ipolicyDefaultsMaxMemorySize
192
                    , iSpecCpuCount   = C.ipolicyDefaultsMaxCpuCount
193
                    , iSpecDiskSize   = C.ipolicyDefaultsMaxDiskSize
194
                    , iSpecDiskCount  = C.ipolicyDefaultsMaxDiskCount
195
                    , iSpecNicCount   = C.ipolicyDefaultsMaxNicCount
196
                    , iSpecSpindleUse = C.ipolicyDefaultsMaxSpindleUse
192
defMaxISpec = ISpec { iSpecMemorySize = C.ipolicyDefaultsMinmaxMaxMemorySize
193
                    , iSpecCpuCount   = C.ipolicyDefaultsMinmaxMaxCpuCount
194
                    , iSpecDiskSize   = C.ipolicyDefaultsMinmaxMaxDiskSize
195
                    , iSpecDiskCount  = C.ipolicyDefaultsMinmaxMaxDiskCount
196
                    , iSpecNicCount   = C.ipolicyDefaultsMinmaxMaxNicCount
197
                    , iSpecSpindleUse = C.ipolicyDefaultsMinmaxMaxSpindleUse
197 198
                    }
198 199

  
200
-- | Minimum and maximum instance specs type.
201
$(THH.buildObject "MinMaxISpecs" "minMaxISpecs"
202
  [ THH.renameField "MinSpec" $ THH.simpleField "min" [t| ISpec |]
203
  , THH.renameField "MaxSpec" $ THH.simpleField "max" [t| ISpec |]
204
  ])
205

  
206
-- | Defult minimum and maximum instance specs.
207
defMinMaxISpecs :: MinMaxISpecs
208
defMinMaxISpecs = MinMaxISpecs { minMaxISpecsMinSpec = defMinISpec
209
                               , minMaxISpecsMaxSpec = defMaxISpec
210
                               }
211

  
199 212
-- | Instance policy type.
200 213
$(THH.buildObject "IPolicy" "iPolicy"
201
  [ THH.renameField "StdSpec" $ THH.simpleField C.ispecsStd [t| ISpec |]
202
  , THH.renameField "MinSpec" $ THH.simpleField C.ispecsMin [t| ISpec |]
203
  , THH.renameField "MaxSpec" $ THH.simpleField C.ispecsMax [t| ISpec |]
214
  [ THH.renameField "MinMaxISpecs" $
215
      THH.simpleField C.ispecsMinmax [t| MinMaxISpecs |]
216
  , THH.renameField "StdSpec" $ THH.simpleField C.ispecsStd [t| ISpec |]
204 217
  , THH.renameField "DiskTemplates" $
205 218
      THH.simpleField C.ipolicyDts [t| [DiskTemplate] |]
206 219
  , THH.renameField "VcpuRatio" $
......
218 231

  
219 232
-- | The default instance policy.
220 233
defIPolicy :: IPolicy
221
defIPolicy = IPolicy { iPolicyStdSpec = defStdISpec
222
                     , iPolicyMinSpec = defMinISpec
223
                     , iPolicyMaxSpec = defMaxISpec
234
defIPolicy = IPolicy { iPolicyMinMaxISpecs = defMinMaxISpecs
235
                     , iPolicyStdSpec = defStdISpec
224 236
                     -- hardcoding here since Constants.hs exports the
225 237
                     -- string values, not the actual type; and in
226 238
                     -- htools, we are mostly looking at DRBD

Also available in: Unified diff