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