commit 102982863d739e99b12396668234a0331deca7d2
Merge: aa93573 ac20b4a
Author: Klaus Aehlig <[email protected]>
Date:   Wed Apr 1 14:32:41 2015 +0200

    Merge branch 'stable-2.12' into stable-2.13
    
    * stable-2.12
      Add default values for hv_state_static and disk_state_static
      Add a value for the empty Container
      Verify if we're master before demoting
      Also consider connection time out a network error
    
    * stable-2.11
      (no changes)
    
    * stable-2.10
      Fixed typos
      Pass correct params in move-instance
      In CanTieredAlloc test set IPolicy
      Make genInstanceMaybeBiggerThanNode honor policy lower bound
      Also export a null ISpec
      Support instance generation within ranges
      Add a function to leave the list monad
    
    Signed-off-by: Klaus Aehlig <[email protected]>

diff --cc src/Ganeti/JSON.hs
index dac72ba,b12dfc9..c97c8c0
--- a/src/Ganeti/JSON.hs
+++ b/src/Ganeti/JSON.hs
@@@ -328,6 -319,19 +329,10 @@@ newtype GenericContainer a b 
  instance (NFData a, NFData b) => NFData (GenericContainer a b) where
    rnf = rnf . Map.toList . fromContainer
  
 -instance Functor (GenericContainer a) where
 -  fmap f = GenericContainer . fmap f . fromContainer
 -
 -instance F.Foldable (GenericContainer a) where
 -  foldMap f = F.foldMap f . fromContainer
 -
 -instance F.Traversable (GenericContainer a) where
 -  traverse f = fmap GenericContainer . F.traverse f . fromContainer
 -
+ -- | The empty container.
+ emptyContainer :: GenericContainer a b
+ emptyContainer = GenericContainer Map.empty
+ 
  -- | Type alias for string keys.
  type Container = GenericContainer String
  
diff --cc src/Ganeti/Objects.hs
index 8e95334,be0c056..ecf7f88
--- a/src/Ganeti/Objects.hs
+++ b/src/Ganeti/Objects.hs
@@@ -937,59 -807,60 +937,61 @@@ type HypervisorState = Container JSValu
  
  -- * Cluster definitions
  $(buildObject "Cluster" "cluster" $
 -  [ simpleField "rsahostkeypub"                  [t| String                 |]
 +  [ simpleField "rsahostkeypub"                  [t| String                  
|]
    , optionalField $
 -    simpleField "dsahostkeypub"                  [t| String                 |]
 -  , simpleField "highest_used_port"              [t| Int                    |]
 -  , simpleField "tcpudp_port_pool"               [t| [Int]                  |]
 -  , simpleField "mac_prefix"                     [t| String                 |]
 +    simpleField "dsahostkeypub"                  [t| String                  
|]
 +  , simpleField "highest_used_port"              [t| Int                     
|]
 +  , simpleField "tcpudp_port_pool"               [t| [Int]                   
|]
 +  , simpleField "mac_prefix"                     [t| String                  
|]
    , optionalField $
 -    simpleField "volume_group_name"              [t| String                 |]
 -  , simpleField "reserved_lvs"                   [t| [String]               |]
 +    simpleField "volume_group_name"              [t| String                  
|]
 +  , simpleField "reserved_lvs"                   [t| [String]                
|]
    , optionalField $
 -    simpleField "drbd_usermode_helper"           [t| String                 |]
 -  , simpleField "master_node"                    [t| String                 |]
 -  , simpleField "master_ip"                      [t| String                 |]
 -  , simpleField "master_netdev"                  [t| String                 |]
 -  , simpleField "master_netmask"                 [t| Int                    |]
 -  , simpleField "use_external_mip_script"        [t| Bool                   |]
 -  , simpleField "cluster_name"                   [t| String                 |]
 -  , simpleField "file_storage_dir"               [t| String                 |]
 -  , simpleField "shared_file_storage_dir"        [t| String                 |]
 -  , simpleField "gluster_storage_dir"            [t| String                 |]
 -  , simpleField "enabled_hypervisors"            [t| [Hypervisor]           |]
 -  , simpleField "hvparams"                       [t| ClusterHvParams        |]
 -  , simpleField "os_hvp"                         [t| OsHvParams             |]
 -  , simpleField "beparams"                       [t| ClusterBeParams        |]
 -  , simpleField "osparams"                       [t| ClusterOsParams        |]
 -  , simpleField "osparams_private_cluster"       [t| ClusterOsParamsPrivate |]
 -  , simpleField "nicparams"                      [t| ClusterNicParams       |]
 -  , simpleField "ndparams"                       [t| FilledNDParams         |]
 -  , simpleField "diskparams"                     [t| GroupDiskParams        |]
 -  , simpleField "candidate_pool_size"            [t| Int                    |]
 -  , simpleField "modify_etc_hosts"               [t| Bool                   |]
 -  , simpleField "modify_ssh_setup"               [t| Bool                   |]
 -  , simpleField "maintain_node_health"           [t| Bool                   |]
 -  , simpleField "uid_pool"                       [t| UidPool                |]
 -  , simpleField "default_iallocator"             [t| String                 |]
 -  , simpleField "default_iallocator_params"      [t| IAllocatorParams       |]
 -  , simpleField "hidden_os"                      [t| [String]               |]
 -  , simpleField "blacklisted_os"                 [t| [String]               |]
 -  , simpleField "primary_ip_family"              [t| IpFamily               |]
 -  , simpleField "prealloc_wipe_disks"            [t| Bool                   |]
 -  , simpleField "ipolicy"                        [t| FilledIPolicy          |]
 +    simpleField "drbd_usermode_helper"           [t| String                  
|]
 +  , simpleField "master_node"                    [t| String                  
|]
 +  , simpleField "master_ip"                      [t| String                  
|]
 +  , simpleField "master_netdev"                  [t| String                  
|]
 +  , simpleField "master_netmask"                 [t| Int                     
|]
 +  , simpleField "use_external_mip_script"        [t| Bool                    
|]
 +  , simpleField "cluster_name"                   [t| String                  
|]
 +  , simpleField "file_storage_dir"               [t| String                  
|]
 +  , simpleField "shared_file_storage_dir"        [t| String                  
|]
 +  , simpleField "gluster_storage_dir"            [t| String                  
|]
 +  , simpleField "enabled_hypervisors"            [t| [Hypervisor]            
|]
 +  , simpleField "hvparams"                       [t| ClusterHvParams         
|]
 +  , simpleField "os_hvp"                         [t| OsHvParams              
|]
 +  , simpleField "beparams"                       [t| ClusterBeParams         
|]
 +  , simpleField "osparams"                       [t| ClusterOsParams         
|]
 +  , simpleField "osparams_private_cluster"       [t| ClusterOsParamsPrivate  
|]
 +  , simpleField "nicparams"                      [t| ClusterNicParams        
|]
 +  , simpleField "ndparams"                       [t| FilledNDParams          
|]
 +  , simpleField "diskparams"                     [t| GroupDiskParams         
|]
 +  , simpleField "candidate_pool_size"            [t| Int                     
|]
 +  , simpleField "modify_etc_hosts"               [t| Bool                    
|]
 +  , simpleField "modify_ssh_setup"               [t| Bool                    
|]
 +  , simpleField "maintain_node_health"           [t| Bool                    
|]
 +  , simpleField "uid_pool"                       [t| UidPool                 
|]
 +  , simpleField "default_iallocator"             [t| String                  
|]
 +  , simpleField "default_iallocator_params"      [t| IAllocatorParams        
|]
 +  , simpleField "hidden_os"                      [t| [String]                
|]
 +  , simpleField "blacklisted_os"                 [t| [String]                
|]
 +  , simpleField "primary_ip_family"              [t| IpFamily                
|]
 +  , simpleField "prealloc_wipe_disks"            [t| Bool                    
|]
 +  , simpleField "ipolicy"                        [t| FilledIPolicy           
|]
-   , simpleField "hv_state_static"                [t| HypervisorState         
|]
-   , simpleField "disk_state_static"              [t| DiskState               
|]
+   , defaultField [| emptyContainer |] $
+     simpleField "hv_state_static"                [t| HypervisorState        |]
+   , defaultField [| emptyContainer |] $
+     simpleField "disk_state_static"              [t| DiskState              |]
 -  , simpleField "enabled_disk_templates"         [t| [DiskTemplate]         |]
 -  , simpleField "candidate_certs"                [t| CandidateCertificates  |]
 -  , simpleField "max_running_jobs"               [t| Int                    |]
 -  , simpleField "max_tracked_jobs"               [t| Int                    |]
 -  , simpleField "install_image"                  [t| String                 |]
 -  , simpleField "instance_communication_network" [t| String                 |]
 -  , simpleField "zeroing_image"                  [t| String                 |]
 -  , simpleField "compression_tools"              [t| [String]               |]
 -  , simpleField "enabled_user_shutdown"          [t| Bool                   |]
 +  , simpleField "enabled_disk_templates"         [t| [DiskTemplate]          
|]
 +  , simpleField "candidate_certs"                [t| CandidateCertificates   
|]
 +  , simpleField "max_running_jobs"               [t| Int                     
|]
 +  , simpleField "max_tracked_jobs"               [t| Int                     
|]
 +  , simpleField "install_image"                  [t| String                  
|]
 +  , simpleField "instance_communication_network" [t| String                  
|]
 +  , simpleField "zeroing_image"                  [t| String                  
|]
 +  , simpleField "compression_tools"              [t| [String]                
|]
 +  , simpleField "enabled_user_shutdown"          [t| Bool                    
|]
 +  , simpleField "data_collectors"         [t| Container DataCollectorConfig  
|]
   ]
   ++ timeStampFields
   ++ uuidFields

-- 
Klaus Aehlig
Google Germany GmbH, Dienerstr. 12, 80331 Muenchen
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschaeftsfuehrer: Graham Law, Christine Elizabeth Flores

Reply via email to