user_id = await get_user() if not user_id: return json.dumps({'status': 'error', 'message': '未登录'}, ensure_ascii=False) rec_id = params_kw.get('id', '') if not rec_id: return json.dumps({'status': 'error', 'message': '缺少id'}, ensure_ascii=False) data = {'id': rec_id, 'updated_at': curDateString()} if 'project_id' in params_kw: data['project_id'] = params_kw['project_id'] if 'env_type' in params_kw: data['env_type'] = params_kw['env_type'] if 'host' in params_kw: data['host'] = params_kw['host'] if 'port' in params_kw: data['port'] = params_kw['port'] if 'user' in params_kw: data['user'] = params_kw['user'] if 'ssh_key_path' in params_kw: data['ssh_key_path'] = params_kw['ssh_key_path'] if 'sudo_enabled' in params_kw: data['sudo_enabled'] = params_kw['sudo_enabled'] if 'deploy_path' in params_kw: data['deploy_path'] = params_kw['deploy_path'] if 'python_path' in params_kw: data['python_path'] = params_kw['python_path'] if 'db_host' in params_kw: data['db_host'] = params_kw['db_host'] if 'db_port' in params_kw: data['db_port'] = params_kw['db_port'] if 'db_name' in params_kw: data['db_name'] = params_kw['db_name'] if 'db_user' in params_kw: data['db_user'] = params_kw['db_user'] if 'db_password' in params_kw: data['db_password'] = params_kw['db_password'] try: async with get_sor_context(request._run_ns, 'pipeline') as sor: await sor.U('sd_deploy_envs', data) return json.dumps({'status': 'ok'}, ensure_ascii=False) except Exception as e: return json.dumps({'status': 'error', 'message': str(e)}, ensure_ascii=False)