Revision b691385f lib/config.py
b/lib/config.py | ||
---|---|---|
968 | 968 |
should raise an exception |
969 | 969 |
|
970 | 970 |
""" |
971 |
def _AppendUsedPorts(instance_name, disk, used): |
|
971 |
def _AppendUsedPorts(get_node_name_fn, instance_name, disk, used):
|
|
972 | 972 |
duplicates = [] |
973 | 973 |
if disk.dev_type == constants.LD_DRBD8 and len(disk.logical_id) >= 5: |
974 | 974 |
node_a, node_b, _, minor_a, minor_b = disk.logical_id[:5] |
975 |
for node, port in ((node_a, minor_a), (node_b, minor_b)): |
|
976 |
assert node in used, ("Node '%s' of instance '%s' not found" |
|
977 |
" in node list" % (node, instance_name)) |
|
978 |
if port in used[node]: |
|
979 |
duplicates.append((node, port, instance_name, used[node][port])) |
|
975 |
for node_uuid, port in ((node_a, minor_a), (node_b, minor_b)): |
|
976 |
assert node_uuid in used, \ |
|
977 |
("Node '%s' of instance '%s' not found in node list" % |
|
978 |
(get_node_name_fn(node_uuid), instance_name)) |
|
979 |
if port in used[node_uuid]: |
|
980 |
duplicates.append((node_uuid, port, instance_name, |
|
981 |
used[node_uuid][port])) |
|
980 | 982 |
else: |
981 |
used[node][port] = instance_name |
|
983 |
used[node_uuid][port] = instance_name
|
|
982 | 984 |
if disk.children: |
983 | 985 |
for child in disk.children: |
984 |
duplicates.extend(_AppendUsedPorts(instance_name, child, used)) |
|
986 |
duplicates.extend(_AppendUsedPorts(get_node_name_fn, instance_name, |
|
987 |
child, used)) |
|
985 | 988 |
return duplicates |
986 | 989 |
|
987 | 990 |
duplicates = [] |
988 | 991 |
my_dict = dict((node, {}) for node in self._config_data.nodes) |
989 | 992 |
for instance in self._config_data.instances.itervalues(): |
990 | 993 |
for disk in instance.disks: |
991 |
duplicates.extend(_AppendUsedPorts(instance.name, disk, my_dict)) |
|
994 |
duplicates.extend(_AppendUsedPorts(self._UnlockedGetNodeName, |
|
995 |
instance.name, disk, my_dict)) |
|
992 | 996 |
for (node, minor), instance in self._temporary_drbds.iteritems(): |
993 | 997 |
if minor in my_dict[node] and my_dict[node][minor] != instance: |
994 | 998 |
duplicates.append((node, minor, instance, my_dict[node][minor])) |
Also available in: Unified diff