From 182eb5b4649bfcb7008551630281f1cbe0964414 Mon Sep 17 00:00:00 2001 From: jingrow Date: Tue, 5 Aug 2025 06:46:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BF=AE=E6=94=B9=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=8F=8A=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E5=9F=9F?= =?UTF-8?q?=E5=90=8D=E8=A7=A3=E6=9E=90=E8=AE=B0=E5=BD=95=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E6=9B=B4=E6=96=B0=E6=9C=AC=E5=9C=B0=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E7=9A=84=E6=93=8D=E4=BD=9C=E7=94=B1=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E9=98=9F=E5=88=97=E7=BB=9F=E4=B8=80=E6=94=B9=E4=B8=BA=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....timestamp-1754345788699-f26a21cb45774.mjs | 69 +++++++++++++++ jcloud/api/domain_west.py | 84 +++++++++---------- 2 files changed, 108 insertions(+), 45 deletions(-) create mode 100644 dashboard/vite.config.ts.timestamp-1754345788699-f26a21cb45774.mjs diff --git a/dashboard/vite.config.ts.timestamp-1754345788699-f26a21cb45774.mjs b/dashboard/vite.config.ts.timestamp-1754345788699-f26a21cb45774.mjs new file mode 100644 index 0000000..9f816a0 --- /dev/null +++ b/dashboard/vite.config.ts.timestamp-1754345788699-f26a21cb45774.mjs @@ -0,0 +1,69 @@ +// vite.config.ts +import path from "path"; +import { defineConfig } from "file:///home/jingrow/jingrow-bench/apps/jcloud/dashboard/node_modules/vite/dist/node/index.js"; +import vue from "file:///home/jingrow/jingrow-bench/apps/jcloud/dashboard/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///home/jingrow/jingrow-bench/apps/jcloud/dashboard/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +import jingrowui from "file:///home/jingrow/jingrow-bench/apps/jcloud/dashboard/node_modules/jingrow-ui/vite.js"; +import pluginRewriteAll from "file:///home/jingrow/jingrow-bench/apps/jcloud/dashboard/node_modules/vite-plugin-rewrite-all/dist/index.mjs"; +import Components from "file:///home/jingrow/jingrow-bench/apps/jcloud/dashboard/node_modules/unplugin-vue-components/dist/vite.mjs"; +import Icons from "file:///home/jingrow/jingrow-bench/apps/jcloud/dashboard/node_modules/unplugin-icons/dist/vite.mjs"; +import IconsResolver from "file:///home/jingrow/jingrow-bench/apps/jcloud/dashboard/node_modules/unplugin-icons/dist/resolver.mjs"; +import { sentryVitePlugin } from "file:///home/jingrow/jingrow-bench/apps/jcloud/dashboard/node_modules/@sentry/vite-plugin/dist/esm/index.mjs"; +var __vite_injected_original_dirname = "/home/jingrow/jingrow-bench/apps/jcloud/dashboard"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx(), + pluginRewriteAll(), + jingrowui(), + Components({ + dirs: [ + "src/components", + // 'src2/components', + "node_modules/jingrow-ui/src/components" + ], + resolvers: [IconsResolver()] + }), + Icons(), + sentryVitePlugin({ + url: process.env.SENTRY_URL, + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + applicationKey: "jcloud-dashboard", + authToken: process.env.SENTRY_AUTH_TOKEN + }) + ], + resolve: { + alias: { + "@": path.resolve(__vite_injected_original_dirname, "src") + } + }, + optimizeDeps: { + include: ["feather-icons", "showdown"] + }, + build: { + outDir: "../jcloud/public/dashboard", + emptyOutDir: true, + sourcemap: true, + target: "es2015", + rollupOptions: { + input: { + main: path.resolve(__vite_injected_original_dirname, "index.html") + } + } + }, + // @ts-ignore + test: { + globals: true, + environment: "jsdom", + setupFiles: "src/tests/setup/msw.js", + coverage: { + extension: [".vue", ".js"], + all: true + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvaG9tZS9qaW5ncm93L2ppbmdyb3ctYmVuY2gvYXBwcy9qY2xvdWQvZGFzaGJvYXJkXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvaG9tZS9qaW5ncm93L2ppbmdyb3ctYmVuY2gvYXBwcy9qY2xvdWQvZGFzaGJvYXJkL3ZpdGUuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9ob21lL2ppbmdyb3cvamluZ3Jvdy1iZW5jaC9hcHBzL2pjbG91ZC9kYXNoYm9hcmQvdml0ZS5jb25maWcudHNcIjtpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcclxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAndml0ZSc7XHJcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJztcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4JztcclxuaW1wb3J0IGppbmdyb3d1aSBmcm9tICdqaW5ncm93LXVpL3ZpdGUnO1xyXG5pbXBvcnQgcGx1Z2luUmV3cml0ZUFsbCBmcm9tICd2aXRlLXBsdWdpbi1yZXdyaXRlLWFsbCc7XHJcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnO1xyXG5pbXBvcnQgSWNvbnMgZnJvbSAndW5wbHVnaW4taWNvbnMvdml0ZSc7XHJcbmltcG9ydCBJY29uc1Jlc29sdmVyIGZyb20gJ3VucGx1Z2luLWljb25zL3Jlc29sdmVyJztcclxuaW1wb3J0IHsgc2VudHJ5Vml0ZVBsdWdpbiB9IGZyb20gJ0BzZW50cnkvdml0ZS1wbHVnaW4nO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuXHRwbHVnaW5zOiBbXHJcblx0XHR2dWUoKSxcclxuXHRcdHZ1ZUpzeCgpLFxyXG5cdFx0cGx1Z2luUmV3cml0ZUFsbCgpLFxyXG5cdFx0amluZ3Jvd3VpKCksXHJcblx0XHRDb21wb25lbnRzKHtcclxuXHRcdFx0ZGlyczogW1xyXG5cdFx0XHRcdCdzcmMvY29tcG9uZW50cycsXHJcblx0XHRcdFx0Ly8gJ3NyYzIvY29tcG9uZW50cycsXHJcblx0XHRcdFx0J25vZGVfbW9kdWxlcy9qaW5ncm93LXVpL3NyYy9jb21wb25lbnRzJ1xyXG5cdFx0XHRdLFxyXG5cdFx0XHRyZXNvbHZlcnM6IFtJY29uc1Jlc29sdmVyKCldXHJcblx0XHR9KSxcclxuXHRcdEljb25zKCksXHJcblx0XHRzZW50cnlWaXRlUGx1Z2luKHtcclxuXHRcdFx0dXJsOiBwcm9jZXNzLmVudi5TRU5UUllfVVJMLFxyXG5cdFx0XHRvcmc6IHByb2Nlc3MuZW52LlNFTlRSWV9PUkcsXHJcblx0XHRcdHByb2plY3Q6IHByb2Nlc3MuZW52LlNFTlRSWV9QUk9KRUNULFxyXG5cdFx0XHRhcHBsaWNhdGlvbktleTogJ2pjbG91ZC1kYXNoYm9hcmQnLFxyXG5cdFx0XHRhdXRoVG9rZW46IHByb2Nlc3MuZW52LlNFTlRSWV9BVVRIX1RPS0VOXHJcblx0XHR9KVxyXG5cdF0sXHJcblx0cmVzb2x2ZToge1xyXG5cdFx0YWxpYXM6IHtcclxuXHRcdFx0J0AnOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnc3JjJylcclxuXHRcdH1cclxuXHR9LFxyXG5cdG9wdGltaXplRGVwczoge1xyXG5cdFx0aW5jbHVkZTogWydmZWF0aGVyLWljb25zJywgJ3Nob3dkb3duJ11cclxuXHR9LFxyXG5cdGJ1aWxkOiB7XHJcblx0XHRvdXREaXI6ICcuLi9qY2xvdWQvcHVibGljL2Rhc2hib2FyZCcsXHJcblx0XHRlbXB0eU91dERpcjogdHJ1ZSxcclxuXHRcdHNvdXJjZW1hcDogdHJ1ZSxcclxuXHRcdHRhcmdldDogJ2VzMjAxNScsXHJcblx0XHRyb2xsdXBPcHRpb25zOiB7XHJcblx0XHRcdGlucHV0OiB7XHJcblx0XHRcdFx0bWFpbjogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2luZGV4Lmh0bWwnKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHQvLyBAdHMtaWdub3JlXHJcblx0dGVzdDoge1xyXG5cdFx0Z2xvYmFsczogdHJ1ZSxcclxuXHRcdGVudmlyb25tZW50OiAnanNkb20nLFxyXG5cdFx0c2V0dXBGaWxlczogJ3NyYy90ZXN0cy9zZXR1cC9tc3cuanMnLFxyXG5cdFx0Y292ZXJhZ2U6IHtcclxuXHRcdFx0ZXh0ZW5zaW9uOiBbJy52dWUnLCAnLmpzJ10sXHJcblx0XHRcdGFsbDogdHJ1ZVxyXG5cdFx0fVxyXG5cdH1cclxufSk7XHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBcVUsT0FBTyxVQUFVO0FBQ3RWLFNBQVMsb0JBQW9CO0FBQzdCLE9BQU8sU0FBUztBQUNoQixPQUFPLFlBQVk7QUFDbkIsT0FBTyxlQUFlO0FBQ3RCLE9BQU8sc0JBQXNCO0FBQzdCLE9BQU8sZ0JBQWdCO0FBQ3ZCLE9BQU8sV0FBVztBQUNsQixPQUFPLG1CQUFtQjtBQUMxQixTQUFTLHdCQUF3QjtBQVRqQyxJQUFNLG1DQUFtQztBQVd6QyxJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMzQixTQUFTO0FBQUEsSUFDUixJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsSUFDUCxpQkFBaUI7QUFBQSxJQUNqQixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsTUFDVixNQUFNO0FBQUEsUUFDTDtBQUFBO0FBQUEsUUFFQTtBQUFBLE1BQ0Q7QUFBQSxNQUNBLFdBQVcsQ0FBQyxjQUFjLENBQUM7QUFBQSxJQUM1QixDQUFDO0FBQUEsSUFDRCxNQUFNO0FBQUEsSUFDTixpQkFBaUI7QUFBQSxNQUNoQixLQUFLLFFBQVEsSUFBSTtBQUFBLE1BQ2pCLEtBQUssUUFBUSxJQUFJO0FBQUEsTUFDakIsU0FBUyxRQUFRLElBQUk7QUFBQSxNQUNyQixnQkFBZ0I7QUFBQSxNQUNoQixXQUFXLFFBQVEsSUFBSTtBQUFBLElBQ3hCLENBQUM7QUFBQSxFQUNGO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixPQUFPO0FBQUEsTUFDTixLQUFLLEtBQUssUUFBUSxrQ0FBVyxLQUFLO0FBQUEsSUFDbkM7QUFBQSxFQUNEO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixTQUFTLENBQUMsaUJBQWlCLFVBQVU7QUFBQSxFQUN0QztBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsZUFBZTtBQUFBLE1BQ2QsT0FBTztBQUFBLFFBQ04sTUFBTSxLQUFLLFFBQVEsa0NBQVcsWUFBWTtBQUFBLE1BQzNDO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQTtBQUFBLEVBRUEsTUFBTTtBQUFBLElBQ0wsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLE1BQ1QsV0FBVyxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQ3pCLEtBQUs7QUFBQSxJQUNOO0FBQUEsRUFDRDtBQUNELENBQUM7IiwKICAibmFtZXMiOiBbXQp9Cg== diff --git a/jcloud/api/domain_west.py b/jcloud/api/domain_west.py index 5581b94..195ed8a 100644 --- a/jcloud/api/domain_west.py +++ b/jcloud/api/domain_west.py @@ -1126,7 +1126,7 @@ def west_domain_add_dns_record(**data): # 获取新增记录的ID record_id = response.get("data", {}).get("id") - # 异步添加记录到本地数据库 + # 同步添加记录到本地数据库 if record_id: try: # 查找对应的域名记录 @@ -1138,24 +1138,26 @@ def west_domain_add_dns_record(**data): if domain_records: domain_record = domain_records[0] - jingrow.enqueue( - "jingrow.client.insert_pg", - pg={ - "pagetype": "Dns Resolution", - "parenttype": "Jsite Domain", - "parent": domain_record.name, - "parentfield": "dns_resolution", - "host": host, - "type": record_type, - "value": value, - "ttl": str(ttl), - "level": str(level), - "line": line, - "record_id": record_id - } + # 立即执行插入操作 + # 先获取父记录 + parent_pg = jingrow.get_pg("Jsite Domain", domain_record.name) + # 创建新的DNS记录作为子记录 + dns_pg = jingrow.new_pg( + "Dns Resolution", + parent_pg=parent_pg, + parentfield="dns_resolution", + host=host, + type=record_type, + value=value, + ttl=str(ttl), + level=str(level), + line=line, + record_id=record_id ) + dns_pg.insert(ignore_permissions=True) + jingrow.db.commit() except Exception as e: - jingrow.log_error(f"域名 {domain} DNS记录异步添加失败", f"错误: {str(e)}") + jingrow.log_error(f"域名 {domain} DNS记录同步添加失败", f"错误: {str(e)}") # 返回成功结果 return { @@ -1215,7 +1217,7 @@ def west_domain_delete_dns_record(**data): error_msg = response.get('msg', response.get('message', '未知错误')) return {"status": "error", "message": f"删除DNS记录失败: {error_msg}"} - # 异步删除本地数据库中的对应记录 + # 同步删除本地数据库中的对应记录 if record_id: try: dns_records = jingrow.get_all( @@ -1226,13 +1228,11 @@ def west_domain_delete_dns_record(**data): if dns_records: dns_record = dns_records[0] - jingrow.enqueue( - "jingrow.client.delete_pg", - pagetype="Dns Resolution", - name=dns_record.name - ) + # 立即执行删除操作 + jingrow.delete_pg("Dns Resolution", dns_record.name, ignore_permissions=True) + jingrow.db.commit() except Exception as e: - jingrow.log_error(f"域名 {domain} DNS记录异步删除失败", f"错误: {str(e)}") + jingrow.log_error(f"域名 {domain} DNS记录同步删除失败", f"错误: {str(e)}") # 返回成功结果 return { @@ -1298,7 +1298,7 @@ def west_domain_delete_dns_records(**data): "status": "success" }) - # 异步删除本地数据库中的对应记录 + # 同步删除本地数据库中的对应记录 try: dns_records = jingrow.get_all( "Dns Resolution", @@ -1308,13 +1308,11 @@ def west_domain_delete_dns_records(**data): if dns_records: dns_record = dns_records[0] - jingrow.enqueue( - "jingrow.client.delete_pg", - pagetype="Dns Resolution", - name=dns_record.name - ) + # 立即执行删除操作 + jingrow.delete_pg("Dns Resolution", dns_record.name, ignore_permissions=True) + jingrow.db.commit() except Exception as e: - jingrow.log_error(f"域名 {domain} DNS记录异步删除失败", f"记录ID: {record_id}, 错误: {str(e)}") + jingrow.log_error(f"域名 {domain} DNS记录同步删除失败", f"记录ID: {record_id}, 错误: {str(e)}") except Exception as e: error_count += 1 @@ -2372,7 +2370,7 @@ def west_domain_modify_dns_record(**data): error_msg = response.get('msg', response.get('message', '未知错误')) return {"status": "error", "message": f"修改DNS记录失败: {error_msg}"} - # 异步更新本地数据库中的对应记录 + # 同步更新本地数据库中的对应记录 if record_id: try: # 查找对应的DNS记录 @@ -2384,20 +2382,16 @@ def west_domain_modify_dns_record(**data): if dns_records: dns_record = dns_records[0] - # 使用jingrow自带的异步更新方法 - jingrow.enqueue( - "jingrow.client.set_value", - pagetype="Dns Resolution", - name=dns_record.name, - fieldname={ - "value": value, - "ttl": str(ttl), - "level": str(level), - "line": line - } - ) + # 立即执行更新操作 + jingrow.set_value("Dns Resolution", dns_record.name, { + "value": value, + "ttl": str(ttl), + "level": str(level), + "line": line + }) + jingrow.db.commit() except Exception as e: - jingrow.log_error(f"域名 {domain} DNS记录异步更新失败", f"错误: {str(e)}") + jingrow.log_error(f"域名 {domain} DNS记录同步更新失败", f"错误: {str(e)}") # 返回成功结果 return {