LGTM On Mon, 27 Apr 2015 at 14:29 'Klaus Aehlig' via ganeti-devel < [email protected]> wrote:
> > > commit 9385baad06e9a242f6a77b98a1adbe2d1ea1bda6 > Merge: b110fcb 9492dac > Author: Klaus Aehlig <[email protected]> > Date: Mon Apr 27 14:13:39 2015 +0200 > > Merge branch 'stable-2.15' into master > > * stable-2.15 > Document dedicated allocation changes in NEWS > Prepare release of 2.15.0~beta1 > Add design doc for 2.15 > > * stable-2.14 > Add self to top-level functions that were moved to a class > Remove whitespace in empty line > Improve tests for adding and modifying disks > Group all the disk modification checks together > Group disk provider checks with other mod checks > Refactor disk_provider checks into helper function > > * stable-2.13 > Fix sample 2.12 configuration > NodeSshRemoveKey: Add retries for updating the target node > SSH file manager: properly name assertion function > Unittests: Simplify generating a master candidate node > RemoveNodeSshKey: use retries when updating other nodes > AddNodeSshKey: retries for all non-master nodes > AddNodeSshKey: retry when target node not reachable > Remove obsolete constant SSHS_RENAME > Simplify testdata setup and teardown > Consider offline nodes when removing SSH keys > Consider offline nodes in NodeSshKeyAdd > Use SSH file manager for unittests removing keys > Use SSH file manager in key adding unit tests > Introduce (testutils) SSH file manager > Only delete old node keys in one-key-setup > Add debug comments to RenewCrypto > Fix renewing master node's SSH key > Create CHROOT directory before copy COMP_FILENAME > Add missing design document to Makefile.am > > * stable-2.12 > When assigning UUIDs to disks, do so recursively > Fix sample 2.11 configuration > Include hypervisor parameters in SSConf > Add SSConf keys for hypervisor parameters > Use Hypervisor as the key in ClusterHvParams > Re-remove final config update in renew-crypto > Fix string formatting in private object representation > Fix the computation of the list of reserved IP addresses > Increase number of retries for daemon RPCs > > * stable-2.11 > Update configure file to version 2.11.7 > Update NEWS file for 2.11.7 release > Add logging to RenewCrypto > Fix format string for gnt-network info > Replace textwrapper.wrap by a custom version for networks > Add SSL improvements to NEWS file > > * stable-2.10 > Update tag limitations > Fix typos in doc/design-storagetypes.rst > Make getFQDN prefer cluster protocol family > Add version of getFQDN accepting preferences > Make getFQDN honor vcluster > > Conflicts: > NEWS > test/py/testutils/config_mock.py > Resolution: > take both additions > Semantical conflict: > configure.ac: ignore suffix bump > > Signed-off-by: Klaus Aehlig <[email protected]> > > diff --cc NEWS > index 2153b50,02fb603..c6a86d8 > --- a/NEWS > +++ b/NEWS > @@@ -2,16 -2,10 +2,16 @@@ New > ==== > > > +Version 2.16.0 > +-------------- > + > +*(unreleased)* > + > + > - Version 2.15.0 > - -------------- > + Version 2.15.0 beta1 > + -------------------- > > - *(unreleased)* > + *(Released Thu, 23 Apr 2015)* > > Incompatible/important changes > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > diff --cc test/py/testutils/config_mock.py > index 5c06d62,0ca0dc7..4cb485f > --- a/test/py/testutils/config_mock.py > +++ b/test/py/testutils/config_mock.py > @@@ -860,26 -860,8 +860,32 @@@ class ConfigMock(config.ConfigWriter) > self._UnlockedReleaseDRBDMinors(instance.uuid) > self._UnlockedCommitTemporaryIps(ec_id) > > + def _UnlockedAddDisk(self, disk): > + disk.UpgradeConfig() > + self._ConfigData().disks[disk.uuid] = disk > + self._ConfigData().cluster.serial_no += 1 # pylint: disable=E1103 > + self._UnlockedReleaseDRBDMinors(disk.uuid) > + > + def _UnlockedAttachInstanceDisk(self, inst_uuid, disk_uuid, idx=None): > + instance = self._UnlockedGetInstanceInfo(inst_uuid) > + if idx is None: > + idx = len(instance.disks) > + instance.disks.insert(idx, disk_uuid) > + instance_disks = self._UnlockedGetInstanceDisks(inst_uuid) > + for (disk_idx, disk) in enumerate(instance_disks[idx:]): > + disk.iv_name = "disk/%s" % (idx + disk_idx) > + instance.serial_no += 1 > + instance.mtime = time.time() > + > + def AddInstanceDisk(self, inst_uuid, disk, idx=None, replace=False): > + self._UnlockedAddDisk(disk) > + self._UnlockedAttachInstanceDisk(inst_uuid, disk.uuid, idx) > + > + def AttachInstanceDisk(self, inst_uuid, disk_uuid, idx=None): > + self._UnlockedAttachInstanceDisk(inst_uuid, disk_uuid, idx) > ++ > + def GetDisk(self, disk_uuid): > + """Retrieves a disk object if present. > + > + """ > + return self._ConfigData().disks[disk_uuid] > > -- > 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 >
