3306 |
3306 |
if self.op.drbd_helper:
|
3307 |
3307 |
# checks given drbd helper on all nodes
|
3308 |
3308 |
helpers = self.rpc.call_drbd_helper(node_list)
|
3309 |
|
for node in node_list:
|
3310 |
|
ninfo = self.cfg.GetNodeInfo(node)
|
|
3309 |
for (node, ninfo) in self.cfg.GetMultiNodeInfo(node_list):
|
3311 |
3310 |
if ninfo.offline:
|
3312 |
3311 |
self.LogInfo("Not checking drbd helper on offline node %s", node)
|
3313 |
3312 |
continue
|
... | ... | |
3866 |
3865 |
if self.op.command in self._SKIP_MASTER:
|
3867 |
3866 |
assert self.master_node not in self.op.node_names
|
3868 |
3867 |
|
3869 |
|
for node_name in self.op.node_names:
|
3870 |
|
node = self.cfg.GetNodeInfo(node_name)
|
3871 |
|
|
|
3868 |
for (node_name, node) in self.cfg.GetMultiNodeInfo(self.op.node_names):
|
3872 |
3869 |
if node is None:
|
3873 |
3870 |
raise errors.OpPrereqError("Node %s not found" % node_name,
|
3874 |
3871 |
errors.ECODE_NOENT)
|
... | ... | |
4616 |
4613 |
if query.IQ_NODES in self.requested_data:
|
4617 |
4614 |
node_names = set(itertools.chain(*map(operator.attrgetter("all_nodes"),
|
4618 |
4615 |
instance_list)))
|
4619 |
|
nodes = dict((name, lu.cfg.GetNodeInfo(name)) for name in node_names)
|
|
4616 |
nodes = dict(lu.cfg.GetMultiNodeInfo(node_names))
|
4620 |
4617 |
groups = dict((uuid, lu.cfg.GetNodeGroup(uuid))
|
4621 |
4618 |
for uuid in set(map(operator.attrgetter("group"),
|
4622 |
4619 |
nodes.values())))
|
... | ... | |
4796 |
4793 |
|
4797 |
4794 |
self.changed_primary_ip = False
|
4798 |
4795 |
|
4799 |
|
for existing_node_name in node_list:
|
4800 |
|
existing_node = cfg.GetNodeInfo(existing_node_name)
|
4801 |
|
|
|
4796 |
for existing_node_name, existing_node in cfg.GetMultiNodeInfo(node_list):
|
4802 |
4797 |
if self.op.readd and node == existing_node_name:
|
4803 |
4798 |
if existing_node.secondary_ip != secondary_ip:
|
4804 |
4799 |
raise errors.OpPrereqError("Readded node doesn't have the same IP"
|
... | ... | |
7429 |
7424 |
# directly, or through an iallocator.
|
7430 |
7425 |
|
7431 |
7426 |
self.all_nodes = [self.source_node, self.target_node]
|
7432 |
|
self.nodes_ip = {
|
7433 |
|
self.source_node: self.cfg.GetNodeInfo(self.source_node).secondary_ip,
|
7434 |
|
self.target_node: self.cfg.GetNodeInfo(self.target_node).secondary_ip,
|
7435 |
|
}
|
|
7427 |
self.nodes_ip = dict((name, node.secondary_ip) for (name, node)
|
|
7428 |
in self.cfg.GetMultiNodeInfo(self.all_nodes))
|
7436 |
7429 |
|
7437 |
7430 |
if self.failover:
|
7438 |
7431 |
feedback_fn("Failover instance %s" % self.instance.name)
|
... | ... | |
9396 |
9389 |
instance.FindDisk(disk_idx)
|
9397 |
9390 |
|
9398 |
9391 |
# Get secondary node IP addresses
|
9399 |
|
self.node_secondary_ip = \
|
9400 |
|
dict((node_name, self.cfg.GetNodeInfo(node_name).secondary_ip)
|
9401 |
|
for node_name in touched_nodes)
|
|
9392 |
self.node_secondary_ip = dict((name, node.secondary_ip) for (name, node)
|
|
9393 |
in self.cfg.GetMultiNodeInfo(touched_nodes))
|
9402 |
9394 |
|
9403 |
9395 |
def Exec(self, feedback_fn):
|
9404 |
9396 |
"""Execute disk replacement.
|
... | ... | |
10377 |
10369 |
|
10378 |
10370 |
cluster = self.cfg.GetClusterInfo()
|
10379 |
10371 |
|
10380 |
|
for instance in self.wanted_instances:
|
10381 |
|
pnode = self.cfg.GetNodeInfo(instance.primary_node)
|
10382 |
|
|
|
10372 |
pri_nodes = self.cfg.GetMultiNodeInfo(i.primary_node
|
|
10373 |
for i in self.wanted_instances)
|
|
10374 |
for instance, (_, pnode) in zip(self.wanted_instances, pri_nodes):
|
10383 |
10375 |
if self.op.static or pnode.offline:
|
10384 |
10376 |
remote_state = None
|
10385 |
10377 |
if pnode.offline:
|