Revision ef66500f

b/lib/cmdlib.py
9849 9849
      # specifying a group on instance creation and then selecting nodes from
9850 9850
      # that group
9851 9851
      self.needed_locks[locking.LEVEL_NODE] = locking.ALL_SET
9852
      self.needed_locks[locking.LEVEL_NODE_RES] = \
9853
        _CopyLockList(self.needed_locks[locking.LEVEL_NODE])
9854 9852
      self.needed_locks[locking.LEVEL_NODE_ALLOC] = locking.ALL_SET
9855 9853
    else:
9856 9854
      self.op.pnode = _ExpandNodeName(self.cfg, self.op.pnode)
......
9859 9857
        self.op.snode = _ExpandNodeName(self.cfg, self.op.snode)
9860 9858
        nodelist.append(self.op.snode)
9861 9859
      self.needed_locks[locking.LEVEL_NODE] = nodelist
9862
      # Lock resources of instance's primary and secondary nodes (copy to
9863
      # prevent accidential modification)
9864
      self.needed_locks[locking.LEVEL_NODE_RES] = list(nodelist)
9865 9860

  
9866 9861
    # in case of import lock the source node too
9867 9862
    if self.op.mode == constants.INSTANCE_IMPORT:
......
9887 9882
          self.op.src_path = src_path = \
9888 9883
            utils.PathJoin(pathutils.EXPORT_DIR, src_path)
9889 9884

  
9885
    self.needed_locks[locking.LEVEL_NODE_RES] = \
9886
      _CopyLockList(self.needed_locks[locking.LEVEL_NODE])
9887

  
9890 9888
  def _RunAllocator(self):
9891 9889
    """Run the allocator based on input opcode.
9892 9890

  

Also available in: Unified diff