1. 29 Aug, 2008 2 commits
    • Alexander Schreiber's avatar
      merge r1535 from branches/ganeti/ganeti-1.2 · b894f5a8
      Alexander Schreiber authored
      Add HVM device type flags 1/4
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Make WaitForJobChanges deal with long jobs · 5c735209
      Iustin Pop authored
      This patch alters the WaitForJobChanges luxi-RPC call to have a
      configurable timeout, so that the call behaves nicely with long jobs
      that have no update.
      We do this by adding a timeout parameter in the RPC call, and returning
      a special constant when the timeout is reached without an update. The
      luxi client will repeatedly call the WaitForJobChanges until it gets a
      real change. The timeout is hardcoded as half the RWTO value.
      The patch also removes an unused variable (new_state) from the
      WaitForJobChanges method.
      Reviewed-by: imsnah,ultrotter
  2. 27 Aug, 2008 1 commit
  3. 18 Aug, 2008 1 commit
    • Michael Hanselmann's avatar
      Use Linux-specific way to name master socket · 9894ece7
      Michael Hanselmann authored
      By using this Linux-specific way we don't have to care about removing the
      socket file when quitting or starting (after an unclean shutdown). For a
      more detailed description, see the comment in the patch.
      Reviewed-by: schreiberal
  4. 13 Aug, 2008 2 commits
    • Guido Trotter's avatar
      constants: add HT_KVM · 550e49b9
      Guido Trotter authored
      Add a new hypervisor type, HT_KVM, to constants, and register it in the
      HYPER_TYPES set.
      Reviewed-by: imsnah
    • Guido Trotter's avatar
      Add --with-kvm-path configure option · 7e2c5b9e
      Guido Trotter authored
      This allows to configure a different path to the kvm binary. By default
      /usr/bin/kvm is used, which is the one found in debian and ubuntu.
      Reviewed-by: imsnah
  5. 30 Jul, 2008 2 commits
    • Iustin Pop's avatar
      Unify SetupDaemon/SetupLogging · 59f187eb
      Iustin Pop authored
      The 'old-style' info, error, debug logs do not make much sense. This
      patch unifies the SetupLogging and SetupDaemon functions. As a result,
      all the commands logs to a 'commands.log' file.
      The patch also changes the log setup to keep going if there's an error
      in setting up the file logging but we're logging to stderr.
      Also, burnin now logs to its own file (burnin.log).
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Simplify the log constants and add another one · 9936bd63
      Iustin Pop authored
      The patch changes the log constants by moving the slash to the end of
      the log dir instead of at the beginning of *each* log file name.
      It also adds a new LOG_COMMANDS constant (to be used in a next patch).
      Reviewed-by: ultrotter
  6. 29 Jul, 2008 2 commits
  7. 28 Jul, 2008 1 commit
  8. 24 Jul, 2008 1 commit
  9. 23 Jul, 2008 1 commit
  10. 17 Jul, 2008 1 commit
  11. 14 Jul, 2008 3 commits
    • Iustin Pop's avatar
      Further fixes to enable RAPI startup · d4104181
      Iustin Pop authored
      Note that since RAPI itself doesn't use luxi.Client yet, nothing works,
      but at least it can startup now.
      Reviewed-by: imsnah
    • Iustin Pop's avatar
      Add forgotten RAPI constant · d3f0bf8f
      Iustin Pop authored
      This was forgot on the forward-porting of RAPI.
      Reviewed-by: imsnah
    • Iustin Pop's avatar
      First version of user feedback fixes · f1048938
      Iustin Pop authored
      This patch contains a raw version for fixing feedback_fn.
      The new mechanism works as follows:
        - instead of a per-Processor feedback_fn, there's one for each
          ExecOpCode, so that feedback for different opcodes go via possibly
          different functions
        - each _QueuedOpCode gets a message buffer, a method for adding
          feedback and a method for retrieving (parts of) the feedback
        - the _QueuedJob object gets a new attribute that is equal to the
          index of the currently executing opcode
        - job queries get an extra parameter called 'ticker' that will return
          the latest message on the current executing opcode
        - the cli.py job completion poll will show the new status if different
          from the old one
      Of course, quick messages will be lost, as currently only the latest one
      is available. Also changes between opcodes are not represented at all.
      Reviewed-by: imsnah
  12. 11 Jul, 2008 1 commit
    • Michael Hanselmann's avatar
      Add experimental persistency to job queue · f1da30e6
      Michael Hanselmann authored
      It's not perfect and it's not finished, but it's a start.
      - Serial number is read only once, but written on each update
      - Jobs are kept only on disk (caching will be implemented)
      Reviewed-by: iustinp
  13. 09 Jul, 2008 1 commit
  14. 08 Jul, 2008 3 commits
    • Michael Hanselmann's avatar
      constants: Add job and opcode status strings · 5f33b613
      Michael Hanselmann authored
      Reviewed-by: iustinp
    • Iustin Pop's avatar
      Add a top level RUN_GANETI_DIR constant · 75afaefc
      Iustin Pop authored
      This patch creates a base RUN_GANETI_DIR and then moves the other run
      dir constants to use that (even if just setting BDEV_CACHE_DIR as equal
      to it, rather than putting it deeper, for now).
      Also we create a constant list of all the subdirs we need in RUN_DIR to
      work properly, which we'll use when creating them in ganeti-noded.
      Reviewed-by: iustinp
    • Iustin Pop's avatar
      symlinks: Add DISK_LINKS_DIR constant · bf94c0f5
      Iustin Pop authored
      The DISK_LINKS_DIR points to the RUN_DIR/ganeti/instance-disks
      directory, which will contain symlinks to the instances' disks. These
      provide a stable name accross all nodes for them, and permit
      live-migration to happen.
      Unfortunately RUN_DIR/ganeti/instance-disks happens to be below ganeti
      1.2's BDEV_CACHE_DIR, which will we need to address at some point
      (possibly in 2.0).
      Reviewed-by: iustinp
  15. 23 Jun, 2008 1 commit
  16. 18 Jun, 2008 1 commit
  17. 16 Jun, 2008 1 commit
    • Iustin Pop's avatar
      Add migration support at the rpc layer · 2a10865c
      Iustin Pop authored
      This patch adds the migration rpc call and its implementation in the
      backend. The patch does not deal with the correct activation of disks.
      Because of the new RPC, the protocol version is increased.
      Reviewed-by: imsnah
  18. 12 Jun, 2008 2 commits
  19. 31 May, 2008 1 commit
  20. 30 May, 2008 1 commit
    • Iustin Pop's avatar
      Complete removal of md/drbd 0.7 code · abdf0113
      Iustin Pop authored
      This patch removes the last of the md and drbd 0.7 code. Cluster which
      have the old device types will be broken if they have this applied.
      Reviewed-by: imsnah
  21. 07 May, 2008 1 commit
  22. 05 May, 2008 1 commit
  23. 28 Apr, 2008 1 commit
    • Iustin Pop's avatar
      Move iallocator script execution to ganeti-noded · 8d528b7c
      Iustin Pop authored
      Currently the iallocator execution takes place in the master, which is a
      violation of the current architecture, and will create problems with a
      threaded master daemon.
      This patch moves the execution to the backend, similar to the hooks
      runner, by:
        - introducing a new class that handles the execution in the backend
          (and could be used also for listing the allocators, etc.)
        - introducing a new rpc call
        - replacing the actual execution in IAllocator.Run() with a rpc call
      This passes burnin with the dumb allocator
      Reviewed-by: imsnah
  24. 16 Apr, 2008 2 commits
    • Iustin Pop's avatar
      Implement 'out' direction on allocator tests · 298fe380
      Iustin Pop authored
      This patch adds the paths for searching for instance allocators and
      makes the LUTestAllocator code run the allocator and return the results
      if the direction specified is 'out'. 'out' means that the opcode will
      return the result of the allocator run, instead of the allocator input
      file ('in').
      The patch unifies all names to refer to 'iallocator' instead of plain
      The patch also adds an example allocator that can be used for testing
      this new functionality.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Allocator framework, 1st part: allocator input generation · d61df03e
      Iustin Pop authored
      In preparation for the introduction of automatic instance allocator,
      this patch adds an allocator simulation opcode, that based on the input
      parameters, will return either the input message to the allocator
      (implemented) or the result of the allocator run (not yet implemented).
      This allows algorithm tests against simulated allocations and the
      current cluster state.
      The patch adds the following:
        - a function that generates the generic cluster information for the
        - a function that generates the 'new instance' information
        - a function that generates the 'replace_secondary' information
      These three functions will be used by the allocator framework later to
      generate the actual information for the external algorithms. Currently
      we just return the json-serialized text.
      Reviewed-by: imsnah
  25. 10 Apr, 2008 2 commits
  26. 05 Apr, 2008 1 commit
    • Iustin Pop's avatar
      Implement forking/master role checking in masterd · c1f2901b
      Iustin Pop authored
      This patch adds checks for the master role and daemonize support to
      The patch modifies the startup/shutdown of the server because:
        - we want bind()/listen() to the master socket to occur before forking
          so that we can return a correct exit code and write messages to
        - but we want thread startup to occur after fork(), otherwise python
          threading gets confused
      The patch also has some small cleanups:
        - remove the unix socket after closing it, so we don't need to remove
          it manually
        - instead of just telling the threads to terminate via the new_queue,
          we also join() them so that the logs show what thread clinging to
        - the daemon logs to its own logfile now
        - there is command line parameter support :)
      Reviewed-by: imsnah
  27. 01 Apr, 2008 1 commit
    • Iustin Pop's avatar
      Add submit function to lib/cli.py · ceab32dd
      Iustin Pop authored
      This patch adds function that submit jobs or queries over the unix socket
      interface to lib/cli.py. The will be used by the scripts instead of the
      SubmitOpCode function.
      Reviewed-by: ultrotter
  28. 31 Mar, 2008 1 commit
    • Manuel Franceschini's avatar
      Add DEFAULT_VG and DTS_NOT_LVM to constants.py · d63e148a
      Manuel Franceschini authored
      This constant is needed when checking if an instance can be created with
      the given disk template if no lvm-storage is available, i.e. the ganeti
      cluster does not have a volume group
      'xenvg' has been hardcoded before.
      Reviewed-by: iustinp
  29. 25 Mar, 2008 1 commit