1. 22 Jun, 2010 2 commits
  2. 14 Jun, 2010 2 commits
    • Iustin Pop's avatar
      Fix a bug in instance startup with custom hvparams · c47478f9
      Iustin Pop authored
      
      
      Since the introduction of OS-specific hvparams, we shouldn't ever use
      objects.FillDict directly for instances, but instead go via the cluster
      object. Otherwise the os_hvp will be ignored.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      c47478f9
    • Iustin Pop's avatar
      Fix unsafe variant initializer in _TryOSFromDisk · 845da3e8
      Iustin Pop authored
      
      
      In case an OS has inconsistent declarations, we might get into a case
      where one node reports a valid variants list (with OS API >=15), and
      another node has OS API < 15, in which case its supported_variants gets
      the default value of None. This leads to the same variable having
      inconsistent data types, which leads to subtle bugs later: instead of
      reporting something like "Inconsistent OS API versions", the LU exits
      with a run-time exception. Furthermore, in another datapath, variants is
      initialized to '[]' in case of OS diagnose failures.
      
      The patch changes _TryOSFromDisk to initialize variants to '[]' for
      OS api level below 15, and changes the variants calculation in
      DiagnoseOS to be more readable.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      845da3e8
  3. 11 Jun, 2010 2 commits
  4. 04 Jun, 2010 2 commits
  5. 17 May, 2010 2 commits
  6. 11 May, 2010 1 commit
  7. 03 May, 2010 2 commits
  8. 22 Apr, 2010 1 commit
  9. 21 Apr, 2010 1 commit
  10. 20 Apr, 2010 1 commit
  11. 16 Apr, 2010 3 commits
  12. 15 Apr, 2010 1 commit
    • Iustin Pop's avatar
      Fix cluster behaviour with disabled file storage · 0e3baaf3
      Iustin Pop authored
      
      
      There are a few issues with disabled file storage:
      - cluster initialization is broken by default, as it uses the 'no'
        setting which is not a valid path
      - some other parts of the code require the file storage dir to be a
        valid path; we workaround by skipping such code paths when it is
        disabled
      
      A side effect is that we abstract the storage type checks into a
      separate function and add validation in RepairNodeStorage (previously a
      luxi client which didn't use cli.py and submitted an invalid type would
      get "storage units of type 'foo' can not be repaired").
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      0e3baaf3
  13. 12 Apr, 2010 11 commits
  14. 08 Apr, 2010 1 commit
  15. 23 Mar, 2010 4 commits
    • Guido Trotter's avatar
      Allow file storage to be grown · 2c42c5df
      Guido Trotter authored
      
      Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      2c42c5df
    • Guido Trotter's avatar
      Fix burnin error when trying to grow a file volume · 728489a3
      Guido Trotter authored
      
      
      Abstract the growable disk types in a ganeti constants, and only run
      disk grow, from burnin, on them.
      Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      728489a3
    • Iustin Pop's avatar
      Some epydoc fixes · 3a488770
      Iustin Pop authored
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      3a488770
    • Iustin Pop's avatar
      A rewrite of LUClusterVerify · 02c521e4
      Iustin Pop authored
      
      
      Per issue 90, current cluster verify is very very brittle. It's one of
      the oldest pieces of code, with only additions without cleanups over the
      last years.
      
      Among its problems:
      
      - data initialization interspersed with verification of RPC results,
        leading to non-initialized data for some branches
      - due to the above, we order strictly some checks and we have the case
        where a bad node time result will skip checking of node volumes
      - many many local variables, with each new check adding a new dict,
        leading to a spaghetti of dicts in the main Exec function
      - monolithic code, both Exec() and _NodeVerify() do a lot of
        independent checks
      
      This patch does an imperfect rewrite, but at least we gain:
      
      - a clear infrastructure for adding more checks (the new NodeImage
        class, with it's clear and documented fields), and removal of most
        per-node dicts from the Exec() function
      - the new NodeImage object should allow better type safety, e.g. by
        allowing pylint to check the actual object attributes rather than
        strings as dict keys
      - a-priori initialization of data fields, eliminating the need to
        introduce dependencies between checks
      - per-result-key status field, allowing elimination of duplicate error
        messages (where we want)
      - split of most independent checks into separate functions, for greater
        clarity
      
      The new code, being new will probably introduce for the short term more
      bugs than it removes. However, it should offer a much better way for
      extending cluster verify in the future.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      02c521e4
  16. 17 Mar, 2010 3 commits
  17. 16 Mar, 2010 1 commit