Skip to content
Snippets Groups Projects
  1. Oct 25, 2012
  2. Oct 24, 2012
  3. Oct 23, 2012
  4. Oct 22, 2012
  5. Oct 19, 2012
  6. Oct 18, 2012
  7. Oct 17, 2012
    • Iustin Pop's avatar
      Generalise the Result type · 93be1ced
      Iustin Pop authored
      
      Currently, our error monad—Result—has a plain string error type. This
      is not good, as we don't have structured errors, we can't pass back
      proper error information to Python code, etc.
      
      To solve this, we generalise this type as 'GenericResult a', and make
      Result an alias to 'GenericResult String' for compatibility with the
      old code. New error hierarchies will be introduced as different
      types. Furthermore, we generalise our helper functions too, so that
      they can work on any 'GeneralInstance a' type, not only Result.
      
      There are two small drawbacks to this generalisation. First, a Monad
      instance requires (at least for the way we use it) a 'fail :: String
      -> m a' instance, so we need to be able to build an 'a' value from a
      string; therefore, we can implement the Monad instance only for a
      newly-introduced typeclass, 'FromString', which requires the needed
      conversion function. Second, due to the fact that 'String' is a type
      alias (for [Char]) instead of an actual type, we need to enable the
      FlexibleInstances language pragma; as far as I know, this has no
      significant drawbacks.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      93be1ced
    • Dato Simó's avatar
      Merge branch 'devel-2.6' into master · 659d769d
      Dato Simó authored
      
      * devel-2.6:
        htools-excl.test: add test case for exclusion tags in hbal
        Instance.hs: rename 'tags' to 'exclTags', provide 'allTags'
        Group.hs: add 'allTags'; adjust loaders and test data for it
        Add hbal-excl-tags.data to Makefile.am, missed in 0397694e
      
      Conflicts:
      	Makefile.am: hbal-excl-tags.data moved under htest/
      	htools/Ganeti/HTools/Luxi.hs: types from Qlang are now used
      	htools/Ganeti/HTools/QC.hs: defGroup definition now in TestHTools.hs
      	lib/cmdlib.py: IAllocator class now in iallocator.py
      	test/htools-excl.test: moved under htest/
      
      Signed-off-by: default avatarDato Simó <dato@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      659d769d
Loading