aliyun_server_light.py增加安装jsite前端的api端点
This commit is contained in:
parent
e4ea8f6a53
commit
346324377f
@ -414,6 +414,27 @@ class AliyunLightServerManager:
|
||||
jingrow.log_error("获取可升级套餐列表失败", f"获取实例 {instance_id} 可升级套餐时发生错误: {str(e)}")
|
||||
return {'success': False, 'error': str(e), 'message': '获取可升级套餐列表失败'}
|
||||
|
||||
def run_command(self, instance_id, command_content, parameters=None, command_name='CustomCommand', region_id='cn-shanghai', timeout=3600):
|
||||
"""在实例上执行命令"""
|
||||
client = self._get_client(region_id)
|
||||
try:
|
||||
request = swas__open20200601_models.RunCommandRequest(
|
||||
region_id=region_id,
|
||||
command_content=command_content,
|
||||
type='RunShellScript',
|
||||
enable_parameter=True if parameters else False,
|
||||
parameters=parameters or {},
|
||||
instance_id=instance_id,
|
||||
name=command_name,
|
||||
timeout=timeout
|
||||
)
|
||||
runtime = util_models.RuntimeOptions()
|
||||
response = client.run_command_with_options(request, runtime)
|
||||
return {'success': True, 'data': self._convert_response_to_dict(response.body), 'message': '命令执行成功'}
|
||||
except Exception as e:
|
||||
jingrow.log_error("执行命令失败", f"在实例 {instance_id} 上执行命令时发生错误: {str(e)}")
|
||||
return {'success': False, 'error': str(e), 'message': '命令执行失败'}
|
||||
|
||||
|
||||
# 全局管理器实例
|
||||
_aliyun_manager = None
|
||||
@ -1535,4 +1556,40 @@ def get_server_plan_price(instance_id):
|
||||
@jingrow.whitelist()
|
||||
def get_password(pagetype, name, fieldname):
|
||||
|
||||
return jingrow.get_pg(pagetype, name).get_password(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, server_url, api_key, 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 {{server_url}} --api-key {{api_key}} --api-secret {{api_secret}}'
|
||||
|
||||
# 构建参数
|
||||
parameters = {
|
||||
'site_name': site_name,
|
||||
'git_repo': git_repo,
|
||||
'site_url': site_url,
|
||||
'revalidate_token': revalidate_token,
|
||||
'server_url': server_url,
|
||||
'api_key': api_key,
|
||||
'api_secret': 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失败"}
|
||||
Loading…
x
Reference in New Issue
Block a user