initial commit for uploading just maps over a VM to OVH
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
import paramiko
|
||||
import sys
|
||||
import json
|
||||
|
||||
def load_config(config_file):
|
||||
try:
|
||||
with open(config_file) as infile:
|
||||
try:
|
||||
json_dict = json.load(infile)
|
||||
#logging.info(json_dict)
|
||||
return json_dict["remotes"], json_dict["jobs"], json_dict["settings"]
|
||||
except json.JSONDecodeError as e:
|
||||
logging.warning('exception caught: ', exc_info = True)
|
||||
sys.exit(1)
|
||||
except FileNotFoundError:
|
||||
logging.warning('exception caught: ', exc_info = True)
|
||||
sys.exit(1)
|
||||
|
||||
def create_remote(config, settings):
|
||||
type_r = config["remote_type"]
|
||||
if type_r == "sftp":
|
||||
import remote_sftp
|
||||
remote = remote_sftp.sftp_remote(config, settings)
|
||||
elif type_r == "local_dir":
|
||||
import remote_local_dir
|
||||
remote = remote_local_dir.local_dir_remote(config)
|
||||
return remote
|
||||
|
||||
def distribute_files(path_list, dest):
|
||||
for pathfile in path_list:
|
||||
if not str(pathfile).endswith('.bsp'):
|
||||
continue
|
||||
if not dest.put(pathfile, dest.path):
|
||||
log_msg = ''.join(["failed putting file: ", str(pathfile)])
|
||||
print(log_msg)
|
||||
sys.exit(1)
|
||||
|
||||
def main():
|
||||
config_file = 'config_maps.json'
|
||||
|
||||
ip = sys.argv[1]
|
||||
username = sys.argv[2]
|
||||
password = sys.argv[3]
|
||||
|
||||
remotes, jobs, settings = load_config(config_file)
|
||||
|
||||
remotes["sftp_ovh_ze_maps_dest"]["hostname"] = ip
|
||||
remotes["sftp_ovh_ze_maps_dest"]["username"] = username
|
||||
|
||||
settings["sftp"][ip] = {}
|
||||
settings["sftp"][ip][username] = {"password": password}
|
||||
for index, job in enumerate(jobs):
|
||||
src = create_remote(remotes[job["src"]], settings)
|
||||
dest = create_remote(remotes[job["dest"]], settings)
|
||||
|
||||
source_files = src.list_dir()
|
||||
|
||||
distribute_files(source_files, dest)
|
||||
for pathfile in source_files:
|
||||
src.delete_local_map(pathfile)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user