1. 20 Jan, 2011 2 commits
  2. 01 Dec, 2010 1 commit
  3. 28 Oct, 2010 2 commits
    • Michael Hanselmann's avatar
      Add support and checks for version in LUXI · e986f20c
      Michael Hanselmann authored
      
      
      A new constant, LUXI_VERSION, is used to verify the peer's version. The
      version is optional, so old(er) clients and servers talking to peers not
      supporting it won't break. Example with mismatching library:
      
      $ gnt-instance list
      Unhandled Ganeti error: LUXI version mismatch, server 2020000, request
      1010000
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      e986f20c
    • Iustin Pop's avatar
      Add support for vm_capable in cluster verify · 8964ee14
      Iustin Pop authored
      
      
      The method to make vm_capable integrate easily into cluster verify is as follows:
      
      - we add a new NV_VMNODES that represents *non*-vm-capable nodes
      - the LU populates this list (it's expected that non-vm_capable nodes
        are few compared to vm_capable nodes)
      - backend skips the checks that are related to VM hosting
      - in the LU, we reorder the VM-related checks so that they occur after
        the non-VM (generic) tests, and we only execute them conditionally
      
      Additionally, we add some support to the instance checks to detect
      instances living on bad nodes.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      8964ee14
  4. 26 Oct, 2010 2 commits
  5. 22 Oct, 2010 1 commit
  6. 05 Oct, 2010 1 commit
    • Miguel Di Ciurcio Filho's avatar
      kvm: Introduce support for -mem-path · 4f958b0b
      Miguel Di Ciurcio Filho authored
      
      
      Using hugepages, KVM instances can get a good performance boost. To
      activate that, we need to pass the -mem-path argument to KVM along with
      the mount point of the hugetlbfs file system on the node.
      
      For the sake of memory availability computation, we use the -mem-prealloc
      argument when enabling hugepages, so KVM will reserve all hugepages it
      needs when it starts. This avoids allocating an instance on a node that
      will not have enough pages in case other instance needs more than what
      is available after it boots.
      Signed-off-by: default avatarMiguel Di Ciurcio Filho <miguel.filho@gmail.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      4f958b0b
  7. 30 Sep, 2010 1 commit
  8. 22 Sep, 2010 1 commit
  9. 14 Sep, 2010 1 commit
  10. 13 Sep, 2010 2 commits
  11. 06 Sep, 2010 1 commit
  12. 23 Aug, 2010 1 commit
  13. 19 Aug, 2010 3 commits
  14. 18 Aug, 2010 1 commit
  15. 30 Jul, 2010 2 commits
  16. 23 Jul, 2010 1 commit
  17. 21 Jul, 2010 1 commit
  18. 20 Jul, 2010 1 commit
  19. 19 Jul, 2010 1 commit
    • Iustin Pop's avatar
      Introduce git reference/tag tracking for debugging · 84a12e40
      Iustin Pop authored
      
      
      This patch adds a new vcs-version file that is generated via git (and
      can be adapted if VCS is changed) and then embebbded as VCS_VERSION in
      the constants module.
      
      This means two things:
      - local modifications without committing to git (or when using a tar.gz
        archive + mods) will not be reflected
      - version is fixed at the time of the last make regen-vcs-version (dist time,
        or devel/upload which calls this)
      
      Thus this is more geared at developers rather than end users.
      
      The patch:
      
      - adds rules for generating the vcs-version file
      - adds a dist-hook for re-generating the file (if possible) and copying
        the updated version to the distdir
      - modifies devel/upload to re-generate the file before upload
      
      The output of --version will look like:
      gnt-cluster (ganeti v2.2.0beta0-184-gebca7e6) 2.2.0~beta0
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      84a12e40
  20. 16 Jul, 2010 2 commits
  21. 15 Jul, 2010 2 commits
  22. 07 Jul, 2010 1 commit
  23. 06 Jul, 2010 3 commits
  24. 30 Jun, 2010 3 commits
  25. 24 Jun, 2010 1 commit
  26. 23 Jun, 2010 2 commits
    • Iustin Pop's avatar
      Introduce a micro type system for opcodes · 3636400f
      Iustin Pop authored
      
      
      Currently, we have one structual validation for opcode attributes: the
      _OP_REQP, which checks that a given attribute is not 'None', and the
      rest of the checks are done at runtime. This means our type system has
      two types: None versus Not-None.
      
      We have been hit many times by small, trivial bugs in this area, and
      only a huge amount of unittest and/or hand-written checks would ensure
      that we cover all possibilities. This patch attempts to redress the
      needs for manual checks by introducing a micro-type system for the
      validation of the opcode attributes. What we lose, from the start, are
      the custom error messages (e.g. "Invalid reboot mode, choose one of …",
      or "The disk index must be a positive integer"). What we gain is the
      ability to express easily things as:
      
      - this parameter must be None or an int
      - this parameter must be a non-empty list
      - this parameter must be either none or a list of dictionaries with keys
        from the list of valid hypervisors and the values dictionaries with
        keys strings and values either None or strings; furthermore, the list
        must be non-empty
      
      These examples show that we have a composable (as opposed to just a few
      static types) system, and that we can nest it a few times (just for
      sanity; we could nest it up to stack depth).
      
      We also gain lots of ))))))), which is not that nice :)
      
      The current patch moves the existing _OP_REQP to the new framework, but
      if accepted, a lot more validations should move to it. In the end, we
      definitely should declare a type for all the opcode parameters
      (eventually moving _OP_REQP directly to opcodes.py and validating in the
      load/init case, and build __slots__ from it).
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      3636400f
    • Iustin Pop's avatar
      Add OS verification support to cluster verify · b0d85178
      Iustin Pop authored
      
      
      For this, we needed to extend the NodeImage class with a few extra
      variables, and we do a trick in the node verification where we pick the
      first node that returned valid OS data as the reference node, and then
      we compare all other nodes against it.
      
      The checks added are:
      
      - consistency of DiagnoseOS responses
      - multiple paths for an OS
      - inconsistent OS between a reference node and the current node
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      b0d85178