Revision 1a0dacf6 src/Ganeti/Objects.hs

b/src/Ganeti/Objects.hs
48 48
  , allBeParamFields
49 49
  , Instance(..)
50 50
  , toDictInstance
51
  , getDiskSizeRequirements
52 51
  , PartialNDParams(..)
53 52
  , FilledNDParams(..)
54 53
  , fillNDParams
......
455 454
  , simpleField "osparams_private" [t| OsParamsPrivate    |]
456 455
  , simpleField "admin_state"      [t| AdminState         |]
457 456
  , simpleField "nics"             [t| [PartialNic]       |]
458
  , simpleField "disks"            [t| [Disk]             |]
457
  , simpleField "disks"            [t| [String]           |]
459 458
  , simpleField "disk_template"    [t| DiskTemplate       |]
460 459
  , simpleField "disks_active"     [t| Bool               |]
461 460
  , optionalField $ simpleField "network_port" [t| Int  |]
......
478 477
instance TagsObject Instance where
479 478
  tagsOf = instTags
480 479

  
481
-- | Retrieves the real disk size requirements for all the disks of the
482
-- instance. This includes the metadata etc. and is different from the values
483
-- visible to the instance.
484
getDiskSizeRequirements :: Instance -> Int
485
getDiskSizeRequirements inst =
486
  sum . map
487
    (\disk -> case instDiskTemplate inst of
488
                DTDrbd8    -> diskSize disk + C.drbdMetaSize
489
                DTDiskless -> 0
490
                DTBlock    -> 0
491
                _          -> diskSize disk )
492
    $ instDisks inst
493

  
494 480
-- * IPolicy definitions
495 481

  
496 482
$(buildParam "ISpec" "ispec"

Also available in: Unified diff