716 |
716 |
if brlist:
|
717 |
717 |
result = lu.rpc.call_bridges_exist(target_node, brlist)
|
718 |
718 |
result.Raise("Error checking bridges on destination node '%s'" %
|
719 |
|
target_node, prereq=True)
|
|
719 |
target_node, prereq=True, ecode=errors.ECODE_ENVIRON)
|
720 |
720 |
|
721 |
721 |
|
722 |
722 |
def _CheckInstanceBridgesExist(lu, instance, node=None):
|
... | ... | |
797 |
797 |
|
798 |
798 |
result = rpc.call_blockdev_getmirrorstatus(node_name, instance.disks)
|
799 |
799 |
result.Raise("Failed to get disk status from node %s" % node_name,
|
800 |
|
prereq=prereq)
|
|
800 |
prereq=prereq, ecode=errors.ECODE_ENVIRON)
|
801 |
801 |
|
802 |
802 |
for idx, bdev_status in enumerate(result.payload):
|
803 |
803 |
if bdev_status and bdev_status.ldisk_status == constants.LDS_FAULTY:
|
... | ... | |
2967 |
2967 |
result = self.rpc.call_node_has_ip_address(new_node.name,
|
2968 |
2968 |
new_node.secondary_ip)
|
2969 |
2969 |
result.Raise("Failure checking secondary ip on node %s" % new_node.name,
|
2970 |
|
prereq=True)
|
|
2970 |
prereq=True, ecode=errors.ECODE_ENVIRON)
|
2971 |
2971 |
if not result.payload:
|
2972 |
2972 |
raise errors.OpExecError("Node claims it doesn't have the secondary ip"
|
2973 |
2973 |
" you gave (%s). Please fix and re-run this"
|
... | ... | |
3539 |
3539 |
|
3540 |
3540 |
"""
|
3541 |
3541 |
nodeinfo = lu.rpc.call_node_info([node], lu.cfg.GetVGName(), hypervisor_name)
|
3542 |
|
nodeinfo[node].Raise("Can't get data from node %s" % node, prereq=True)
|
|
3542 |
nodeinfo[node].Raise("Can't get data from node %s" % node,
|
|
3543 |
prereq=True, ecode=errors.ECODE_ENVIRON)
|
3543 |
3544 |
free_mem = nodeinfo[node].payload.get('memory_free', None)
|
3544 |
3545 |
if not isinstance(free_mem, int):
|
3545 |
3546 |
raise errors.OpPrereqError("Can't compute free memory on node %s, result"
|
... | ... | |
3627 |
3628 |
instance.name,
|
3628 |
3629 |
instance.hypervisor)
|
3629 |
3630 |
remote_info.Raise("Error checking node %s" % instance.primary_node,
|
3630 |
|
prereq=True)
|
|
3631 |
prereq=True, ecode=errors.ECODE_ENVIRON)
|
3631 |
3632 |
if not remote_info.payload: # not running already
|
3632 |
3633 |
_CheckNodeFreeMemory(self, instance.primary_node,
|
3633 |
3634 |
"starting instance %s" % instance.name,
|
... | ... | |
3846 |
3847 |
instance.name,
|
3847 |
3848 |
instance.hypervisor)
|
3848 |
3849 |
remote_info.Raise("Error checking node %s" % instance.primary_node,
|
3849 |
|
prereq=True)
|
|
3850 |
prereq=True, ecode=errors.ECODE_ENVIRON)
|
3850 |
3851 |
if remote_info.payload:
|
3851 |
3852 |
raise errors.OpPrereqError("Instance '%s' is running on the node %s" %
|
3852 |
3853 |
(self.op.instance_name,
|
... | ... | |
3864 |
3865 |
self.op.pnode, errors.ECODE_NOENT)
|
3865 |
3866 |
result = self.rpc.call_os_get(pnode.name, self.op.os_type)
|
3866 |
3867 |
result.Raise("OS '%s' not in supported OS list for primary node %s" %
|
3867 |
|
(self.op.os_type, pnode.name), prereq=True)
|
|
3868 |
(self.op.os_type, pnode.name),
|
|
3869 |
prereq=True, ecode=errors.ECODE_INVAL)
|
3868 |
3870 |
if not self.op.force_variant:
|
3869 |
3871 |
_CheckOSVariant(result.payload, self.op.os_type)
|
3870 |
3872 |
|
... | ... | |
3946 |
3948 |
instance.name,
|
3947 |
3949 |
instance.hypervisor)
|
3948 |
3950 |
remote_info.Raise("Error checking node %s" % instance.primary_node,
|
3949 |
|
prereq=True)
|
|
3951 |
prereq=True, ecode=errors.ECODE_ENVIRON)
|
3950 |
3952 |
if remote_info.payload:
|
3951 |
3953 |
raise errors.OpPrereqError("Instance '%s' is running on the node %s" %
|
3952 |
3954 |
(self.op.instance_name,
|
... | ... | |
4014 |
4016 |
instance.name,
|
4015 |
4017 |
instance.hypervisor)
|
4016 |
4018 |
remote_info.Raise("Error checking node %s" % instance.primary_node,
|
4017 |
|
prereq=True)
|
|
4019 |
prereq=True, ecode=errors.ECODE_ENVIRON)
|
4018 |
4020 |
if remote_info.payload:
|
4019 |
4021 |
raise errors.OpPrereqError("Instance '%s' is running on the node %s" %
|
4020 |
4022 |
(self.op.instance_name,
|
... | ... | |
4910 |
4912 |
_CheckNodeNotDrained(self, target_node)
|
4911 |
4913 |
result = self.rpc.call_instance_migratable(instance.primary_node,
|
4912 |
4914 |
instance)
|
4913 |
|
result.Raise("Can't migrate, please use failover", prereq=True)
|
|
4915 |
result.Raise("Can't migrate, please use failover",
|
|
4916 |
prereq=True, ecode=errors.ECODE_STATE)
|
4914 |
4917 |
|
4915 |
4918 |
self.instance = instance
|
4916 |
4919 |
|
... | ... | |
5979 |
5982 |
# os verification
|
5980 |
5983 |
result = self.rpc.call_os_get(pnode.name, self.op.os_type)
|
5981 |
5984 |
result.Raise("OS '%s' not in supported os list for primary node %s" %
|
5982 |
|
(self.op.os_type, pnode.name), prereq=True)
|
|
5985 |
(self.op.os_type, pnode.name),
|
|
5986 |
prereq=True, ecode=errors.ECODE_INVAL)
|
5983 |
5987 |
if not self.op.force_variant:
|
5984 |
5988 |
_CheckOSVariant(result.payload, self.op.os_type)
|
5985 |
5989 |
|