1. 30 Jul, 2008 8 commits
    • Guido Trotter's avatar
      Add LogicalUnit.DeclareLocks · fb8dcb62
      Guido Trotter authored
      This additional LogicalUnit function is optional to implement, but lets
      you change your locking needs for one level just before locking it, but
      after the previous levels have been already locked. It is useful for
      example to calculate what nodes to lock after locking an instance.
      Reviewed-by: iustinp
    • Guido Trotter's avatar
      LURenameInstance, add/remove relevant locks · 74b5913f
      Guido Trotter authored
      LURenameInstance forgot to remove the old lock name and add the new one,
      making it impossible for parallel LUs to act on the instance (without a
      master daemon restart). This also fixes burning+rename with the
      parallelization of {Start,Stop}Instance.
      Reviewed-by: iustinp
    • Michael Hanselmann's avatar
      Rewrite job queue · 85f03e0d
      Michael Hanselmann authored
      We found several issues in the old job queue implementation. It had race
      conditions, deadlocks and other deficiencies.
      Short summary:
      - _QueuedOpCode and _QueuedJob are now more or less data structures with a few
        utility functions. __Setup is gone.
      - DiskJobStorage and JobQueue classes merged into one to reduce code complexity.
      - One lock in JobQueue for almost everything. There's also a lock per opcode
        for log messages.
      Reviewed-by: iustinp
    • Michael Hanselmann's avatar
      workerpool: Log when waiting for a thread · c0a8eb9e
      Michael Hanselmann authored
      Reviewed-by: iustinp
    • Iustin Pop's avatar
      Rework master startup/shutdown/failover · b1b6ea87
      Iustin Pop authored
      This (big) patch reworks the master startup/shutdown and the fixes the
      master failover.
      What does the patch do?
      For master start/stop:
        - remove the old ganeti-master script and its associated man page
        - moves the ip start/stop directly into the backend.(Start|Stop)Master
        - adds start/stop of the master/rapi daemon into these functions,
          selectively based on the start/stop arguments
        - makes the master call via rpc StartMaster(start_daemons=False) to
          the local node so that the master IP is started
        - and finally changes the example init.d script to directly start and
          stop all three daemons, since they do the right thing (depending on
          master/not master role)
      For master failover:
        - moves the code from LUMasterFailover into bootstrap.MasterFailover,
          since we need to start/stop the master during this operation and
          thus it can't be executed from the master
        - removes the LUMasterFailover and its associated opcode
      Notes: ubuntu's /etc/lsb-base-logging.sh is dumb, so the messages 'not
      master' are not seen during startup on non-master nodes.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Expose utils.DaemonPidFileName · 53beffbb
      Iustin Pop authored
      Since we need to compute this from outside utils.py, we change this to a
      public function.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Implement checking for the master role in rapi · 5675cd1f
      Iustin Pop authored
      This patch moves the CheckMaster function from ganeti-masterd to ssconf
      (most logical place, it cannot go in utils since we would have recursive
      imports between ssconf and utils) and changes ganeti-rapi to also call
      this function.
      This is needed so that starting ganeti-rapi on a non-master node does
      the right thing.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Add a new parameter to backend.(Start|Stop)Master · 1c65840b
      Iustin Pop authored
      This patch adds a new, unused for now, parameter to the start and stop
      master operations in backend. The idea behind it is that we need to be
      able to control whether the IP (de)activation is coupled with daemon
      The callers are also modified to pass this parameter (even if unused for
      Reviewed-by: ultrotter
  2. 29 Jul, 2008 7 commits
    • Michael Hanselmann's avatar
      Log thread name when debug output is enabled · 6aff91f6
      Michael Hanselmann authored
      Reviewed-by: iustinp
    • Michael Hanselmann's avatar
      jqueue: Fix error logging · 8090e19f
      Michael Hanselmann authored
      The passed parameters were not correct.
      Reviewed-by: iustinp, ultrotter
    • Iustin Pop's avatar
      Fix constants typo · bff2ddc5
      Iustin Pop authored
      Reviewed-by: imsnah
    • Iustin Pop's avatar
      Use constants for the pid file stems · 99e88451
      Iustin Pop authored
      Reviewed-by: imsnah
    • Iustin Pop's avatar
      Add a KillProcess function · b2a1f511
      Iustin Pop authored
      We cannot depend on all environments to have a start-stop-daemon or
      similar tool. We instead implement a KillProcess function that behaves
      similar to “start-stop-daemon --retry”.
      Note that the attached unittest can hang in foreground if the child
      misbehaves (doesn't write to the internal pipe). Since unittest are
      either run in the foreground or are run with a timeout from an automated
      framework, I think this is an acceptable trade-off (against of using
      hardcoded timeouts in the test).
      Reviewed-by: imsnah
    • Iustin Pop's avatar
      Change IsPidFileAlive into ReadPidFile · d9f311d7
      Iustin Pop authored
      We already have a function to test if a PID is alive, so it makes more
      sense to use function composition that force calling (since we need to
      read PIDs from files in other places too). Now IsProcessAlive returns
      False for PIDs <= 0, since this is the error return from ReadPidFile.
      The patch also adds a unittest for checking that WriteFile raises the
      correct exception, and checks that an invalid or missing file causes
      ReadPidFile to return zero. The unittest tearDown method will try to
      cleanup the temp directory too (otherwise it leaves stuff after it).
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Make the rapi daemon create a pidfile · f71245a0
      Iustin Pop authored
      This is needed for controlling it cleanly with start-stop daemon.
      Reviewed-by: ultrotter
  3. 28 Jul, 2008 9 commits
  4. 25 Jul, 2008 2 commits
  5. 24 Jul, 2008 6 commits
  6. 23 Jul, 2008 8 commits