LGTM, thanks
On Fri, Apr 25, 2014 at 5:36 PM, 'Klaus Aehlig <[email protected]>' via ganeti-devel <[email protected]> wrote: > > commit a301bb64ecaecf560eef9f3d53f5469b5206f10b > Merge: c179584 5d863fa > Author: Klaus Aehlig <[email protected]> > Date: Fri Apr 25 17:28:51 2014 +0200 > > Merge branch 'stable-2.11' into master > > * stable-2.11 > Make GlusterFS tests dual-stack-aware > Moving release date of 2.11.0 to 25th of April > Revision bump for 2.11.0 > Prepare NEWS file for release of 2.11.0 > Fix Xen instance state > > * stable-2.10 > Fix failed DRBD disk creation cleanup > Fix lint errors introduced during cherry-pick > Hooking up verification for shared file storage > Fix --shared-file-storage-dir option of gnt-cluster modify > Clarify default setting of 'metavg' > Fix invocation of GetCommandOutput in QA > Clean up RunWithLocks > Add an exception-trapping thread class > Wait for delay to provide interruption information > Add an expected block option to RunWithLocks > Track if a QA test was blocked by locks > Add a RunWithLocks QA utility function > > * stable-2.9 > If Automake version > 1.11, force serial tests > > Conflicts: > NEWS: take all additions > configure.ac: ignore suffix bump > lib/client/gnt_cluster.py: union of additions > lib/cmdlib/cluster.py: union of additions > lib/hypervisor/hv_xen.py: union of additions > qa/qa_job_utils.py: take version of master > > diff --cc NEWS > index 34e0429,4459f33..f4b9723 > --- a/NEWS > +++ b/NEWS > @@@ -2,41 -2,10 +2,41 @@@ New > ==== > > > +Version 2.12.0 alpha1 > +--------------------- > + > +*(unreleased)* > + > +Incompatible/important changes > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +- Do not use debug mode in production. Certain daemons will issue > warnings > + when launched in debug mode. Some debug logging violates some of the > new > + invariants in the system (see "New features"). The logging has been > kept as > + it aids diagnostics and development. > + > +New features > +~~~~~~~~~~~~ > + > +- OS install script parameters now come in public, private and secret > + varieties: > + > + - Public parameters are like all other parameters in Ganeti. > + - Ganeti will not log private and secret parameters, *unless* it is > running > + in debug mode. > + - Ganeti will not save secret parameters to configuration. Secret > parameters > + must be supplied every time you install, or reinstall, an instance. > + - Attempting to override public parameters with private or secret > parameters > + results in an error. Similarly, you may not use secret parameters to > + override private parameters. > + - The move-instance tool can now attempt to allocate an instance by > using > + opportunistic locking when an iallocator is used. > + > + > - Version 2.11.0 rc1 > - ------------------ > + Version 2.11.0 > + -------------- > > - *(Released Thu, 20 Mar 2014)* > + *(Released Fri, 25 Apr 2014)* > > Incompatible/important changes > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > @@@ -92,12 -61,75 +92,79 @@@ For Haskell > - ``base64-bytestring`` library (http://hackage.haskell.org/package/zlib > ), > at least version 1.0.0.0 > > +- ``lifted-base`` library ( > http://hackage.haskell.org/package/lifted-base) > + > +- ``lens`` library (http://hackage.haskell.org/package/lens) > + > - Since 2.11.0 beta1 > - ~~~~~~~~~~~~~~~~~~ > + Since 2.11.0 rc1 > + ~~~~~~~~~~~~~~~~ > + > + - Fix Xen instance state > + > + Inherited from the 2.10 branch: > + > + - Fix conflict between virtio + spice or soundhw > + - Fix bitarray ops wrt PCI slots > + - Allow releases scheduled 5 days in advance > + - Make watcher submit queries low priority > + - Fix specification of TIDiskParams > + - Add unittests for instance modify parameter renaming > + - Add renaming of instance custom params > + - Add RAPI symmetry tests for groups > + - Extend RAPI symmetry tests with RAPI-only aliases > + - Add test for group custom parameter renaming > + - Add renaming of group custom ndparams, ipolicy, diskparams > + - Add the RAPI symmetry test for nodes > + - Add aliases for nodes > + - Allow choice of HTTP method for modification > + - Add cluster RAPI symmetry test > + - Fix failing cluster query test > + - Add aliases for cluster parameters > + - Add support for value aliases to RAPI > + - Provide tests for GET/PUT symmetry > + - Sort imports > + - Also consider filter fields for deciding if using live data > + - Document the python-fdsend dependency > + - Verify configuration version number before parsing > + - KVM: use running HVPs to calc blockdev options > + - KVM: reserve a PCI slot for the SCSI controller > + - Check for LVM-based verification results only when enabled > + - Fix "existing" typos > + - Fix output of gnt-instance info after migration > + - Warn in UPGRADE about not tar'ing exported insts > + - Fix non-running test and remove custom_nicparams rename > + - Account for NODE_RES lock in opportunistic locking > + - Fix request flooding of noded during disk sync > + > + Inherited from the 2.9 branch: > + > + - Make watcher submit queries low priority > + - Fix failing gnt-node list-drbd command > + - Update installation guide wrt to DRBD version > + - Fix list-drbd QA test > + - Add messages about skipped QA disk template tests > + - Allow QA asserts to produce more messages > + - Set exclusion tags correctly in requested instance > + - Export extractExTags and updateExclTags > + - Document spindles in the hbal man page > + - Sample logrotate conf breaks permissions with split users > + - Fix 'gnt-cluster' and 'gnt-node list-storage' outputs > + > + Inherited from the 2.8 branch: > + > + - Add reason parameter to RAPI client functions > + - Include qa/patch in Makefile > + - Handle empty patches better > + - Move message formatting functions to separate file > + - Add optional ordering of QA patch files > + - Allow multiple QA patches > + - Refactor current patching code > + > + > + Version 2.11.0 rc1 > + ------------------ > + > + *(Released Thu, 20 Mar 2014)* > > This was the first RC release of the 2.11 series. Since 2.11.0 beta1: > > diff --cc lib/client/gnt_cluster.py > index 746a522,c7d2194..70f0283 > --- a/lib/client/gnt_cluster.py > +++ b/lib/client/gnt_cluster.py > @@@ -1131,8 -1115,7 +1131,9 @@@ def SetClusterParams(opts, args) > opts.ipolicy_spindle_ratio is not None or > opts.modify_etc_hosts is not None or > opts.file_storage_dir is not None or > + opts.instance_communication_network is not None or > - opts.zeroing_image is not None): > ++ opts.zeroing_image is not None or > + opts.shared_file_storage_dir is not None): > ToStderr("Please give at least one of the parameters.") > return 1 > > @@@ -1244,10 -1226,10 +1245,11 @@@ > enabled_disk_templates=enabled_disk_templates, > force=opts.force, > file_storage_dir=opts.file_storage_dir, > + instance_communication_network=opts.instance_communication_network, > + zeroing_image=opts.zeroing_image > + shared_file_storage_dir=opts.shared_file_storage_dir, > ) > - SubmitOrSend(op, opts) > - return 0 > + return base.GetResult(None, opts, SubmitOrSend(op, opts)) > > > def QueueOps(opts, args): > @@@ -2194,7 -2193,7 +2196,8 @@@ commands = > USE_EXTERNAL_MIP_SCRIPT, DISK_PARAMS_OPT, HV_STATE_OPT, > DISK_STATE_OPT] + > SUBMIT_OPTS + > [ENABLED_DISK_TEMPLATES_OPT, IPOLICY_STD_SPECS_OPT, > MODIFY_ETCHOSTS_OPT] + > - INSTANCE_POLICY_OPTS + [GLOBAL_FILEDIR_OPT, ZEROING_IMAGE_OPT], > - INSTANCE_POLICY_OPTS + [GLOBAL_FILEDIR_OPT, > GLOBAL_SHARED_FILEDIR_OPT], > ++ INSTANCE_POLICY_OPTS + > ++ [GLOBAL_FILEDIR_OPT, GLOBAL_SHARED_FILEDIR_OPT, ZEROING_IMAGE_OPT], > "[opts...]", > "Alters the parameters of the cluster"), > "renew-crypto": ( > diff --cc lib/cmdlib/cluster.py > index d029825,bda4692..e839a9e > --- a/lib/cmdlib/cluster.py > +++ b/lib/cmdlib/cluster.py > @@@ -1481,19 -1327,11 +1493,18 @@@ class LUClusterSetParams(LogicalUnit) > if self.op.enabled_disk_templates: > self.cluster.enabled_disk_templates = \ > list(self.op.enabled_disk_templates) > + # save the changes > + self.cfg.Update(self.cluster, feedback_fn) > > self._SetVgName(feedback_fn) > + > + self.cluster = self.cfg.GetClusterInfo() > self._SetFileStorageDir(feedback_fn) > - self.cfg.Update(self.cluster, feedback_fn) > - > - self._SetSharedFileStorageDir(feedback_fn) > self._SetDrbdHelper(feedback_fn) > ++ self.cfg.Update(self.cluster, feedback_fn) > + > + # re-read the fresh configuration again > + self.cluster = self.cfg.GetClusterInfo() > > if self.op.hvparams: > self.cluster.hvparams = self.new_hvparams > diff --cc lib/hypervisor/hv_xen.py > index 4070066,b1fc96c..ce7147e > --- a/lib/hypervisor/hv_xen.py > +++ b/lib/hypervisor/hv_xen.py > @@@ -174,15 -174,15 +174,16 @@@ def _GetAllInstanceList(fn, include_nod > # An instance is running if it is in the following Xen states: > # running, blocked, or paused. > # > -# For some strange reason, Xen once printed 'rb----' which does not > -# make any sense because an instance cannot be both running and > -# blocked. Fortunately, for Ganeti 'running' or 'blocked' is the same > -# as 'running'. > +# A state of nothing '------' means that the domain is runnable but it > +# is not currently running. That means it is in the queue behind > +# other domains waiting to be scheduled to run. > +# > http://old-list-archives.xenproject.org/xen-users/2007-06/msg00849.html > def _IsInstanceRunning(instance_info): > return instance_info == "r-----" \ > - or instance_info == "-b----" \ > + or instance_info == "rb----" \ > - or instance_info == "--p---" > + or instance_info == "-b----" \ > + or instance_info == "--p---" \ > + or instance_info == "------" > > > def _IsInstanceShutdown(instance_info): > > -- > 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 >
