#!/usr/bin/python # Copyright 2014 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import os.path import sys import argparse from machine_manager import CrosMachine def PrintUsage (msg): print msg print "Usage: " print ("\n compare_machines.py --chromeos_root=/path/to/chroot/ " "machine1 machine2 ...") def Main (argv): parser = argparse.ArgumentParser() parser.add_argument("--chromeos_root", default="/path/to/chromeos", dest="chromeos_root", help="ChromeOS root checkout directory") parser.add_argument("remotes", nargs=argparse.REMAINDER) options = parser.parse_args(argv) false_arg = True machine_list = options.remotes if len(machine_list) < 2: PrintUsage("ERROR: Must specify at least two machines.") return 1 elif not os.path.exists(options.chromeos_root): PrintUsage("Error: chromeos_root does not exist %s" % options.chromeos_root) return 1 chroot = options.chromeos_root cros_machines = [] test_machine_checksum = None for m in machine_list: cm = CrosMachine(m, chroot, 'average') cros_machines = cros_machines + [ cm ] test_machine_checksum = cm.machine_checksum retval = 0 for cm in cros_machines: print "checksum for %s : %s" % (cm.name, cm.machine_checksum) if cm.machine_checksum != test_machine_checksum: retval = 1 print "Machine checksums do not all match" if retval == 0: print "Machines all match." return retval if __name__ == '__main__': retval = Main(sys.argv[1:]) sys.exit(retval)