1. 11 Sep, 2008 1 commit
    • Guido Trotter's avatar
      Implement adding/removal of locks by declaration · ca2a79e1
      Guido Trotter authored
      With this patch LUs can declare locks to be added when they start and/or
      removed after they finish. For now locks can only be added in the
      acquired state, and removed if owned, and added locks default to be
      removed again, unless some action is taken.
      
      Reviewed-by: imsnah
      ca2a79e1
  2. 10 Sep, 2008 2 commits
    • Iustin Pop's avatar
      Remove locking of instances in certain queries · 57a2fb91
      Iustin Pop authored
      This patch is similar to the node patch (rev 1650). We disable locking
      of instance (and nodes) if we only query static information.
      
      Reviewed-by: ultrotter
      57a2fb91
    • Iustin Pop's avatar
      Optimize the OpQueryNodes for names only · c8d8b4c8
      Iustin Pop authored
      Currently, OpQueryNodes is locking all nodes (in shared mode), which
      will also block the special case of querying only for the node names
      (this is needed for gnt-cluster command, for example). There is no
      logical requirement to not give the administrator enough power if she/he
      knows what to do, so it would be logical that querying the node names
      works without a lock.
      
      The patch changes the LUQuerytNodes.ExpandNodes to only request locking
      when the selected fields contain dynamic attributes, and a small change
      in the Exec() method to use the new, atomic query method from
      ConfigWriter.
      
      Reviewed-by: ultrotter
      c8d8b4c8
  3. 09 Sep, 2008 10 commits
  4. 08 Sep, 2008 6 commits
  5. 05 Sep, 2008 1 commit
    • Guido Trotter's avatar
      Add locking.ALL_SET constant and use it · e310b019
      Guido Trotter authored
      Rather than specifying None in needed_locks every time, with a nice
      comment saying to read what we mean rather than what we write, and that
      None actually means All, in our magic world, we'll hide this secret
      under the ALL_SET constant in the locking module, which has value, you
      guessed it, None. After that we'll substitute all usage in cmdlib.
      
      Some comments and examples have been fixed as well.
      
      Reviewed-by: iustinp
      e310b019
  6. 04 Sep, 2008 7 commits
  7. 02 Sep, 2008 3 commits
  8. 01 Sep, 2008 4 commits
    • Alexander Schreiber's avatar
      merge r1539 from branches/ganeti/ganeti-1.2 · 34b6ab97
      Alexander Schreiber authored
      Display VNC console port in gnt-instance info.
      
      
      Reviewed-by: iustinp
      
      34b6ab97
    • Alexander Schreiber's avatar
      merge r1538 from branches/ganeti/ganeti-1.2 · 5bc84f33
      Alexander Schreiber authored
      Check HVM device type on instance modify as well.
      
      Reviewed-by: imsnah
      
      5bc84f33
    • Guido Trotter's avatar
      Check memory size before setting it · cfefe007
      Guido Trotter authored
      With this change when a user asks for a new memory size for an instance,
      the number is checked instead of just applied. The operation fails only
      if the instance would not be able to restart on its primary node, but
      generates warnings should it be impossible to failover the instance or
      should the computation be impossible due to nodes being unreachable.
      
      This is a forward-port from branches/ganeti-1.2
      
      Original-Reviewed-by: iustinp
      Reviewed-by: iustinp
      
      cfefe007
    • Guido Trotter's avatar
      Pass the force param to SetInstanceParms · 4300c4b6
      Guido Trotter authored
      It was already allowed in gnt-instance modify, but ignored.
      It will be used to force skipping parameter checks.
      
      This is a forward-port from branches/ganeti-1.2
      
      Original-Reviewed-by: imsnah
      Reviewed-by: iustinp
      4300c4b6
  9. 29 Aug, 2008 2 commits
  10. 28 Aug, 2008 1 commit
    • Guido Trotter's avatar
      Fix issue when acquiring empty lock sets · 6683bba2
      Guido Trotter authored
      By design if an empty list of locks is acquired from a set, no locks are
      acquired, and thus release() cannot be called on the set. On the other
      hand if None is passed instead of the list, the whole set is acquired,
      and must later be released. When acquiring whole empty sets, a release
      must happen too, because the set-lock is acquired.
      
      Since we used to overwrite the required locks (needed_locks) with the
      acquired ones, we weren't able to distinguish the two cases (empty list
      of locks required, and all locks required, but an empty list returned
      because the set is empty). Valid solutions include:
        (1) forbidding the acquire of empty lists of locks
        (2) skipping the acquire/release on empty lists of locks
        (3) separating the to-acquire and the acquired list
      
      This patch implements the third approach, and thus LUs will find
      acquired locks in the acquired_locks dict, rather than in needed_locks.
      The LUs which used this feature before have been updated. This makes it
      easier because it doesn't force LUs to do more checks on corner cases,
      which are easily forgettable (1) and allows more flexibility if we want
      LUs to release (part-of) the locks (which is still a possibly scary
      operation, but anyway). This easily combines with (2) should we choose
      to implement it.
      
      Reviewed-by: imsnah
      6683bba2
  11. 18 Aug, 2008 3 commits
    • Guido Trotter's avatar
      Parallelize LUQueryNodes · 35705d8f
      Guido Trotter authored
      As for LUQueryInstances the first version just acquires a shared lock on all
      nodes. In the future further optimizations are possible, as outlined by
      comments in the code.
      
      Reviewed-by: imsnah
      35705d8f
    • Guido Trotter's avatar
      Parallelize LUQueryInstances · 7eb9d8f7
      Guido Trotter authored
      This first version acquires a shared lock on all requested instances and
      their nodes. In the future it can be improved by acquiring less locks if
      no dynamic fields have been asked, and/or by locking just primary nodes.
      
      Reviewed-by: imsnah
      7eb9d8f7
    • Guido Trotter's avatar
      LURebootInstance: move arg check in ExpandNames · 0fcc5db3
      Guido Trotter authored
      The check for the reboot type can be done without any locks held, so
      we'll move it to ExpandNames. Plus, we note in a FIXME that if the
      reboot type is not full, we can probably just lock the primary node, and
      leave the secondary unlocked.
      
      Reviewed-by: imsnah
      0fcc5db3