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

Reply via email to