diff --git a/htools/Ganeti/Objects.hs b/htools/Ganeti/Objects.hs index 02728018306d97042345833445e3bd4c1257b3fb..e9d0acd4aa46e02e0804832cd7e8c386755c4202 100644 --- a/htools/Ganeti/Objects.hs +++ b/htools/Ganeti/Objects.hs @@ -372,7 +372,10 @@ $(buildObject "Cluster" "cluster" $ , simpleField "primary_ip_family" [t| Int |] , simpleField "prealloc_wipe_disks" [t| Bool |] ] - ++ serialFields) + ++ serialFields + ++ timeStampFields + ++ uuidFields + ++ tagsFields) -- * ConfigData definitions diff --git a/htools/Ganeti/THH.hs b/htools/Ganeti/THH.hs index 929da6f48b5a6ce1f2ce70087c5955629de48b72..47276d380f33e7f3e36dca2177129a5a4a8cb4c7 100644 --- a/htools/Ganeti/THH.hs +++ b/htools/Ganeti/THH.hs @@ -47,6 +47,7 @@ module Ganeti.THH ( declareSADT , timeStampFields , uuidFields , serialFields + , tagsFields , buildObject , buildObjectSerialisation , buildParam @@ -58,6 +59,7 @@ import Control.Monad (liftM, liftM2) import Data.Char import Data.List import qualified Data.Map as M +import qualified Data.Set as Set import Language.Haskell.TH import qualified Text.JSON as JSON @@ -172,6 +174,11 @@ serialFields = uuidFields :: [Field] uuidFields = [ simpleField "uuid" [t| String |] ] +-- | Tag field description. +tagsFields :: [Field] +tagsFields = [ defaultField [| Set.empty |] $ + simpleField "tags" [t| Set.Set String |] ] + -- * Helper functions -- | Ensure first letter is lowercase.