def main(args):
client = Client(parse_cli=False, creds_file=args.creds_file, default_instance=args.instance)
config_path = 'Config/%s' % args.key if args.key else 'Config'
try:
config_server = client.request_json(config_path, 'GET')
formatted_server_config = _json_to_sorted_string(config_server)
except HttpException as e:
if e.code == httplib.NOT_FOUND:
formatted_server_config = ''
else:
raise
if not args.config:
logging.info('----------------- Current Server Config --------------------')
_log_and_write_config_lines(formatted_server_config.split('\n'), args.config_output)
else:
with open(args.config) as config_file:
config_file = json.load(config_file)
if not args.key or args.key == 'current_config':
with open(BASE_CONFIG_FILE) as base_config_file:
combined_config = json.load(base_config_file)
combined_config.update(config_file)
else:
combined_config = config_file
comparable_file = _json_to_sorted_string(combined_config)
configs_match = _compare_configs(comparable_file, formatted_server_config, args.config_output)
if not configs_match and args.update:
logging.info('-------------- Updating Server -------------------')
method = 'POST' if args.key else 'PUT'
client.request_json(config_path, method, combined_config)
评论列表
文章目录