Revision b63ed789 lib/cmdlib.py
b/lib/cmdlib.py | ||
---|---|---|
840 | 840 |
# node_volume |
841 | 841 |
volumeinfo = all_volumeinfo[node] |
842 | 842 |
|
843 |
if type(volumeinfo) != dict: |
|
843 |
if isinstance(volumeinfo, basestring): |
|
844 |
feedback_fn(" - ERROR: LVM problem on node %s: %s" % |
|
845 |
(node, volumeinfo[-400:].encode('string_escape'))) |
|
846 |
bad = True |
|
847 |
node_volume[node] = {} |
|
848 |
elif not isinstance(volumeinfo, dict): |
|
844 | 849 |
feedback_fn(" - ERROR: connection to %s failed" % (node,)) |
845 | 850 |
bad = True |
846 | 851 |
continue |
847 |
|
|
848 |
node_volume[node] = volumeinfo |
|
852 |
else: |
|
853 |
node_volume[node] = volumeinfo
|
|
849 | 854 |
|
850 | 855 |
# node_instance |
851 | 856 |
nodeinstance = all_instanceinfo[node] |
... | ... | |
899 | 904 |
"""Verify integrity of cluster disks. |
900 | 905 |
|
901 | 906 |
""" |
902 |
result = res_nodes, res_instances = [], []
|
|
907 |
result = res_nodes, res_nlvm, res_instances, res_missing = [], {}, [], {}
|
|
903 | 908 |
|
904 | 909 |
vg_name = self.cfg.GetVGName() |
905 | 910 |
nodes = utils.NiceSort(self.cfg.GetNodeList()) |
... | ... | |
928 | 933 |
# node_volume |
929 | 934 |
lvs = node_lvs[node] |
930 | 935 |
|
931 |
if not isinstance(lvs, dict): |
|
936 |
if isinstance(lvs, basestring): |
|
937 |
logger.Info("error enumerating LVs on node %s: %s" % (node, lvs)) |
|
938 |
res_nlvm[node] = lvs |
|
939 |
elif not isinstance(lvs, dict): |
|
932 | 940 |
logger.Info("connection to node %s failed or invalid data returned" % |
933 | 941 |
(node,)) |
934 | 942 |
res_nodes.append(node) |
935 | 943 |
continue |
936 | 944 |
|
937 | 945 |
for lv_name, (_, lv_inactive, lv_online) in lvs.iteritems(): |
938 |
if not lv_online:
|
|
939 |
inst = nv_dict.get((node, lv_name), None)
|
|
940 |
if inst is not None and inst.name not in res_instances:
|
|
946 |
inst = nv_dict.pop((node, lv_name), None)
|
|
947 |
if (not lv_online and inst is not None
|
|
948 |
and inst.name not in res_instances):
|
|
941 | 949 |
res_instances.append(inst.name) |
942 | 950 |
|
951 |
# any leftover items in nv_dict are missing LVs, let's arrange the |
|
952 |
# data better |
|
953 |
for key, inst in nv_dict.iteritems(): |
|
954 |
if inst.name not in res_missing: |
|
955 |
res_missing[inst.name] = [] |
|
956 |
res_missing[inst.name].append(key) |
|
957 |
|
|
943 | 958 |
return result |
944 | 959 |
|
945 | 960 |
|
Also available in: Unified diff