1. 29 Aug, 2008 1 commit
    • 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
      5c735209
  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
      9894ece7
  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
      550e49b9
    • 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
      7e2c5b9e
  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
      59f187eb
    • 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
      9936bd63
  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
      d4104181
    • Iustin Pop's avatar
      Add forgotten RAPI constant · d3f0bf8f
      Iustin Pop authored
      This was forgot on the forward-porting of RAPI.
      
      Reviewed-by: imsnah
      d3f0bf8f
    • 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
      f1048938
  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
      f1da30e6
  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
      5f33b613
    • 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
      75afaefc
    • 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
      bf94c0f5
  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
      2a10865c
  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
      abdf0113
  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
      8d528b7c
  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
      allocator.
      
      The patch also adds an example allocator that can be used for testing
      this new functionality.
      
      Reviewed-by: ultrotter
      298fe380
    • 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
          allocator
        - 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
      d61df03e
  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
      ganeti-masterd.
      
      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
          stderr
        - 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
          life
        - the daemon logs to its own logfile now
        - there is command line parameter support :)
      
      Reviewed-by: imsnah
      c1f2901b
  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
      ceab32dd
  28. 31 Mar, 2008 1 commit
    • Manuel Franceschini's avatar
      Add DEFAULT_VG and DTS_NOT_LVM to constants.py · d63e148a
      Manuel Franceschini authored
      DTS_NOT_LVM:
      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
      
      DEFAULT_VG:
      'xenvg' has been hardcoded before.
      
      Reviewed-by: iustinp
      d63e148a
  29. 25 Mar, 2008 1 commit
  30. 19 Mar, 2008 1 commit