Ticket #738, ticket #739: repo and sync backup protoype

ticket-769
Vadim vtroshchinskiy 2024-09-13 14:42:00 +02:00
parent 64eba6f500
commit a77eb7a69e
1 changed files with 34 additions and 0 deletions

View File

@ -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/<repo>/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/<repo>/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/<repo>', methods=['DELETE'])
def delete_repo(repo):
repo_path = os.path.join(repositories_base_path, repo + ".git")