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