commit 6387dcf3b01ee5dce7a2c4abd438b877b34de462
Merge: 9b6d390 671d167
Author: Brian Foley <bpfo...@google.com>
Date:   Tue May 17 12:44:44 2016 +0100

    Merge branch 'stable-2.15' into stable-2.16
    
    * stable-2.15
      mcpu: Raise caught OpPrereqErrors with too few args
      Make EnsureDirs print chmod mode on errors
      Fix CLI option typo in NEWS file
    
    Signed-off-by: Brian Foley <bpfo...@google.com>

diff --cc test/py/ganeti.mcpu_unittest.py
index 54bd640,796c2ba..42446c7
--- a/test/py/ganeti.mcpu_unittest.py
+++ b/test/py/ganeti.mcpu_unittest.py
@@@ -33,14 -33,16 +33,17 @@@
  
  import unittest
  import itertools
+ import mocks
+ from cmdlib.testsupport.rpc_runner_mock import CreateRpcRunnerMock
  
  from ganeti import compat
 +from ganeti import errors
  from ganeti import mcpu
  from ganeti import opcodes
  from ganeti import cmdlib
  from ganeti import locking
 +from ganeti import serializer
+ from ganeti import ht
 -from ganeti import errors
  from ganeti import constants
  from ganeti.constants import \
      LOCK_ATTEMPTS_TIMEOUT, \
@@@ -177,42 -179,37 +180,73 @@@ class TestProcessResult(unittest.TestCa
      self.assertEqual(op2.comment, "foobar")
      self.assertEqual(op2.debug_level, 3)
  
+ class TestExecLU(unittest.TestCase):
+   class OpTest(opcodes.OpCode):
+     OP_DSC_FIELD = "data"
+     OP_PARAMS = [
+       ("data", ht.NoDefault, ht.TString, None),
+     ]
+ 
+   def setUp(self):
+     self.ctx = mocks.FakeContext()
+     self.cfg = self.ctx.GetConfig("ec_id")
+     self.rpc = CreateRpcRunnerMock()
+     self.proc = mcpu.Processor(self.ctx, "ec_id", enable_locks = False)
+     self.op = self.OpTest()
+     self.calc_timeout = lambda: 42
+ 
+   def testRunLU(self):
+     lu = mocks.FakeLU(self.proc, self.op, self.cfg, self.rpc, None)
+     self.proc._ExecLU(lu)
+ 
+   def testRunLUWithPrereqError(self):
+     prereq = errors.OpPrereqError(self.op, errors.ECODE_INVAL)
+     lu = mocks.FakeLU(self.proc, self.op, self.cfg, self.rpc, prereq)
+     self.assertRaises(errors.OpPrereqError, self.proc._LockAndExecLU,
+         lu, locking.LEVEL_CLUSTER, self.calc_timeout)
+ 
+   def testRunLUWithPrereqErrorMissingECode(self):
+     prereq = errors.OpPrereqError(self.op)
+     lu = mocks.FakeLU(self.proc, self.op, self.cfg, self.rpc, prereq)
+     self.assertRaises(errors.OpPrereqError, self.proc._LockAndExecLU,
+         lu, locking.LEVEL_CLUSTER, self.calc_timeout)
+ 
  
 +class TestSecretParams(unittest.TestCase):
 +  def testSecretParamsCheckNoError(self):
 +    op = opcodes.OpInstanceCreate(
 +      instance_name="plain.example.com",
 +      pnode="master.example.com",
 +      disk_template=constants.DT_PLAIN,
 +      mode=constants.INSTANCE_CREATE,
 +      nics=[{}],
 +      disks=[{
 +        constants.IDISK_SIZE: 1024
 +      }],
 +      osparams_secret= serializer.PrivateDict({"foo":"bar", "foo2":"bar2"}),
 +      os_type="debian-image")
 +
 +    try:
 +      mcpu._CheckSecretParameters(op)
 +    except errors.OpPrereqError:
 +      self.fail("OpPrereqError raised unexpectedly in _CheckSecretParameters")
 +
 +  def testSecretParamsCheckWithError(self):
 +    op = opcodes.OpInstanceCreate(
 +      instance_name="plain.example.com",
 +      pnode="master.example.com",
 +      disk_template=constants.DT_PLAIN,
 +      mode=constants.INSTANCE_CREATE,
 +      nics=[{}],
 +      disks=[{
 +        constants.IDISK_SIZE: 1024
 +      }],
 +      osparams_secret= serializer.PrivateDict({"foo":"bar",
 +                                              "secret_param":"<redacted>"}),
 +      os_type="debian-image")
 +
 +    self.assertRaises(errors.OpPrereqError, mcpu._CheckSecretParameters, op)
 +
 +
  if __name__ == "__main__":
    testutils.GanetiTestProgram()

Reply via email to