This commit is contained in:
+22
-3
@@ -1,6 +1,7 @@
|
||||
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
|
||||
import json
|
||||
from typing import List
|
||||
from api import MAPPING, EndPointNotAvailableException, Server, get_logger, get_api_config
|
||||
from api import MAPPING, EndPointNotAvailableException, Option, OptionType, Server, get_logger, get_api_config
|
||||
|
||||
|
||||
parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
|
||||
@@ -23,13 +24,31 @@ if __name__== "__main__":
|
||||
server_list.append(server)
|
||||
else:
|
||||
server_list.extend(apiConfig.server)
|
||||
export_data = {}
|
||||
for server in server_list:
|
||||
export_data[server.name] = {}
|
||||
for table, path in MAPPING.items():
|
||||
try:
|
||||
data = server.request(logger, table=table)
|
||||
logger.info("%s: %s", table, len(data))
|
||||
#if len(data) == 1:
|
||||
# logger.info("show data: %s", data)
|
||||
export_data[server.name][table] = data
|
||||
logger.info("%s: %s exported", table, len(data))
|
||||
except EndPointNotAvailableException:
|
||||
logger.info("Endpoint not implemented")
|
||||
try:
|
||||
json_dump = json.dumps(export_data[server.name], indent=4)
|
||||
file_name = f"{server.name}-data.json"
|
||||
with open(file_name, "w") as dump_file:
|
||||
dump_file.write(json_dump)
|
||||
except TypeError as error:
|
||||
logger.info(f"{error}")
|
||||
for server in server_list:
|
||||
logger.info(f"{server.name}: {len(export_data[server.name])} tables exported")
|
||||
for table, path in MAPPING.items():
|
||||
for item in export_data[server_list[0].name][table]:
|
||||
item_data = server_list[1].request(logger, table=table, param=Option(OptionType.ID, item['id']))
|
||||
if item != item_data:
|
||||
logger.info("diff: %s\n%s", item, item_data)
|
||||
else:
|
||||
logger.info("no changes for: %s", item)
|
||||
logger.info("kontor.sync finished")
|
||||
|
||||
Reference in New Issue
Block a user