Skip to content
Snippets Groups Projects
  1. Oct 21, 2010
  2. Oct 20, 2010
  3. Oct 05, 2010
  4. Sep 30, 2010
  5. Sep 20, 2010
    • Michael Hanselmann's avatar
      jqueue: Change model from per-job to per-opcode processing · be760ba8
      Michael Hanselmann authored
      
      In order to support priorities, the processing of jobs needs to be
      changed. Instead of processing jobs as a whole, the code is changed to
      process one opcode at a time and then return to the queue. See the
      Ganeti 2.3 design document for details.
      
      This patch does not yet use priorities for acquiring locks.
      
      The enclosed unittests increase the test coverage of jqueue.py from
      about 34% to 58%. Please note that they also test some parts not added
      by this patch, but testing them became only possible with some
      infrastructure added by this patch. For the first time, many
      implications and assumptions for the job queue are codified in these
      unittests.
      
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      be760ba8
  6. Sep 16, 2010
  7. Sep 14, 2010
  8. Sep 13, 2010
  9. Sep 02, 2010
  10. Aug 17, 2010
  11. Jul 28, 2010
  12. Jul 26, 2010
  13. Jul 23, 2010
  14. Jul 15, 2010
  15. Jul 08, 2010
  16. Jul 06, 2010
  17. Jul 01, 2010
  18. Jun 23, 2010
  19. May 18, 2010
  20. Apr 16, 2010
  21. Apr 12, 2010
    • Iustin Pop's avatar
      Add a identify-defaults options for import · e588764d
      Iustin Pop authored
      
      When importing an instance, all the saved valued will be used as
      explicitly specified values, overriding the cluster defaults. This means
      export+import will change the status (from default to explicitly
      specified) of parameters.
      
      This patch adds a new option that changes the behaviour to identify
      parameter values which are equal to the current cluster defaults and
      mark them as such. It does this for hv, be and nic parameters.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      e588764d
  22. Apr 08, 2010
  23. Mar 17, 2010
  24. Mar 15, 2010
    • Iustin Pop's avatar
      Implement conversion from plain to drbd · e29e9550
      Iustin Pop authored
      
      This patch adds a new mode to instance modify, the changing of the disk
      template. For now only plain to drbd conversion is supported, and the
      new secondary node must be specified manually (no iallocator support).
      
      The procedure for conversion works as follows:
      
      - a completely new disk template is created, matching the count, size
        and mode of the instance's current disks
      - we create manually (not via _CreateDisks) all the missing volumes
      - we rename on the primary the LVs to the new name
      - we create manually the DRBD devices
      
      Failures during the creation of volumes will leave orphan volumes.
      Failure during the rename might leave some disks renamed and some not,
      leading to an inconsistent instance.
      
      Once the disks are renamed, we update the instance information and wait
      for resync. Any failures of the DRBD sync must be manually handled (like
      a normal failure, e.g. by running replace-disks, etc.).
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      e29e9550
  25. Mar 10, 2010
  26. Mar 09, 2010
    • Iustin Pop's avatar
      Rework the node modify for mc-demotion · 601908d0
      Iustin Pop authored
      
      The current code in LUSetNodeParms regarding the demotion from master
      candidate role is complicated and duplicates the code in ConfigWriter,
      where such decisions should be made. Furthermore, we still cannot demote
      nodes (not even with force), if other regular nodes exist.
      
      This patch adds a new opcode attribute ‘auto_promote’, and changes the
      decision tree as follows:
      
      - if the node will be set to offline or drained or explicitly demoted
        from master candidate, and this parameter is set, then we lock all
        nodes in ExpandNames()
      - later, in CheckPrereq(), if the node is
        indeed a master candidate, and the future state (as computed via
        GetMasterCandidateStats with the current node in the exception list)
        has fewer nodes than it should, and we didn't lock all nodes, we exit
        with an exception
      - in Exec, if we locked all nodes, we do a AdjustCandidatePool() run, to
        ensure nodes are locked as needed (we do it before updating the node
        to remove a warning, and prevent the situation that if the LU fails
        between these, we're not left with an inconsistent state)
      
      Note that in Exec we run the AdjustCP irrespective of any node state
      change (just based on lock status), so we might simplify the CheckPrereq
      even more by not checking the future state, basically requiring
      auto_promote/lock_all for master candidates, since the case where we
      have more than needed master candidates is rarer; OTOH, this would prevent
      manual promotion ahead of time of another node, which is why I didn't
      choose this way.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      601908d0
    • René Nussbaumer's avatar
      Add support for per-os-hypervisor parameters · 17463d22
      René Nussbaumer authored
      
      This patch implements all modifications to support per-os-hypervisor
      parameters in the framework.
      
      Signed-off-by: default avatarRené Nussbaumer <rn@google.com>
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      17463d22
  27. Feb 22, 2010
  28. Feb 12, 2010
  29. Feb 11, 2010
  30. Feb 10, 2010
    • Iustin Pop's avatar
      Fix dumpers/loaders after __slots__ cleanup · adf385c7
      Iustin Pop authored
      
      Commit 154b9580 changed (correctly) the __slots__ usage, but this broke
      dumpers/loaders since we relied directly on the own class __slots__
      field.
      
      To compensate, we introduce a simple function for computing the slots
      across all parent classes (if any), and use this instead of __slots__
      directly.
      
      Note: the _all_slots() function is duplicated between objects.py and
      opcodes.py, but the only other options is to introduce a lang.py for
      such very basic language items.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      adf385c7
Loading