def download_from_legacy_server(): if config.legacy_server is None or config.legacy_server == "": returnValue(0) logging.info("Downloading hosts from legacy server...") rows = yield database.run_query('SELECT `value` FROM info WHERE `key`="last_legacy_sync"') last_legacy_sync_time = int(rows[0][0]) try: server = yield deferToThread(xmlrpclib.ServerProxy, config.legacy_server) response = yield deferToThread(server.get_new_hosts, last_legacy_sync_time, config.legacy_threshold, [], config.legacy_resiliency) try: last_legacy_sync_time = int(response["timestamp"]) except: logging.ERROR("Illegal timestamp {} from legacy server".format(response["timestamp"])) #Registry.DBPOOL.runOperation('UPDATE info SET `value`=%s WHERE `key`="last_legacy_sync"', (str(last_legacy_sync_time),)) database.run_operation('UPDATE info SET `value`=? WHERE `key`="last_legacy_sync"', str(last_legacy_sync_time)) now = time.time() logging.debug("Got {} hosts from legacy server".format(len(response["hosts"]))) for host in response["hosts"]: legacy = yield Legacy.find(where=["ip_address=?",host], limit=1) if legacy is None: logging.debug("New host from legacy server: {}".format(host)) legacy = Legacy(ip_address=host, retrieved_time=now) else: logging.debug("Known host from legacy server: {}".format(host)) legacy.retrieved_time = now yield legacy.save() except Exception, e: logging.error("Error retrieving info from legacy server: {}".format(e))