commit 1d21963cb45d632c05f98e7607e94ec0c9447ca5
Merge: 5fdd0f8 22b6496
Author: Klaus Aehlig <[email protected]>
Date:   Tue May 20 17:23:33 2014 +0200

    Merge branch 'stable-2.11' into stable-2.12
    
    * stable-2.11
      Add missing import
      Fix INicParams to include inicNetwork
      Improve KVM userspace access documentation
    
    * stable-2.10
      Add --no-locks option to gnt-debug dela
      Include design-performance-tests.rst in index
      Document the --force-failover option
      Support group evacuation by failover
      Add an option --force-failover
      Extend OpGroupEvacuate by a ForceFailover paramter
      Mark performance tests design as implemented
      openvswitch fix
      Document the --sequential option
      Support sequential evacuation
      Add an option --sequential
      Extend OpGroupEvacuate by a sequential paramter
    
    * stable-2.9
      Improve haskell style
      check-man-warnings: use C.UTF-8 and set LC_ALL
      Fix passing of ispecs in cluster init during QA
    
    Conflicts:
        doc/design-draft.rst
        lib/client/gnt_debug.py
        lib/cmdlib/test.py
        src/Ganeti/HTools/Program/Harep.hs
        src/Ganeti/HTools/Program/Hspace.hs
        src/Ganeti/JQueue.hs
        src/Ganeti/OpCodes.hs
        src/Ganeti/OpParams.hs
        test/hs/Test/Ganeti/HTools/Instance.hs
    Resolution:
        lib/cmdlib/test.py: modify/remove resolved
          in favor of the remove on stable-2.12
        */HTools/* and src/Ganeti/Op*: add both new
          parameters to the delay opcode
        rest: trivial union
    
    Signed-off-by: Klaus Aehlig <[email protected]>

diff --cc doc/design-draft.rst
index e3531ee,deeb924..55bed7c
--- a/doc/design-draft.rst
+++ b/doc/design-draft.rst
@@@ -19,11 -19,7 +19,10 @@@ Design document draft
     design-daemons.rst
     design-hsqueeze.rst
     design-os.rst
 +   design-move-instance-improvements.rst
     design-node-security.rst
 +   design-systemd.rst
 +   design-cpu-speed.rst
-    design-performance-tests.rst
  
  .. vim: set textwidth=72 :
  .. Local Variables:
diff --cc lib/client/gnt_debug.py
index 5a18099,a3c96f3..478bbe1
--- a/lib/client/gnt_debug.py
+++ b/lib/client/gnt_debug.py
@@@ -66,7 -65,7 +66,8 @@@ def Delay(opts, args)
                             on_master=opts.on_master,
                             on_nodes=opts.on_nodes,
                             repeat=opts.repeat,
-                            interruptible=opts.interruptible)
++                           interruptible=opts.interruptible,
+                            no_locks=opts.no_locks)
    SubmitOrSend(op, opts)
  
    return 0
@@@ -680,10 -630,9 +681,13 @@@ commands = 
                  action="append", help="Select nodes to sleep on"),
       cli_option("-r", "--repeat", type="int", default="0", dest="repeat",
                  help="Number of times to repeat the sleep"),
 +     cli_option("-i", "--interruptible", default=False, dest="interruptible",
 +                action="store_true",
 +                help="Allows the opcode to be interrupted by using a domain "
 +                     "socket"),
+      cli_option("-l", "--no-locks", default=False, dest="no_locks",
+                 action="store_true",
+                 help="Don't take locks while performing the delay"),
       DRY_RUN_OPT, PRIORITY_OPT] + SUBMIT_OPTS,
      "[opts...] <duration>", "Executes a TestDelay OpCode"),
    "submit-job": (
diff --cc lib/cmdlib/test.py
index a2c404b,98bbe3e..f7f43b6
--- a/lib/cmdlib/test.py
+++ b/lib/cmdlib/test.py
@@@ -109,11 -52,11 +109,14 @@@ class LUTestDelay(NoHooksLU)
      This expands the node list, if any.
  
      """
 -    self.needed_locks = {}
 +
 +    if self.op.duration <= 0:
 +      raise errors.OpPrereqError("Duration must be greater than zero")
  
+     if not self.op.no_locks and (self.op.on_nodes or self.op.on_master):
+       self.needed_locks[locking.LEVEL_NODE] = []
+ 
 +    self.op.on_node_uuids = []
      if self.op.on_nodes:
        # _GetWantedNodes can be used here, but is not always appropriate to use
        # this way in ExpandNames. Check LogicalUnit.ExpandNames docstring for
diff --cc src/Ganeti/HTools/Program/Harep.hs
index d257ed2,d3519fa..6599116
--- a/src/Ganeti/HTools/Program/Harep.hs
+++ b/src/Ganeti/HTools/Program/Harep.hs
@@@ -427,7 -423,7 +427,8 @@@ doRepair client delay instData (rtype, 
                              , opDelayOnNodes = []
                              , opDelayOnNodeUuids = Nothing
                              , opDelayRepeat = fromJust $ mkNonNegative 0
 +                            , opDelayInterruptible = False
+                             , opDelayNoLocks = False
                              } : opcodes
                else
                  opcodes
diff --cc src/Ganeti/JQueue.hs
index 303ac41,aa48ec8..dea4541
--- a/src/Ganeti/JQueue.hs
+++ b/src/Ganeti/JQueue.hs
@@@ -64,23 -66,15 +64,23 @@@ module Ganeti.JQueu
      , cancelJob
      , queueDirPermissions
      , archiveJobs
 +    -- re-export
 +    , Timestamp
 +    , InputOpCode(..)
 +    , QueuedOpCode(..)
 +    , QueuedJob(..)
      ) where
  
- import Control.Applicative (liftA2, (<|>))
+ import Control.Applicative (liftA2, (<|>), (<$>))
  import Control.Arrow (first, second)
 -import Control.Concurrent (forkIO)
 -import Control.Concurrent.MVar
 +import Control.Concurrent (forkIO, threadDelay)
  import Control.Exception
 +import Control.Lens (over)
  import Control.Monad
 +import Control.Monad.IO.Class
 +import Control.Monad.Trans (lift)
 +import Control.Monad.Trans.Maybe
- import Data.Functor ((<$), (<$>))
+ import Data.Functor ((<$))
  import Data.List
  import Data.Maybe
  import Data.Ord (comparing)
diff --cc src/Ganeti/OpCodes.hs
index 5609030,eb24b0a..d5b3e01
--- a/src/Ganeti/OpCodes.hs
+++ b/src/Ganeti/OpCodes.hs
@@@ -831,7 -814,7 +833,8 @@@ $(genOpCode "OpCode
       , pDelayOnNodes
       , pDelayOnNodeUuids
       , pDelayRepeat
 +     , pDelayInterruptible
+      , pDelayNoLocks
       ],
       "duration")
    , ("OpTestAllocator",
diff --cc src/Ganeti/OpParams.hs
index 6eaff4c,c330c83..7aaec81
--- a/src/Ganeti/OpParams.hs
+++ b/src/Ganeti/OpParams.hs
@@@ -236,7 -221,7 +237,8 @@@ module Ganeti.OpParam
    , pDelayOnNodes
    , pDelayOnNodeUuids
    , pDelayRepeat
 +  , pDelayInterruptible
+   , pDelayNoLocks
    , pIAllocatorDirection
    , pIAllocatorMode
    , pIAllocatorReqName
@@@ -1585,13 -1489,12 +1599,19 @@@ pDelayRepeat 
    defaultField [| forceNonNeg (0::Int) |] $
    simpleField "repeat" [t| NonNegative Int |]
  
 +pDelayInterruptible :: Field
 +pDelayInterruptible =
 +  withDoc "Allows socket-based interruption of a running OpTestDelay" .
 +  renameField "DelayInterruptible" .
 +  defaultField [| False |] $
 +  simpleField "interruptible" [t| Bool |]
 +
+ pDelayNoLocks :: Field
+ pDelayNoLocks =
+   withDoc "Don't take locks during the delay" .
+   renameField "DelayNoLocks" $
+   defaultTrue "no_locks"
+ 
  pIAllocatorDirection :: Field
  pIAllocatorDirection =
    withDoc "IAllocator test direction" .
diff --cc test/hs/Test/Ganeti/HTools/Instance.hs
index 9212548,60c6ba1..60099a0
--- a/test/hs/Test/Ganeti/HTools/Instance.hs
+++ b/test/hs/Test/Ganeti/HTools/Instance.hs
@@@ -35,9 -35,8 +35,9 @@@ module Test.Ganeti.HTools.Instanc
    , Instance.Instance(..)
    ) where
  
 +import Control.Arrow ((&&&))
+ import Control.Applicative ((<$>))
  import Control.Monad (liftM)
- import Data.Functor ((<$>))
  import Test.QuickCheck hiding (Result)
  
  import Test.Ganeti.TestHelper

-- 
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

Reply via email to