Revision 0ce8f948 lib/config.py
b/lib/config.py | ||
---|---|---|
396 | 396 |
result.append("DRBD minor %d on node %s is assigned twice to instances" |
397 | 397 |
" %s and %s" % (minor, node, instance_a, instance_b)) |
398 | 398 |
|
399 |
# IP checks |
|
400 |
ips = { data.cluster.master_ip: ["cluster_ip"] } |
|
401 |
def _helper(ip, name): |
|
402 |
if ip in ips: |
|
403 |
ips[ip].append(name) |
|
404 |
else: |
|
405 |
ips[ip] = [name] |
|
406 |
|
|
407 |
for node in data.nodes.values(): |
|
408 |
_helper(node.primary_ip, "node:%s/primary" % node.name) |
|
409 |
if node.secondary_ip != node.primary_ip: |
|
410 |
_helper(node.secondary_ip, "node:%s/secondary" % node.name) |
|
411 |
for instance in data.instances.values(): |
|
412 |
for idx, nic in enumerate(instance.nics): |
|
413 |
if nic.ip is not None: |
|
414 |
_helper(nic.ip, "instance:%s/nic:%d" % (instance.name, idx)) |
|
415 |
|
|
416 |
for ip, owners in ips.items(): |
|
417 |
if len(owners) > 1: |
|
418 |
result.append("IP address %s is used by multiple owners: %s" % |
|
419 |
(ip, ", ".join(owners))) |
|
399 | 420 |
return result |
400 | 421 |
|
401 | 422 |
@locking.ssynchronized(_config_lock, shared=1) |
Also available in: Unified diff