From 3bf7b65982a544f2b860001ea490c564b5d18981 Mon Sep 17 00:00:00 2001 From: jingrow Date: Sun, 10 Aug 2025 14:59:21 +0800 Subject: [PATCH] =?UTF-8?q?intall=5Fjsite=E5=87=BD=E6=95=B0=E6=94=B9?= =?UTF-8?q?=E5=90=8D=E4=B8=BAexecute=5Fjsite=5Ftask?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jcloud/api/aliyun_server_light.py | 74 +++++++++++++++---------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/jcloud/api/aliyun_server_light.py b/jcloud/api/aliyun_server_light.py index 3ceccfa..3227635 100644 --- a/jcloud/api/aliyun_server_light.py +++ b/jcloud/api/aliyun_server_light.py @@ -1670,42 +1670,6 @@ def get_password(pagetype, name, fieldname): return jingrow.get_pg(pagetype, name).get_password(fieldname) -@jingrow.whitelist() -def install_jsite(instance_id, site_name, git_repo, site_url, revalidate_token, jingrow_server_url, jingrow_api_key, jingrow_api_secret, region_id='cn-shanghai'): - """在实例上安装Jsite前端""" - try: - # 验证实例ID是否存在 - server = jingrow.get_pg("Jsite Server", {"instance_id": instance_id}) - if not server: - return {"success": False, "message": "找不到对应的服务器记录"} - - # 如果未指定region_id,从服务器记录中获取 - if not region_id: - region_id = server.region - - # 构建命令内容 - command_content = 'curl -s -o /tmp/install_jsite.sh https://cloud.jingrow.com//files/install_jsite.sh && chmod +x /tmp/install_jsite.sh && /tmp/install_jsite.sh --site-name {{site_name}} --git-repo {{git_repo}} --site-url {{site_url}} --revalidate-token {{revalidate_token}} --server-url {{jingrow_server_url}} --api-key {{jingrow_api_key}} --api-secret {{jingrow_api_secret}}' - - # 构建参数 - parameters = { - 'site_name': site_name, - 'git_repo': git_repo, - 'site_url': site_url, - 'revalidate_token': revalidate_token, - 'jingrow_server_url': jingrow_server_url, - 'jingrow_api_key': jingrow_api_key, - 'jingrow_api_secret': jingrow_api_secret - } - - manager = _get_manager() - result = manager.run_command(instance_id, command_content, parameters, 'installJsite', region_id, 3600) - - return result - - except Exception as e: - jingrow.log_error("安装Jsite失败", f"在实例 {instance_id} 上安装Jsite时发生错误: {str(e)}") - return {"success": False, "error": str(e), "message": "安装Jsite失败"} - @jingrow.whitelist() def get_jsite_server(instance_id=None, name=None): """获取Jsite Server记录""" @@ -1919,4 +1883,40 @@ def get_jingrow_firewall_rules(**data): } except Exception as e: - return {"success": False, "message": f"防火墙规则查询失败: {str(e)}"} \ No newline at end of file + return {"success": False, "message": f"防火墙规则查询失败: {str(e)}"} + +@jingrow.whitelist() +def execute_jsite_task(instance_id, site_name, git_repo, site_url, revalidate_token, jingrow_server_url, jingrow_api_key, jingrow_api_secret, region_id='cn-shanghai'): + """在实例上安装Jsite前端""" + try: + # 验证实例ID是否存在 + server = jingrow.get_pg("Jsite Server", {"instance_id": instance_id}) + if not server: + return {"success": False, "message": "找不到对应的服务器记录"} + + # 如果未指定region_id,从服务器记录中获取 + if not region_id: + region_id = server.region + + # 构建命令内容 + command_content = 'curl -s -o /tmp/execute_jsite_task.sh https://cloud.jingrow.com//files/execute_jsite_task.sh && chmod +x /tmp/execute_jsite_task.sh && /tmp/execute_jsite_task.sh --site-name {{site_name}} --git-repo {{git_repo}} --site-url {{site_url}} --revalidate-token {{revalidate_token}} --server-url {{jingrow_server_url}} --api-key {{jingrow_api_key}} --api-secret {{jingrow_api_secret}}' + + # 构建参数 + parameters = { + 'site_name': site_name, + 'git_repo': git_repo, + 'site_url': site_url, + 'revalidate_token': revalidate_token, + 'jingrow_server_url': jingrow_server_url, + 'jingrow_api_key': jingrow_api_key, + 'jingrow_api_secret': jingrow_api_secret + } + + manager = _get_manager() + result = manager.run_command(instance_id, command_content, parameters, 'installJsite', region_id, 3600) + + return result + + except Exception as e: + jingrow.log_error("安装Jsite失败", f"在实例 {instance_id} 上安装Jsite时发生错误: {str(e)}") + return {"success": False, "error": str(e), "message": "安装Jsite失败"}