1. 25 May, 2009 1 commit
    • Iustin Pop's avatar
      hail: unify the post-processing of results · f826c5e0
      Iustin Pop authored
      Both allocate and relocate compute new node lists, whose score must be
      ranked and the best option chosen. This means we can convert the code to
      a generic function.
      f826c5e0
  2. 24 May, 2009 3 commits
  3. 23 May, 2009 13 commits
  4. 22 May, 2009 3 commits
    • Iustin Pop's avatar
      Add back names to nodes/instances · 2727257a
      Iustin Pop authored
      In order to simplify the data structures, we add back the name on the
      node and instance objects. We still keep the index for, well, indexing,
      but we will use the name directly from the object, in order to get rid
      of the ktn/kti arguments which are passed around everywhere.
      2727257a
    • Iustin Pop's avatar
      More code reorganizations · e4c5beaf
      Iustin Pop authored
      This new big patch does a couple of more cleanups in the loading of data
      chapter:
        - introduce a Types module that holds most types (except the base
          Node/Instance/etc.) so that multiple other modules can use these
          (instead of only Cluster and its users)
        - bring IAlloc.hs in line with the recent changes of providing data
          types and not strings
        - removal of obsolete Utils.hs json-related functions
      e4c5beaf
    • Iustin Pop's avatar
      Rework the loader model · 040afc35
      Iustin Pop authored
      This big patch changes the loader model from “string data as common
      format” to actual object structures as common format.
      
      The text loading function move from Cluster.hs to a new Text.hs module,
      some common functions are moved to a new Loader.hs module, and the
      return values from both Rapi.hs and Text.hs are uniformized.
      040afc35
  5. 21 May, 2009 5 commits
  6. 20 May, 2009 9 commits
    • Iustin Pop's avatar
      Add initial validation checks in Cluster.loadData · 9d3fada5
      Iustin Pop authored
      This patch converts loadTabular and loadData to a monadic form, thus
      allowing meaningful error messages from the node/instance load routines.
      9d3fada5
    • Iustin Pop's avatar
      Small syntax improvement · 1297ce13
      Iustin Pop authored
      D'oh, one can extract from a wrapped variable, not only from functions.
      1297ce13
    • Iustin Pop's avatar
      Convert Cluster.loadData to Result return · fd22ce8e
      Iustin Pop authored
      This patch changes Cluster.loadData to return a Result, instead of
      directly the values; this will allow us to return meaningful error
      values (e.g. when an instances lives on unknown node) rather than simply
      abort. Currently the result is always an Ok, the actual signalling of
      errors will come later.
      
      Its callers are changed to accommodate for the new return type and to
      display errors as needed.
      fd22ce8e
    • Iustin Pop's avatar
      Allow hscan to save data for fully-spec'd URLs · 0944090a
      Iustin Pop authored
      In case we pass a fully-specified URL to hscan, currently it will use as
      is and that means the directory in which we want to save the status
      files changes from what we mean. This patch changes hscan to replace all
      slashes in the cluster name with underscores when generating the output
      filenames.
      0944090a
    • Iustin Pop's avatar
      Allow overriding the RAPI port/scheme · e015b554
      Iustin Pop authored
      This patch adds a very dumb way to override the port and scheme for
      RAPI: if the master string doesn't contain a colon, we consider it a
      simple hostname specification, and thus prepend ‘https://’ and append
      ‘:5080’, (the default RAPI port); otherwise, we consider it a fully
      specified URL, and don't do any mangling to it.
      
      This allows to use saved RAPI responses in testing, with the “file://”
      scheme, or to use another port or non https mode with an actual RAPI
      instance.
      e015b554
    • Iustin Pop's avatar
      Remove some 1.2 specific code · ba00ad4d
      Iustin Pop authored
      Now that we dropped 1.2 compatibility, we can removed the special casing
      for RAPI differences.
      ba00ad4d
    • Iustin Pop's avatar
      Generalize some Result function into monad ones · 5aa48dbe
      Iustin Pop authored
      We don't really needed, but is more clean like this.
      5aa48dbe
    • Iustin Pop's avatar
      Switch from hand-written monads to a real one · 942403e6
      Iustin Pop authored
      This big patch converts from our home-grown monad-like constructs
      (the Either stuff) to a real, Either-like-but-another-name monad.
      
      We introduce a “Result a” monad, and this allows dropping many of the
      extra constructs. Hopefully the code is also more clear.
      
      Many of the functions could now be written in a generic-monad style,
      instead of Result specifically, but that will come in future patches.
      
      IAlloc.hs also has some unrelated patches.
      942403e6
    • Iustin Pop's avatar
      Small changes to the IAlloc module · 144f190b
      Iustin Pop authored
      Adding a small request type data structure.
      144f190b
  7. 19 May, 2009 4 commits
  8. 18 May, 2009 2 commits
    • Iustin Pop's avatar
      Update the IAlloc module · 3f6af65c
      Iustin Pop authored
      We know have a working parseData function that returns the node and
      instance data. This uncovered bad support for non-drbd instances 
      3f6af65c
    • Iustin Pop's avatar
      Move the JSON utilities to Utils.hs · 9ba5c28f
      Iustin Pop authored
      This patch moves the generic/reusable JSON functions to Utils.hs, so
      that they're shared between RAPI/IAlloc.
      9ba5c28f