Revision 59bcd180

b/lib/constants.py
353 353
  ST_LVM_PV: frozenset([SF_ALLOCATABLE]),
354 354
  }
355 355

  
356
LDS_OKAY = _constants.LDS_OKAY
357
LDS_UNKNOWN = _constants.LDS_UNKNOWN
358
LDS_FAULTY = _constants.LDS_FAULTY
359
LDS_NAMES = _constants.LDS_NAMES
356 360
VALID_STORAGE_OPERATIONS = {
357 361
  ST_LVM_VG: frozenset([SO_FIX_CONSISTENCY]),
358 362
  }
......
366 370
VF_SIZE = "size"
367 371
VF_VG = "vg"
368 372

  
369
# Local disk status
370
# Note: Code depends on LDS_OKAY < LDS_UNKNOWN < LDS_FAULTY
371
(LDS_OKAY,
372
 LDS_UNKNOWN,
373
 LDS_FAULTY) = range(1, 4)
374

  
375
LDS_NAMES = {
376
  LDS_OKAY: "ok",
377
  LDS_UNKNOWN: "unknown",
378
  LDS_FAULTY: "faulty",
379
}
380

  
381 373
# disk template types
382 374
DT_BLOCK = _constants.DT_BLOCK
383 375
DT_DISKLESS = _constants.DT_DISKLESS
......
514 506
FD_BLKTAP = _constants.FD_BLKTAP
515 507
FD_LOOP = _constants.FD_LOOP
516 508

  
517
# the set of drbd-like disk types
518
LDS_DRBD = compat.UniqueFrozenset([DT_DRBD8])
509
LDS_DRBD = _constants.LDS_DRBD
519 510

  
520 511
# disk access mode
521 512
DISK_RDONLY = _constants.DISK_RDONLY
b/src/Ganeti/HsConstants.hs
452 452
sfUsed :: String
453 453
sfUsed = Types.storageFieldToRaw SFUsed
454 454

  
455
-- * Local disk status
456

  
457
ldsFaulty :: Int
458
ldsFaulty = Types.localDiskStatusToRaw DiskStatusFaulty
459

  
460
ldsOkay :: Int
461
ldsOkay = Types.localDiskStatusToRaw DiskStatusOk
462

  
463
ldsUnknown :: Int
464
ldsUnknown = Types.localDiskStatusToRaw DiskStatusUnknown
465

  
466
ldsNames :: Map Int String
467
ldsNames =
468
  Map.fromList [ (Types.localDiskStatusToRaw ds,
469
                  localDiskStatusName ds) | ds <- [minBound..] ]
470

  
455 471
-- * Disk template types
456 472

  
457 473
dtDiskless :: String
......
503 519
fdLoop :: String
504 520
fdLoop = Types.fileDriverToRaw FileLoop
505 521

  
522
-- | The set of drbd-like disk types
523
ldsDrbd :: FrozenSet String
524
ldsDrbd = ConstantUtils.mkSet [Types.diskTemplateToRaw DTDrbd8]
525

  
506 526
-- * Disk access mode
507 527

  
508 528
diskRdonly :: String
b/src/Ganeti/Types.hs
143 143
  , storageFieldToRaw
144 144
  , DiskAccessMode(..)
145 145
  , diskAccessModeToRaw
146
  , LocalDiskStatus(..)
147
  , localDiskStatusFromRaw
148
  , localDiskStatusToRaw
149
  , localDiskStatusName
146 150
  , ReplaceDisksMode(..)
147 151
  , replaceDisksModeToRaw
148 152
  , RpcTimeout(..)
......
398 402
$(THH.makeJSONInstance ''DdmSimple)
399 403

  
400 404
-- | Dynamic device modification, all operations version.
405
--
406
-- TODO: DDM_SWAP, DDM_MOVE?
401 407
$(THH.declareLADT ''String "DdmFull"
402 408
     [ ("DdmFullAdd",    "add")
403 409
     , ("DdmFullRemove", "remove")
......
724 730
  ])
725 731
$(THH.makeJSONInstance ''VType)
726 732

  
733
instance THH.PyValue VType where
734
  showValue = THH.showValue . vTypeToRaw
735

  
727 736
-- * Node role type
728 737

  
729 738
$(THH.declareLADT ''String "NodeRole"
......
785 794
  ])
786 795
$(THH.makeJSONInstance ''DiskAccessMode)
787 796

  
797
-- | Local disk status
798
--
799
-- Python code depends on:
800
--   DiskStatusOk < DiskStatusUnknown < DiskStatusFaulty
801
$(THH.declareILADT "LocalDiskStatus"
802
  [ ("DiskStatusFaulty",  3)
803
  , ("DiskStatusOk",      1)
804
  , ("DiskStatusUnknown", 2)
805
  ])
806

  
807
localDiskStatusName :: LocalDiskStatus -> String
808
localDiskStatusName DiskStatusFaulty = "faulty"
809
localDiskStatusName DiskStatusOk = "ok"
810
localDiskStatusName DiskStatusUnknown = "unknown"
811

  
788 812
-- | Replace disks type.
789 813
$(THH.declareLADT ''String "ReplaceDisksMode"
790 814
  [ -- Replace disks on primary

Also available in: Unified diff