def _check_objects(server1, server2, db1, db2, db1_conn, db2_conn, options): """Check number of objects server1[in] first server Server instance server2[in] second server Server instance db1[in] first database db2[in] second database db1_conn[in] first Database instance db2_conn[in] second Database instance options[in] options dictionary Returns list of objects in both databases """ differs = False # Check for same number of objects in_both, in_db1, in_db2 = get_common_objects(server1, server2, db1, db2, False, options) in_both.sort() if not options['no_object_check']: server1_str = "server1." + db1 if server1 == server2: server2_str = "server1." + db2 else: server2_str = "server2." + db2 if len(in_db1) or len(in_db2): if options['run_all_tests']: if len(in_db1) > 0: differs = True print_missing_list(in_db1, server1_str, server2_str) print "#" if len(in_db2) > 0: differs = True print_missing_list(in_db2, server2_str, server1_str) print "#" else: differs = True raise UtilError(_ERROR_OBJECT_LIST.format(db1, db2)) # If in verbose mode, show count of object types. if options['verbosity'] > 1: objects = { 'TABLE': 0, 'VIEW': 0, 'TRIGGER': 0, 'PROCEDURE': 0, 'FUNCTION': 0, 'EVENT': 0, } for item in in_both: obj_type = item[0] objects[obj_type] += 1 print "Looking for object types table, view, trigger, procedure," + \ " function, and event." print "Object types found common to both databases:" for obj in objects: print " {0:>12} : {1}".format(obj, objects[obj]) return (in_both, differs)
def _check_objects(server1, server2, db1, db2, db1_conn, db2_conn, options): """Check number of objects server1[in] first server Server instance server2[in] second server Server instance db1[in] first database db2[in] second database db1_conn[in] first Database instance db2_conn[in] second Database instance options[in] options dictionary Returns list of objects in both databases """ from mysql.utilities.common.dbcompare import get_common_objects from mysql.utilities.common.dbcompare import print_missing_list # Check for same number of objects in_both, in_db1, in_db2 = get_common_objects(server1, server2, db1, db2, False, options) in_both.sort() if not options['no_object_check']: server1_str = "server1." + db1 if server1 == server2: server2_str = "server1." + db2 else: server2_str = "server2." + db2 if len(in_db1) or len(in_db2): if options['run_all_tests']: if len(in_db1) > 0: print_missing_list(in_db1, server1_str, server2_str) print "#" if len(in_db2) > 0: print_missing_list(in_db2, server2_str, server1_str) print "#" else: raise UtilError(_ERROR_OBJECT_LIST.format(db1, db2)) # If in verbose mode, show count of object types. if options['verbosity'] > 1: objects = { 'TABLE' : 0, 'VIEW' : 0, 'TRIGGER' : 0, 'PROCEDURE' : 0, 'FUNCTION' : 0, 'EVENT' : 0, } for item in in_both: obj_type = db1_conn.get_object_type(item[1][0]) objects[obj_type] += 1 print "Looking for object types table, view, trigger, procedure," + \ " function, and event." print "Object types found common to both databases:" for object in objects: print " {0:>12} : {1}".format(object, objects[object]) return in_both