X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/f9b0084aea1f8d18bdd7f0eb11184d05bf2989f4..228ef0f2bcdacea52cf512779b99947d1b8cb173:/htools/Ganeti/Objects.hs diff --git a/htools/Ganeti/Objects.hs b/htools/Ganeti/Objects.hs index 3504ed5..46f37a1 100644 --- a/htools/Ganeti/Objects.hs +++ b/htools/Ganeti/Objects.hs @@ -33,7 +33,6 @@ module Ganeti.Objects , vTypeFromRaw , HvParams , OsParams - , NICMode(..) , PartialNicParams(..) , FilledNicParams(..) , fillNicParams @@ -50,7 +49,6 @@ module Ganeti.Objects , FilledBeParams(..) , fillBeParams , allBeParamFields - , Hypervisor(..) , AdminState(..) , adminStateFromRaw , Instance(..) @@ -95,12 +93,12 @@ import Data.List (foldl') import Data.Maybe import qualified Data.Map as Map import qualified Data.Set as Set -import Text.JSON (makeObj, showJSON, readJSON, JSON, JSValue(..)) +import Text.JSON (showJSON, readJSON, JSON, JSValue(..)) import qualified Text.JSON as J import qualified Ganeti.Constants as C import Ganeti.JSON - +import Ganeti.Types import Ganeti.THH -- * Generic definitions @@ -169,12 +167,6 @@ roleDescription NRMaster = "master" -- * NIC definitions -$(declareSADT "NICMode" - [ ("NMBridged", 'C.nicModeBridged) - , ("NMRouted", 'C.nicModeRouted) - ]) -$(makeJSONInstance ''NICMode) - $(buildParam "Nic" "nicp" [ simpleField "mode" [t| NICMode |] , simpleField "link" [t| String |] @@ -203,13 +195,6 @@ $(declareSADT "DiskType" ]) $(makeJSONInstance ''DiskType) --- | The file driver type. -$(declareSADT "FileDriver" - [ ("FileLoop", 'C.fdLoop) - , ("FileBlktap", 'C.fdBlktap) - ]) -$(makeJSONInstance ''FileDriver) - -- | The persistent block driver type. Currently only one type is allowed. $(declareSADT "BlockDriver" [ ("BlockDrvManual", 'C.blockdevDriverManual) @@ -231,7 +216,7 @@ data DiskLogicalId | LIDFile FileDriver String -- ^ Driver, path | LIDBlockDev BlockDriver String -- ^ Driver, path (must be under /dev) | LIDRados String String -- ^ Unused, path - deriving (Read, Show, Eq) + deriving (Show, Eq) -- | Mapping from a logical id to a disk type. lidDiskType :: DiskLogicalId -> DiskType @@ -317,7 +302,7 @@ data Disk = Disk , diskIvName :: String , diskSize :: Int , diskMode :: DiskMode - } deriving (Read, Show, Eq) + } deriving (Show, Eq) $(buildObjectSerialisation "Disk" [ customField 'decodeDLId 'encodeFullDLId $ @@ -329,33 +314,8 @@ $(buildObjectSerialisation "Disk" , defaultField [| DiskRdWr |] $ simpleField "mode" [t| DiskMode |] ]) --- * Hypervisor definitions - --- | This may be due to change when we add hypervisor parameters. -$(declareSADT "Hypervisor" - [ ( "Kvm", 'C.htKvm ) - , ( "XenPvm", 'C.htXenPvm ) - , ( "Chroot", 'C.htChroot ) - , ( "XenHvm", 'C.htXenHvm ) - , ( "Lxc", 'C.htLxc ) - , ( "Fake", 'C.htFake ) - ]) -$(makeJSONInstance ''Hypervisor) - -- * Instance definitions --- | Instance disk template type. **Copied from HTools/Types.hs** -$(declareSADT "DiskTemplate" - [ ("DTDiskless", 'C.dtDiskless) - , ("DTFile", 'C.dtFile) - , ("DTSharedFile", 'C.dtSharedFile) - , ("DTPlain", 'C.dtPlain) - , ("DTBlock", 'C.dtBlock) - , ("DTDrbd8", 'C.dtDrbd8) - , ("DTRados", 'C.dtRbd) - ]) -$(makeJSONInstance ''DiskTemplate) - $(declareSADT "AdminState" [ ("AdminOffline", 'C.adminstOffline) , ("AdminDown", 'C.adminstDown) @@ -409,6 +369,7 @@ $(buildParam "ISpec" "ispec" , simpleField C.ispecDiskSize [t| Int |] , simpleField C.ispecDiskCount [t| Int |] , simpleField C.ispecCpuCount [t| Int |] + , simpleField C.ispecNicCount [t| Int |] , simpleField C.ispecSpindleUse [t| Int |] ]) @@ -499,21 +460,6 @@ instance TagsObject Node where -- * NodeGroup definitions --- | The Group allocation policy type. --- --- Note that the order of constructors is important as the automatic --- Ord instance will order them in the order they are defined, so when --- changing this data type be careful about the interaction with the --- desired sorting order. --- --- FIXME: COPIED from Types.hs; we need to eliminate this duplication later -$(declareSADT "AllocPolicy" - [ ("AllocPreferred", 'C.allocPolicyPreferred) - , ("AllocLastResort", 'C.allocPolicyLastResort) - , ("AllocUnallocable", 'C.allocPolicyUnallocable) - ]) -$(makeJSONInstance ''AllocPolicy) - -- | The disk parameters type. type DiskParams = Container (Container JSValue)