LGTM
On Tuesday, May 17, 2016 at 2:11:21 PM UTC+1, Brian Foley wrote: > > commit 314d7a116027a1aaa925abe0290174a368ac2179 > Merge: 99c2b44 20c24a8 > Author: Brian Foley <[email protected]> > Date: Tue May 17 13:45:23 2016 +0100 > > Merge branch 'stable-2.17' > > * stable-2.17 > <nothing> > > * stable-2.16 > Fix LogicalVolume Attach failure on missing path > Set USE_VERSION_FULL=no if --enable-versionfull=no > Generate concatenated error strings in parser > Make the TH fieldsDictsKeys more efficient > Don't verify disks when all disk templates are ext > Improve test coverage for block device creation > Docstring for LUClusterVerifyGroup > Fix broken parameters in storage create methods > Implement localized cache for lvs commands > > * 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 > > Manually fix up python tests by adding the new HooksAbortCallBack to > FakeLU, and update FakeConfig to return valid node UUIDs as tested by > _ExecLU instead of dummy node names. > > Signed-off-by: Brian Foley <[email protected]> > > diff --cc test/py/mocks.py > index 649b032,406caca..66b9cf1 > --- a/test/py/mocks.py > +++ b/test/py/mocks.py > @@@ -52,7 -58,7 +58,11 @@@ class FakeConfig(object) > return True > > def GetNodeList(self): > -- return ["a", "b", "c"] > ++ return [ > ++ "01234567-89ab-cdef-fedc-aaaaaaaaaaaa", > ++ "01234567-89ab-cdef-fedc-bbbbbbbbbbbb", > ++ "01234567-89ab-cdef-fedc-cccccccccccc" > ++ ] > > def GetRsaHostKey(self): > return FAKE_CLUSTER_KEY > @@@ -64,7 -70,7 +74,7 @@@ > return "test.cluster" > > def GetMasterNode(self): > -- return "a" > ++ return "01234567-89ab-cdef-fedc-aaaaaaaaaaaa" > > def GetMasterNodeName(self): > return netutils.Hostname.GetSysName() > @@@ -139,3 -153,50 +157,53 @@@ class FakeGetentResolver(object) > > def LookupGid(self, gid): > return "group%s" % gid > + > + class FakeLU(object): > + HPATH = "fake-lu" > + HTYPE = None > + > + def __init__(self, processor, op, cfg, rpc_runner, prereq_err): > + self.proc = processor > + self.cfg = cfg > + self.op = op > + self.rpc = rpc_runner > + self.prereq_err = prereq_err > + > + self.needed_locks = {} > + self.opportunistic_locks = dict.fromkeys(locking.LEVELS, False) > + self.dont_collate_locks = dict.fromkeys(locking.LEVELS, False) > + self.add_locks = {} > + > + self.LogWarning = processor.LogWarning > + > + def CheckArguments(self): > + pass > + > + def ExpandNames(self): > + pass > + > + def DeclareLocks(self, level): > + pass > + > + def CheckPrereq(self): > + if self.prereq_err: > + raise self.prereq_err > + pass > + > + def Exec(self, feedback_fn): > + pass > + > + def BuildHooksNodes(self): > + return ([], []) > + > + def BuildHooksEnv(self): > + return {} > + > + def PreparePostHookNodes(self, post_hook_node_uuids): > + return [] > + > + def HooksCallBack(self, phase, hook_results, feedback_fn, lu_result): > + return lu_result > ++ > ++ def HooksAbortCallBack(self, phase, feedback_fn, exception): > ++ pass >
