2561 |
2561 |
("remove_uids", None, _NoType),
|
2562 |
2562 |
("maintain_node_health", None, _TMaybeBool),
|
2563 |
2563 |
("nicparams", None, _TOr(_TDict, _TNone)),
|
|
2564 |
("drbd_helper", None, _TOr(_TString, _TNone)),
|
2564 |
2565 |
]
|
2565 |
2566 |
REQ_BGL = False
|
2566 |
2567 |
|
... | ... | |
2608 |
2609 |
raise errors.OpPrereqError("Cannot disable lvm storage while lvm-based"
|
2609 |
2610 |
" instances exist", errors.ECODE_INVAL)
|
2610 |
2611 |
|
|
2612 |
if self.op.drbd_helper is not None and not self.op.drbd_helper:
|
|
2613 |
if self.cfg.HasAnyDiskOfType(constants.LD_DRBD8):
|
|
2614 |
raise errors.OpPrereqError("Cannot disable drbd helper while"
|
|
2615 |
" drbd-based instances exist",
|
|
2616 |
errors.ECODE_INVAL)
|
|
2617 |
|
2611 |
2618 |
node_list = self.acquired_locks[locking.LEVEL_NODE]
|
2612 |
2619 |
|
2613 |
2620 |
# if vg_name not None, checks given volume group on all nodes
|
... | ... | |
2627 |
2634 |
raise errors.OpPrereqError("Error on node '%s': %s" %
|
2628 |
2635 |
(node, vgstatus), errors.ECODE_ENVIRON)
|
2629 |
2636 |
|
|
2637 |
if self.op.drbd_helper:
|
|
2638 |
# checks given drbd helper on all nodes
|
|
2639 |
helpers = self.rpc.call_drbd_helper(node_list)
|
|
2640 |
for node in node_list:
|
|
2641 |
ninfo = self.cfg.GetNodeInfo(node)
|
|
2642 |
if ninfo.offline:
|
|
2643 |
self.LogInfo("Not checking drbd helper on offline node %s", node)
|
|
2644 |
continue
|
|
2645 |
msg = helpers[node].fail_msg
|
|
2646 |
if msg:
|
|
2647 |
raise errors.OpPrereqError("Error checking drbd helper on node"
|
|
2648 |
" '%s': %s" % (node, msg),
|
|
2649 |
errors.ECODE_ENVIRON)
|
|
2650 |
node_helper = helpers[node].payload
|
|
2651 |
if node_helper != self.op.drbd_helper:
|
|
2652 |
raise errors.OpPrereqError("Error on node '%s': drbd helper is %s" %
|
|
2653 |
(node, node_helper), errors.ECODE_ENVIRON)
|
|
2654 |
|
2630 |
2655 |
self.cluster = cluster = self.cfg.GetClusterInfo()
|
2631 |
2656 |
# validate params changes
|
2632 |
2657 |
if self.op.beparams:
|
... | ... | |
2756 |
2781 |
else:
|
2757 |
2782 |
feedback_fn("Cluster LVM configuration already in desired"
|
2758 |
2783 |
" state, not changing")
|
|
2784 |
if self.op.drbd_helper is not None:
|
|
2785 |
new_helper = self.op.drbd_helper
|
|
2786 |
if not new_helper:
|
|
2787 |
new_helper = None
|
|
2788 |
if new_helper != self.cfg.GetDRBDHelper():
|
|
2789 |
self.cfg.SetDRBDHelper(new_helper)
|
|
2790 |
else:
|
|
2791 |
feedback_fn("Cluster DRBD helper already in desired state,"
|
|
2792 |
" not changing")
|
2759 |
2793 |
if self.op.hvparams:
|
2760 |
2794 |
self.cluster.hvparams = self.new_hvparams
|
2761 |
2795 |
if self.op.os_hvp:
|