====
+Version 2.10.0 alpha1
+---------------------
+
+*(unreleased)*
+
+Incompatible/important changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Adding disks with 'gnt-instance modify' now waits for the disks to sync per
+ default. Specify --no-wait-for-sync to override this behavior.
+- The Ganeti python code now adheres to a private-module layout. In particular,
+ the module 'ganeti' is no longer in the python search path.
+- On instance allocation, the iallocator now considers non-LVM storage
+ properly. In particular, actual file storage space information is used
+ when allocating space for a file/sharedfile instance.
+- When disabling disk templates cluster-wide, the cluster now first
+ checks whether there are instances still using those templates.
+- 'gnt-node list-storage' now also reports storage information about
+ file-based storage types.
+
+New features
+~~~~~~~~~~~~
+- KVM hypervisors can now access RBD storage directly without having to
+ go through a block device.
+- A new command 'gnt-cluster upgrade' was added that automates the upgrade
+ procedure between two Ganeti versions that are both 2.10 or higher.
+
+
- Version 2.9.0 rc2
+ Version 2.9.0 rc3
-----------------
- *(Released Wed, 9 Oct 2013)*
+ *(Released Tue, 15 Oct 2013)*
Incompatible/important changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
self.nodegroups = {}
for nodegroup in self.nodegroups.values():
nodegroup.UpgradeConfig()
+ InstancePolicy.UpgradeDiskTemplates(
+ nodegroup.ipolicy, self.cluster.enabled_disk_templates)
if self.cluster.drbd_usermode_helper is None:
- # To decide if we set an helper let's check if at least one instance has
- # a DRBD disk. This does not cover all the possible scenarios but it
- # gives a good approximation.
- if self.HasAnyDiskOfType(constants.DT_DRBD8):
+ if self.cluster.IsDiskTemplateEnabled(constants.DT_DRBD8):
self.cluster.drbd_usermode_helper = constants.DEFAULT_DRBD_HELPER
if self.networks is None:
self.networks = {}