1. 09 Sep, 2008 16 commits
    • Michael Hanselmann's avatar
      Never remove job queue lock in node daemon · 1bc59f76
      Michael Hanselmann authored
      Otherwise, corruption could occur in some corner cases. E.g. when
      LeaveNode is running in a child and is in the process of removing
      queue files, the main process gets killed, started again and gets
      a request to update the queue. This is rather extreme corner case,
      but we should opt for safety.
      
      Reviewed-by: iustinp
      1bc59f76
    • Iustin Pop's avatar
      Implement master startup safety check · 36205981
      Iustin Pop authored
      This is an initial version of the master startup checks. It's a very
      rudimentary change, however in normal usage (an old master was started,
      the rest of the cluster is functioning normally) it will succeed in
      preventing wrong startups.
      
      Reviewed-by: imsnah
      36205981
    • Iustin Pop's avatar
      Export backend.GetMasterInfo over the rpc layer · 4e071d3b
      Iustin Pop authored
      We create a multi-node call so that querying all nodes for agreement
      will be fast.
      
      Reviewed-by: imsnah
      4e071d3b
    • Iustin Pop's avatar
      Change backend._GetMasterInfo to return more data · bd1e4562
      Iustin Pop authored
      The _GetMasterInfo() function needs to export the master name too to be
      useful in master safety checks. This patch makes it a public (no _)
      function and adds a third element in the return tuple. Its callers are
      modified too.
      
      Reviewed-by: imsnah
      bd1e4562
    • Guido Trotter's avatar
      Parallelize LUQueryInstanceData · a987fa48
      Guido Trotter authored
      Reviewed-by: iustinp
      a987fa48
    • Guido Trotter's avatar
      Parallelize LUVerify{Cluster,Disks} · d4b9d97f
      Guido Trotter authored
      These are two easy querying LUs which require shared access to all
      nodes/instances.
      
      Reviewed-by: iustinp
      d4b9d97f
    • Guido Trotter's avatar
      Parallelize LUReplaceDisks · efd990e4
      Guido Trotter authored
      This is the most complex parallelization so far. We have to lock one
      instance (and its nodes) plus one more node if doing a remote replace,
      or all nodes if doing a remote replace with iallocator.
      
      Reviewed-by: iustinp
      efd990e4
    • Guido Trotter's avatar
      _LockInstancesNodes: support append mode · 9513b6ab
      Guido Trotter authored
      This will be used to lock the instance's nodes in addition to some more.
      
      Reviewed-by: iustinp
      9513b6ab
    • Guido Trotter's avatar
      Processor: remove ChainOpCode · b2751b57
      Guido Trotter authored
      This function was incompatible with the new locking system, and its
      usage has been removed from the code. For now LUs share code by calling
      common module-private functions in cmdlib.py, in the future they will
      use tasklets (when those will be implemented).
      
      Reviewed-by: iustinp
      b2751b57
    • Guido Trotter's avatar
      Parallelize LU{A,Dea}ctivateInstanceDisks · f22a8ba3
      Guido Trotter authored
      Now that they are not used in other opcodes by chaining,
      this can easily be done.
      
      Reviewed-by: iustinp
      f22a8ba3
    • Guido Trotter's avatar
      LUReplaceDisks: remove use of ChainOpCode · 023e3296
      Guido Trotter authored
      The calls to OpActivateInstanceDisks and OpDeactivateInstanceDisks has
      been replaced by _StartInstanceDisks and _SafeShutdownInstanceDisks
      respectively. This is the last usage of ChainOpCode.
      
      Reviewed-by: iustinp
      023e3296
    • Guido Trotter's avatar
      Create new _SafeShutdownInstanceDisks function · 155d6c75
      Guido Trotter authored
      This new function checks whether an instance is running, before shutting
      down its disks. This is what the Exec() of LUDeactivateInstanceDisks
      did, so that is replaced by a call to this function.
      
      Reviewed-by: iustinp
      155d6c75
    • Guido Trotter's avatar
      Fix a typo in LogicalUnit.ExpandNames docstring · 3a5d7305
      Guido Trotter authored
      s/locking.LEVEL_INSTANCES/locking.LEVEL_INSTANCE/
      
      Reviewed-by: iustinp
      3a5d7305
    • Guido Trotter's avatar
      Use constants.LOCKS_REPLACE instead of hardcoding · f6d9a522
      Guido Trotter authored
      This constant replaces what we used to write in recalculate_locks, and
      represents the lock recalculation mode. It lives in constants.py because
      it's used only in cmdlib, and thus doesn't deal with the locking library
      by itself.
      
      Reviewed-by: iustinp
      f6d9a522
    • Guido Trotter's avatar
      Fix LUReplaceDisks with iallocator · de8c7666
      Guido Trotter authored
      self._RunAllocator() sets self.op.remote_node, but doesn't return the
      new remote node. If we set it to the return value of the function we
      basically reset it to None, and iallocator is never run.
      
      Reviewed-by: imsnah
      de8c7666
    • Michael Hanselmann's avatar
      Use lock timeout for queue updates in ganeti-noded · 506cff12
      Michael Hanselmann authored
      This helps to prevent complete deadlocks.
      
      Reviewed-by: iustinp
      506cff12
  2. 08 Sep, 2008 7 commits
  3. 05 Sep, 2008 7 commits
  4. 04 Sep, 2008 7 commits
  5. 02 Sep, 2008 3 commits