1. 11 Dec, 2008 1 commit
    • Iustin Pop's avatar
      Fix epydoc format warnings · c41eea6e
      Iustin Pop authored
      This patch should fix all outstanding epydoc parsing errors; as such, we
      switch epydoc into verbose mode so that any new errors will be visible.
      
      Reviewed-by: imsnah
      c41eea6e
  2. 10 Dec, 2008 2 commits
  3. 09 Dec, 2008 4 commits
    • Michael Hanselmann's avatar
      ganeti.http: Remove _HttpClientError · 13b63666
      Michael Hanselmann authored
      This is a leftover from old code.
      
      Reviewed-by: iustinp
      13b63666
    • Michael Hanselmann's avatar
      ganeti.http.server: Increase connection backlog to 1024 · 59305197
      Michael Hanselmann authored
      This solves a problem with many concurrent requests. By default, 1024
      is the maximum backlog on Linux kernels. We limit the number of clients
      through MAX_CHILDREN, too. The idea of just increasing the backlog is
      taken from lighttpd.
      
      Reviewed-by: amishchenko
      59305197
    • Michael Hanselmann's avatar
      RPC: Compress file upload data · 12bce260
      Michael Hanselmann authored
      Adding compression to larger amounts of data is more efficient than
      transferring it (len(nodes) - 1) times over the network without
      compression. We were able to compress a 800KB config file to about
      30 KB, which is about 40 KB with Base64 encoding (required due to
      the way SimpleJson handles strings).
      
      Reviewed-by: ultrotter
      12bce260
    • Iustin Pop's avatar
      Warn for instances living on offline nodes · 832261fd
      Iustin Pop authored
      The patch also changes the result to error for non-reachable secondary nodes
      (as for primary nodes).
      
      Reviewed-by: ultrotter
      832261fd
  4. 08 Dec, 2008 3 commits
    • Iustin Pop's avatar
      Fix _AdjustCandidatePool · ee513a66
      Iustin Pop authored
      Currently the ConfigWriter.MaintainCandidatePool returns node names, and
      _AdjustCandidatePool uses them as such, but then it passes these to
      context.ReaddNode which in turn passes them to jqueue.JobQueue.AddNode which
      uses them as objects.Node instances.
      
      Since this is currently the only usage, we change return type from
      ConfigWriter.MaintainCandidatePool to be objects and adjust the logging of
      their names, so that the auto-adjusement works.
      
      Reviewed-by: ultrotter
      ee513a66
    • Iustin Pop's avatar
      gnt-node modify: add the offline attribute · 3a5ba66a
      Iustin Pop authored
      This patch changes gnt-node modify and the associated opcode/lu to allow
      modification of the node offline attribute.
      
      Setting a node into offline mode automatically demotes it from the
      master role.
      
      Reviewed-by: ultrotter
      3a5ba66a
    • Iustin Pop's avatar
      RPC: do not make calls to offline nodes · ed83f5cc
      Iustin Pop authored
      This patch changes the _MultNodeCall and _SingleNodeCall helpers to not
      actually make calls to offline nodes, but instead generate fake
      responses which have a parameter caller 'offline' set so that callers
      can check for this value if they want (otherwise, it's just a failed RPC
      call).
      
      Reviewed-by: ultrotter
      ed83f5cc
  5. 05 Dec, 2008 11 commits
    • Iustin Pop's avatar
      Make cluster verify understand offline nodes · 0a66c968
      Iustin Pop authored
      This patch changes cluster verify to not alert on offline nodes, but
      instead just show a note at the end with the number of such nodes.
      
      It also removes warnings in verify-disks and hooks about failures to
      make rpc calls to such nodes.
      
      Reviewed-by: ultrotter
      0a66c968
    • Iustin Pop's avatar
      cmdlib: check node stats in prereqs · 7527a8a4
      Iustin Pop authored
      This patch adds checks for offline nodes in most instance LUs so that we
      can work with offline secondaries, but not with offline primaries. Some
      cases (like grow disk, which needs both sides up) are not allowing
      offline nodes at all.
      
      Reviewed-by: ultrotter
      7527a8a4
    • Iustin Pop's avatar
      Add two utility functions to cmdlib · a5961235
      Iustin Pop authored
      These will be used for parameter checking and node status checking.
      
      Reviewed-by: ultrotter
      a5961235
    • Iustin Pop's avatar
      Add function to compute the master candidates · ec0292f1
      Iustin Pop authored
      Since some nodes can be offline, we can't just take the length of the
      node list as the maximum possible number of master candidates.
      
      The patch adds an utility function to correctly compute this value and
      replaces hardcoded computations with the use of this function. It then
      adds utility functions to automate the maintenance of the node lists.
      
      Reviewed-by: ultrotter
      ec0292f1
    • Iustin Pop's avatar
      http: use slicing instead of string modification · b18dd019
      Iustin Pop authored
      The combination of the current buffer splitting method and (4KB) buffer
      size is very inefficient when writing big amounts of data. Just walking
      over a 16 megabyte string using a 4K buffer takes (on a random computer)
      1m06s, whereas using slices will decrease this to 0.080s, and slicing
      with 32 KB size decreases this to 0.073s.
      
      This means that uploading a big config file (it nears 1MB for big
      clusters) will take more and more time per the number of nodes, since it
      needs lots of slicing.
      
      I happened upon this by accidentally setting all nodes as master
      candidates, at which point just uploading the config file to all nodes
      took 40s. Applying the patch decreases this to 15s (this probably can
      still be optimized).
      
      The patch also removes a duplicate constant (the one actually used is in
      http/client.py), and changes the receive buffer size to use the same
      constant.
      
      Reviewed-by: imsnah
      b18dd019
    • Iustin Pop's avatar
      Add the offline node list to ssconf · a3316e4a
      Iustin Pop authored
      The patch also changes the various node list generation to be more
      consistent.
      
      Reviewed-by: imsnah
      a3316e4a
    • Iustin Pop's avatar
      Cleanup the config file on demotion from candidate · 56aa9fd5
      Iustin Pop authored
      This patch adds a simple rpc which makes a backup of the config file and
      then removes it. This is done so that cluster verify doesn't complain
      immediately after demoting a node.
      
      Reviewed-by: imsnah
      56aa9fd5
    • Iustin Pop's avatar
      watcher: handle offline nodes better · cbfc4681
      Iustin Pop authored
      This patch changes the LUQueryInstances to show a different state for
      offline nodes and also modifies the watcher to understand the offline
      state in its checks.
      
      Reviewed-by: ultrotter
      cbfc4681
    • Iustin Pop's avatar
      node list: add the offline field · 9ddb5e45
      Iustin Pop authored
      Reviewed-by: ultrotter
      9ddb5e45
    • Iustin Pop's avatar
      Add a new node parameter 'offline' · fc0fe88c
      Iustin Pop authored
      This patch adds a new node parameter called offline that will be used to
      mark nodes which should be touched by commands.
      
      We also add this flag at cluster init, node add, and export it to
      iallocator scripts.
      
      Reviewed-by: ultrotter
      fc0fe88c
    • Iustin Pop's avatar
      ssconf: empty files should not add a newline · 02b31f32
      Iustin Pop authored
      Currently we add a newline in the ssconf writeout process, even if the
      file is empty. We chage this case so that lists of values (e.g. offline
      nodes) are correct (not a list of one empty element).
      
      Reviewed-by: imsnah
      02b31f32
  6. 04 Dec, 2008 8 commits
  7. 03 Dec, 2008 11 commits