commit 38df9f780c9f1a8c9cfb9b62670f18c311b05e57
Merge: 29db783 080ebc7
Author: Klaus Aehlig <[email protected]>
Date: Wed Jun 17 16:55:11 2015 +0200
Merge branch 'stable-2.15' into master
* stable-2.15
Restrict evacuation to a group
Staying is not an option in evacuation
Set release date of 2.15.0 rc1 to tomorrow
Bump revision number to 2.15.0 rc1
Adapt NEWS file for 2.15.0 rc1
Set up Transport properly when communicating with metad
Allow the Transport class to be used for non-master nodes
* stable-2.14
Make htools tolerate missing "dtotal" and "dfree" on luxi
* stable-2.13
Mention migration change in NEWS
Move misplaced NEWS entry
Add protection against daemons that may already be listening
Attempt to cleanup failed migrations using a pidfile
Add utility that gets the full command line of a process
Introduce socat as a way of doing xl migrations
fix typo in UPGRADE notes
During start, only update job file locally
* stable-2.12
Fix tests for setting (shared) file storage directory
Add missing call for setting shared file storage directory
Update ganeti-luxid synopsis
Update ganeti-mond synopsis
Update ganeti-confd synopsis
Update copyright statement
Conflicts:
NEWS: take all additions
configure.ac: ignore suffix bump
src/Ganeti/HTools/GlobalN1.hs: trivial
Signed-off-by: Klaus Aehlig <[email protected]>
diff --cc NEWS
index 12cf2d7,83f20a3..b16e375
--- a/NEWS
+++ b/NEWS
@@@ -2,28 -2,19 +2,41 @@@ New
====
+Version 2.16.0
+--------------
+
+*(unreleased)*
+
+Incompatible/important changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- The IAllocator protocol has been extended by a new ``allocate-secondary``
+ request type. Currently, this new request type is only used when in disk
+ conversion to DRBD no secondary node is specified. As long as this new
+ feature is not used, a third-party IAllocator not aware of this extension
can
+ be continued to be used.
+
+New dependencies
+~~~~~~~~~~~~~~~~
+
+- Using the metadata daemon now requires the presence of the 'setcap' utility.
+ On Debian-based systems, it is available as a part of the 'libcap2-bin'
+ package.
+
+
+ Version 2.15.0 rc1
+ ------------------
+
+ *(Released Wed, 17 Jun 2015)*
+
+ Known issues:
+ ~~~~~~~~~~~~~
+
+ - Issue 1094: differences in encodings in SSL certificates due to
+ different OpenSSL versions can result in rendering a cluster
+ uncommunicative after a master-failover.
+
+
Version 2.15.0 beta1
--------------------
diff --cc src/Ganeti/HTools/GlobalN1.hs
index bde0c03,581d22d..50e5fb9
--- a/src/Ganeti/HTools/GlobalN1.hs
+++ b/src/Ganeti/HTools/GlobalN1.hs
@@@ -34,12 -34,9 +34,12 @@@ SOFTWARE, EVEN IF ADVISED OF THE POSSIB
module Ganeti.HTools.GlobalN1
( canEvacuateNode
+ , allocGlobalN1
) where
- import Control.Monad (foldM)
+ import Control.Monad (foldM, foldM_)
+import qualified Data.IntMap as IntMap
+import qualified Data.Foldable as Foldable
import Data.List (partition)
import Ganeti.BasicTypes (isOk, Result)
@@@ -81,18 -77,9 +81,19 @@@ canEvacuateNode (nl, il) n = isOk $ d
(nl', il') <- opToResult
. foldM move (nl, il) $ map (flip (,) Failover) drbdIdxs
-- evacuate other instances
- let n' = Node.setOffline n True
- nl'' = Container.add (Node.idx n') n' nl'
- _ <- foldM (evac (Node.group n') . map Node.idx $ IntMap.elems nl'')
- (nl'',il') sharedIdxs
- return ()
+ let grp = Node.group n
+ escapenodes = filter (/= Node.idx n)
+ . map Node.idx
+ . filter ((== grp) . Node.group)
+ $ Container.elems nl'
+ foldM_ (evac grp escapenodes) (nl',il') sharedIdxs
+
+-- | Predicate on wheter an allocation element leads to a globally N+1
redundant
+-- state.
+allocGlobalN1 :: Node.List -- ^ the original list of nodes
+ -> Instance.List -- ^ the original list of instances
+ -> AllocSol.GenericAllocElement a -> Bool
+allocGlobalN1 nl il alloc =
+ let il' = AllocSol.updateIl il $ Just alloc
+ nl' = AllocSol.extractNl nl il $ Just alloc
+ in Foldable.all (canEvacuateNode (nl', il')) nl'
--
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