Revision e9ce0a64 lib/cmdlib.py

b/lib/cmdlib.py
650 650
    # compares ganeti version
651 651
    local_version = constants.PROTOCOL_VERSION
652 652
    remote_version = node_result.get('version', None)
653
    if not remote_version:
653
    if not (remote_version and isinstance(remote_version, (list, tuple)) and
654
            len(remote_version) == 2):
654 655
      feedback_fn("  - ERROR: connection to %s failed" % (node))
655 656
      return True
656 657

  
657
    if local_version != remote_version:
658
      feedback_fn("  - ERROR: sw version mismatch: master %s, node(%s) %s" %
659
                      (local_version, node, remote_version))
658
    if local_version != remote_version[0]:
659
      feedback_fn("  - ERROR: incompatible protocol versions: master %s,"
660
                  " node %s %s" % (local_version, node, remote_version[0]))
660 661
      return True
661 662

  
662
    # checks vg existance and size > 20G
663
    # node seems compatible, we can actually try to look into its results
663 664

  
664 665
    bad = False
666

  
667
    # full package version
668
    if constants.RELEASE_VERSION != remote_version[1]:
669
      feedback_fn("  - WARNING: software version mismatch: master %s,"
670
                  " node %s %s" %
671
                  (constants.RELEASE_VERSION, node, remote_version[1]))
672

  
673
    # checks vg existence and size > 20G
674

  
665 675
    vglist = node_result.get(constants.NV_VGLIST, None)
666 676
    if not vglist:
667 677
      feedback_fn("  - ERROR: unable to check volume groups on node %s." %

Also available in: Unified diff