Skip to content
Snippets Groups Projects
  1. Jul 01, 2010
    • Michael Hanselmann's avatar
      RAPI client: Switch to pycURL · 2a7c3583
      Michael Hanselmann authored
      
      Currently the RAPI client uses the urllib2 and httplib modules from
      Python's standard library. They're used with pyOpenSSL in a very fragile
      way, and there are known issues when receiving large responses from a RAPI
      server.
      
      By switching to PycURL we leverage the power and stability of the
      widely-used curl library (libcurl). This brings us much more flexibility
      than before, and timeouts were easily implemented (something that would
      have involved a lot of work with the built-in modules).
      
      There's one small drawback: Programs using libcurl have to call
      curl_global_init(3) (available as pycurl.global_init) while exactly one
      thread is running (e.g. before other threads) and are supposed to call
      curl_global_cleanup(3) (available as pycurl.global_cleanup) upon exiting.
      See the manpages for details. A decorator is provided to simplify this.
      
      Unittests for the new code are provided, increasing the test coverage of
      the RAPI client from 74% to 89%.
      
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      2a7c3583
  2. Jun 29, 2010
  3. Jun 28, 2010
    • Guido Trotter's avatar
      Remove pred from compat.any/all · 403f5172
      Guido Trotter authored
      
      This makes it compatible with the python builtin, and we can even use
      the builtin when running under the right version of python. The all and
      any functions are renamed to _all and _any, so that they can be tested,
      and (non)existing unittests are updated (translation: there are no unit
      tests, so none are updated).
      
      This patch also moves the code deciding which partial to use next to
      the definition of the _partial function, rather than after TryToRoman.
      
      Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      403f5172
  4. Jun 23, 2010
  5. Jun 09, 2010
  6. Jun 01, 2010
  7. May 18, 2010
  8. May 03, 2010
  9. Apr 21, 2010
  10. Apr 20, 2010
  11. Apr 15, 2010
  12. Apr 13, 2010
  13. Apr 09, 2010
  14. Apr 06, 2010
  15. Mar 23, 2010
  16. Mar 18, 2010
  17. Mar 17, 2010
  18. Mar 15, 2010
    • Michael Hanselmann's avatar
      Rightname confd's HMAC key · 6b7d5878
      Michael Hanselmann authored
      
      Currently, the ganeti-confd's HMAC key is called “cluster HMAC key” or
      simply “HMAC key” everywhere. With the implementation of inter-cluster
      instance moves, another HMAC key will be introduced for signing critical
      data. They can not be the same, so this patch clarifies the purpose of the
      “cluster HMAC key” by renaming it. The actual file name is not changed.
      
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      6b7d5878
  19. Mar 12, 2010
  20. Mar 11, 2010
  21. Mar 08, 2010
  22. Feb 26, 2010
  23. Feb 11, 2010
  24. 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
  25. Feb 09, 2010
    • Iustin Pop's avatar
      Add an early release lock/storage for disk replace · 7ea7bcf6
      Iustin Pop authored
      
      This patch adds an early_release parameter in the OpReplaceDisks and
      OpEvacuateNode opcodes, allowing earlier release of storage and more
      importantly of internal Ganeti locks.
      
      The behaviour of the early release is that any locks and storage on all
      secondary nodes are released early. This is valid for change secondary
      (where we remove the storage on the old secondary, and release the locks
      on the old and new secondary) and replace on secondary (where we remove
      the old storage and release the lock on the secondary node.
      
      Using this, on a three node setup:
      
      - instance1 on nodes A:B
      - instance2 on nodes C:B
      
      It is possible to run in parallel a replace-disks -s (on secondary) for
      instances 1 and 2.
      
      Replace on primary will remove the storage, but not the locks, as we use
      the primary node later in the LU to check consistency.
      
      It is debatable whether to also remove the locks on the primary node,
      and thus making replace-disks keep zero locks during the sync. While
      this would allow greatly enhanced parallelism, let's first see how
      removal of secondary locks works.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      7ea7bcf6
Loading