LGTM, thanks On Wed, 1 Apr 2015 at 14:41 'Klaus Aehlig' via ganeti-devel < [email protected]> wrote:
> > > 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 >
