Revision 75248363 lib/cmdlib.py
b/lib/cmdlib.py | ||
---|---|---|
13358 | 13358 |
def CheckArguments(self): |
13359 | 13359 |
if not (self.op.nics or self.op.disks or self.op.disk_template or |
13360 | 13360 |
self.op.hvparams or self.op.beparams or self.op.os_name or |
13361 |
self.op.offline is not None or self.op.runtime_mem): |
|
13361 |
self.op.offline is not None or self.op.runtime_mem or |
|
13362 |
self.op.pnode): |
|
13362 | 13363 |
raise errors.OpPrereqError("No changes submitted", errors.ECODE_INVAL) |
13363 | 13364 |
|
13364 | 13365 |
if self.op.hvparams: |
... | ... | |
13386 | 13387 |
self._CheckMods("NIC", self.op.nics, constants.INIC_PARAMS_TYPES, |
13387 | 13388 |
self._VerifyNicModification) |
13388 | 13389 |
|
13390 |
if self.op.pnode: |
|
13391 |
self.op.pnode = _ExpandNodeName(self.cfg, self.op.pnode) |
|
13392 |
|
|
13389 | 13393 |
def ExpandNames(self): |
13390 | 13394 |
self._ExpandAndLockInstance() |
13391 | 13395 |
self.needed_locks[locking.LEVEL_NODEGROUP] = [] |
... | ... | |
13668 | 13672 |
"Cannot retrieve locked instance %s" % self.op.instance_name |
13669 | 13673 |
|
13670 | 13674 |
pnode = instance.primary_node |
13675 |
|
|
13676 |
self.warn = [] |
|
13677 |
|
|
13678 |
if (self.op.pnode is not None and self.op.pnode != pnode and |
|
13679 |
not self.op.force): |
|
13680 |
# verify that the instance is not up |
|
13681 |
instance_info = self.rpc.call_instance_info(pnode, instance.name, |
|
13682 |
instance.hypervisor) |
|
13683 |
if instance_info.fail_msg: |
|
13684 |
self.warn.append("Can't get instance runtime information: %s" % |
|
13685 |
instance_info.fail_msg) |
|
13686 |
elif instance_info.payload: |
|
13687 |
raise errors.OpPrereqError("Instance is still running on %s" % pnode, |
|
13688 |
errors.ECODE_STATE) |
|
13689 |
|
|
13671 | 13690 |
assert pnode in self.owned_locks(locking.LEVEL_NODE) |
13672 | 13691 |
nodelist = list(instance.all_nodes) |
13673 | 13692 |
pnode_info = self.cfg.GetNodeInfo(pnode) |
... | ... | |
13800 | 13819 |
else: |
13801 | 13820 |
self.os_inst = {} |
13802 | 13821 |
|
13803 |
self.warn = [] |
|
13804 |
|
|
13805 | 13822 |
#TODO(dynmem): do the appropriate check involving MINMEM |
13806 | 13823 |
if (constants.BE_MAXMEM in self.op.beparams and not self.op.force and |
13807 | 13824 |
be_new[constants.BE_MAXMEM] > be_old[constants.BE_MAXMEM]): |
... | ... | |
14234 | 14251 |
result = [] |
14235 | 14252 |
instance = self.instance |
14236 | 14253 |
|
14254 |
# New primary node |
|
14255 |
if self.op.pnode: |
|
14256 |
instance.primary_node = self.op.pnode |
|
14257 |
|
|
14237 | 14258 |
# runtime memory |
14238 | 14259 |
if self.op.runtime_mem: |
14239 | 14260 |
rpcres = self.rpc.call_instance_balloon_memory(instance.primary_node, |
Also available in: Unified diff