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