Revision c22d4dd4

b/htools/Ganeti/HTools/QC.hs
97 97
maxCpu :: Int
98 98
maxCpu = 1024
99 99

  
100
-- | Max vcpu ratio (random value).
101
maxVcpuRatio :: Double
102
maxVcpuRatio = 1024.0
103

  
104
-- | Max spindle ratio (random value).
105
maxSpindleRatio :: Double
106
maxSpindleRatio = 1024.0
107

  
100 108
-- | All disk templates (used later)
101 109
allDiskTemplates :: [Types.DiskTemplate]
102 110
allDiskTemplates = [minBound..maxBound]
......
122 130
                                       , Types.iSpecNicCount   = 1
123 131
                                       }
124 132
  , Types.iPolicyDiskTemplates = [Types.DTDrbd8, Types.DTPlain]
125
  , Types.iPolicyVcpuRatio = 1024 -- somewhat random value, high
126
                                  -- enough to not impact us
133
  , Types.iPolicyVcpuRatio = maxVcpuRatio -- somewhat random value, high
134
                                          -- enough to not impact us
135
  , Types.iPolicySpindleRatio = maxSpindleRatio
127 136
  }
128 137

  
129 138

  
......
441 450
    imax <- genBiggerISpec istd
442 451
    num_tmpl <- choose (0, length allDiskTemplates)
443 452
    dts  <- genUniquesList num_tmpl
444
    vcpu_ratio <- arbitrary
453
    vcpu_ratio <- choose (1.0, maxVcpuRatio)
454
    spindle_ratio <- choose (1.0, maxSpindleRatio)
445 455
    return Types.IPolicy { Types.iPolicyMinSpec = imin
446 456
                         , Types.iPolicyStdSpec = istd
447 457
                         , Types.iPolicyMaxSpec = imax
448 458
                         , Types.iPolicyDiskTemplates = dts
449 459
                         , Types.iPolicyVcpuRatio = vcpu_ratio
460
                         , Types.iPolicySpindleRatio = spindle_ratio
450 461
                         }
451 462

  
452 463
-- * Actual tests
b/htools/Ganeti/HTools/Text.hs
128 128
-- | Generate policy data from a given policy object.
129 129
serializeIPolicy :: String -> IPolicy -> String
130 130
serializeIPolicy owner ipol =
131
  let IPolicy stdspec minspec maxspec dts vcpu_ratio = ipol
131
  let IPolicy stdspec minspec maxspec dts vcpu_ratio spindle_ratio = ipol
132 132
      strings = [ owner
133 133
                , serializeISpec stdspec
134 134
                , serializeISpec minspec
135 135
                , serializeISpec maxspec
136 136
                , serializeDiskTemplates dts
137 137
                , show vcpu_ratio
138
                , show spindle_ratio
138 139
                ]
139 140
  in intercalate "|" strings
140 141

  
......
236 237

  
237 238
-- | Loads an ipolicy from a field list.
238 239
loadIPolicy :: [String] -> Result (String, IPolicy)
239
loadIPolicy [owner, stdspec, minspec, maxspec, dtemplates, vcpu_ratio] = do
240
loadIPolicy [owner, stdspec, minspec, maxspec, dtemplates,
241
             vcpu_ratio, spindle_ratio] = do
240 242
  xstdspec <- loadISpec (owner ++ "/stdspec") (commaSplit stdspec)
241 243
  xminspec <- loadISpec (owner ++ "/minspec") (commaSplit minspec)
242 244
  xmaxspec <- loadISpec (owner ++ "/maxspec") (commaSplit maxspec)
243 245
  xdts <- mapM diskTemplateFromRaw $ commaSplit dtemplates
244 246
  xvcpu_ratio <- tryRead (owner ++ "/vcpu_ratio") vcpu_ratio
245
  return $ (owner, IPolicy xstdspec xminspec xmaxspec xdts xvcpu_ratio)
247
  xspindle_ratio <- tryRead (owner ++ "/spindle_ratio") spindle_ratio
248
  return $ (owner, IPolicy xstdspec xminspec xmaxspec xdts
249
            xvcpu_ratio xspindle_ratio)
246 250
loadIPolicy s = fail $ "Invalid ipolicy data: '" ++ show s ++ "'"
247 251

  
248 252
loadOnePolicy :: (IPolicy, Group.List) -> String
b/htools/Ganeti/HTools/Types.hs
217 217
      THH.simpleField C.ipolicyDts [t| [DiskTemplate] |]
218 218
  , THH.renameField "VcpuRatio" $
219 219
      THH.simpleField C.ipolicyVcpuRatio [t| Double |]
220
  , THH.renameField "SpindleRatio" $
221
      THH.simpleField C.ipolicySpindleRatio [t| Double |]
220 222
  ])
221 223

  
222 224
-- | Converts an ISpec type to a RSpec one.
......
236 238
                     -- htools, we are mostly looking at DRBD
237 239
                     , iPolicyDiskTemplates = [DTDrbd8, DTPlain]
238 240
                     , iPolicyVcpuRatio = C.ipolicyDefaultsVcpuRatio
241
                     , iPolicySpindleRatio = C.ipolicyDefaultsSpindleRatio
239 242
                     }
240 243

  
241 244
-- | The dynamic resource specs of a machine (i.e. load or load

Also available in: Unified diff