LGTM On Feb 28 14:33, Klaus Aehlig wrote: > > > commit efeb3e3c958a82de1fe6c9b0a83c6b4dd31220f9 > Merge: f3aebf6 2211467 > Author: Klaus Aehlig <[email protected]> > Date: Fri Feb 28 14:20:10 2014 +0100 > > Merge branch 'stable-2.11' into master > > * stable-2.11 > Setting correct permissions of client cert (split-user) > Add luxid group to 'users-setup' > Add some whitespace to fix formatting > Consider old client cert only when available > Fix return of 'Validate' > Have SubmitManyJobs add entries to the reason trail > Fix the dependencies of Makefile.ghc > Include mond and confd only when configured > Add reason for job pickup to the trail > Add reason trail pickup constant > Make the AddReason method public > Have LuxiD add the "gnt:opcode" reason trail entry > Add function for extending the reason trail in Luxid > Update INSTALL wrt missing dependencies > hsqueeze also partially implemented in 2.11 > While at it, fix the order of imports in OpCodes.hs > Add a function for generating OpCode reason src. names > Add a TH function for lower-cased stripped opcode names > Generalize genConstrToStr to custom monadic functions > > Conflicts: > Makefile.am: manually apply 7959b875 on master's version > src/Ganeti/Query/Server.hs: manually apply 0c779689 on > master's version > > Signed-off-by: Klaus Aehlig <[email protected]> > > diff --cc Makefile.am > index 520e094,380f705..cc76bc2 > --- a/Makefile.am > +++ b/Makefile.am > @@@ -619,12 -593,8 +619,10 @@@ HS_MYEXECLIB_PROGS > endif > > # Haskell programs to be compiled by "make really-all" > - HS_COMPILE_PROGS= \ > + HS_COMPILE_PROGS = \ > src/ganeti-kvmd \ > + src/ganeti-metad \ > - src/ganeti-mond \ > - src/hconfd \ > + src/ganeti-wconfd \ > src/hluxid \ > src/hs2py \ > src/rpc-test > diff --cc doc/users/groups.in > index a007718,667ba40..d10df70 > --- a/doc/users/groups.in > +++ b/doc/users/groups.in > @@@ -3,6 -3,6 +3,7 @@@ > @GNTMASTERUSER@ > @GNTRAPIUSER@ > @GNTCONFDUSER@ > +@GNTWCONFDUSER@ > @GNTLUXIDUSER@ > + @GNTLUXIDGROUP@ > @GNTMONDUSER@ > diff --cc lib/objects.py > index 6c960c6,00a9467..676280d > --- a/lib/objects.py > +++ b/lib/objects.py > @@@ -212,9 -211,19 +212,19 @@@ class ConfigObject(outils.ValidatedSlot > def Validate(self): > """Validates the slots. > > + This method returns L{None} if the validation succeeds, or raises > + an exception otherwise. > + > + This method must be implemented by the child classes. > + > + @rtype: NoneType > + @return: L{None}, if the validation succeeds > + > + @raise Exception: validation fails > + > """ > > - def ToDict(self): > + def ToDict(self, _with_private=False): > """Convert to a dict holding only standard python types. > > The generic routine just dumps all of this object's attributes in > diff --cc src/Ganeti/Query/Server.hs > index 397ad4b,bdf1fac..a2c2f10 > --- a/src/Ganeti/Query/Server.hs > +++ b/src/Ganeti/Query/Server.hs > @@@ -225,21 -221,24 +225,21 @@@ handleCall _ _ cfg (QueryConfigValues f > answerEval <- sequence answer > return . Ok . showJSON $ answerEval > > -handleCall qlock qstat cfg (SubmitJobToDrainedQueue ops) = > - do > +handleCall _ _ cfg (QueryExports nodes lock) = > + handleClassicQuery cfg (Qlang.ItemTypeOpCode Qlang.QRExport) > + (map Left nodes) ["node", "export"] lock > + > +handleCall qlock qstat cfg (SubmitJobToDrainedQueue ops) = runResultT $ do > let mcs = Config.getMasterCandidates cfg > - jobid <- allocateJobId mcs qlock > - case jobid of > - Bad s -> return . Bad . GenericError $ s > - Ok jid -> do > - ts <- currentTimestamp > - job <- liftM (extendJobReasonTrail . setReceivedTimestamp ts) > - $ queuedJobFromOpCodes jid ops > - qDir <- queueDir > - write_result <- writeJobToDisk qDir job > - case write_result of > - Bad s -> return . Bad . GenericError $ s > - Ok () -> do > - _ <- replicateManyJobs qDir mcs [job] > - _ <- forkIO $ enqueueNewJobs qstat [job] > - return . Ok . showJSON . fromJobId $ jid > + jid <- mkResultT $ allocateJobId mcs qlock > + ts <- liftIO currentTimestamp > - job <- liftM (setReceivedTimestamp ts) > ++ job <- liftM (extendJobReasonTrail . setReceivedTimestamp ts) > + $ queuedJobFromOpCodes jid ops > + qDir <- liftIO queueDir > + mkResultT $ writeJobToDisk qDir job > + liftIO $ replicateManyJobs qDir mcs [job] > + _ <- liftIO . forkIO $ enqueueNewJobs qstat [job] > + return . showJSON . fromJobId $ jid > > handleCall qlock qstat cfg (SubmitJob ops) = > do > > -- > 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
-- Jose Antonio Lopes Ganeti Engineering Google Germany GmbH Dienerstr. 12, 80331, München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Christine Elizabeth Flores Steuernummer: 48/725/00206 Umsatzsteueridentifikationsnummer: DE813741370
