diff --git a/api/gitapi.py b/api/gitapi.py index 72fdb19..dc00d0f 100644 --- a/api/gitapi.py +++ b/api/gitapi.py @@ -4,6 +4,7 @@ import os import git import shutil from opengnsys_git_installer import OpengnsysGitInstaller +from flask import request repositories_base_path = "/opt/opengnsys/images" @@ -52,6 +53,39 @@ def create_repo(repo): return jsonify({"status": "Repository created"}), 201 + +@app.route('/repositories//sync', methods=['POST']) +def sync_repo(repo): + + repo_path = os.path.join(repositories_base_path, repo + ".git") + if not os.path.isdir(repo_path): + return jsonify({"error": "Repository not found"}), 404 + + + data = request.json + dest_repo = data["remote_repository"] + + + + return jsonify({"status": "Started synchronization", "repository" : repo, "destination_repository" : dest_repo}), 200 + + +@app.route('/repositories//backup', methods=['POST']) +def backup_repo(repo): + + repo_path = os.path.join(repositories_base_path, repo + ".git") + if not os.path.isdir(repo_path): + return jsonify({"error": "Repository not found"}), 404 + + + data = request.json + dest_server = data["ssh_server"] + dest_user = data["ssh_user"] + dest_file = data["filename"] + + return jsonify({"status": "Started backup", "repository" : repo, "ssh_server" : dest_server, "ssh_user" : dest_user, "filename" : dest_file}), 200 + + @app.route('/repositories/', methods=['DELETE']) def delete_repo(repo): repo_path = os.path.join(repositories_base_path, repo + ".git")