cancan-microstack 0.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. cancan_microstack/__init__.py +14 -0
  2. cancan_microstack/__version__.py +10 -0
  3. cancan_microstack/assets/__init__.py +6 -0
  4. cancan_microstack/assets/builds/caddy/Caddyfile +187 -0
  5. cancan_microstack/assets/builds/caddy/DEPLOYMENT.md +303 -0
  6. cancan_microstack/assets/builds/caddy/Dockerfile +46 -0
  7. cancan_microstack/assets/builds/caddy/README.md +343 -0
  8. cancan_microstack/assets/builds/caddy/geoip/README.md +5 -0
  9. cancan_microstack/assets/builds/caddy/start.sh +78 -0
  10. cancan_microstack/assets/builds/caddy/waf/coraza.conf +179 -0
  11. cancan_microstack/assets/builds/service/Dockerfile +59 -0
  12. cancan_microstack/assets/builds/service/README.md +13 -0
  13. cancan_microstack/assets/ddl/create_db.sql +22 -0
  14. cancan_microstack/assets/ddl/infra/execution_log_tbl.sql +46 -0
  15. cancan_microstack/assets/ddl/infra/node_instance_tbl.sql +56 -0
  16. cancan_microstack/assets/ddl/infra/service_action_log_tbl.sql +36 -0
  17. cancan_microstack/assets/ddl/infra/service_config_tbl.sql +26 -0
  18. cancan_microstack/assets/ddl/infra/service_info_tbl.sql +45 -0
  19. cancan_microstack/assets/ddl/infra/service_instance_tbl.sql +54 -0
  20. cancan_microstack/assets/ddl/infra/service_operation_tbl.sql +47 -0
  21. cancan_microstack/assets/ddl/infra/workflow_definition_tbl.sql +60 -0
  22. cancan_microstack/assets/ddl/infra/workflow_definition_version_tbl.sql +35 -0
  23. cancan_microstack/assets/ddl/infra/workflow_engine_alert_tbl.sql +34 -0
  24. cancan_microstack/assets/ddl/infra/workflow_run_tbl.sql +52 -0
  25. cancan_microstack/assets/ddl/ops/admin_user_tbl.sql +34 -0
  26. cancan_microstack/assets/ddl/ops/caddy_access_log_tbl.sql +91 -0
  27. cancan_microstack/assets/ddl/ops/caddy_certificate_tbl.sql +59 -0
  28. cancan_microstack/assets/ddl/ops/caddy_rate_limit_tbl.sql +64 -0
  29. cancan_microstack/assets/ddl/ops/caddy_route_tbl.sql +63 -0
  30. cancan_microstack/assets/ddl/ops/caddy_stats_tbl.sql +77 -0
  31. cancan_microstack/assets/ddl/trigger.sql +21 -0
  32. cancan_microstack/assets/docker/docker-compose.infra.yml +401 -0
  33. cancan_microstack/assets/scripts/README.md +195 -0
  34. cancan_microstack/assets/scripts/docker/build_images.sh +44 -0
  35. cancan_microstack/assets/scripts/docker/force_rebuild_images.sh +38 -0
  36. cancan_microstack/assets/scripts/docker/rebuild_all.sh +34 -0
  37. cancan_microstack/assets/scripts/docker/rebuild_compose.sh +61 -0
  38. cancan_microstack/assets/scripts/docker/restart.sh +35 -0
  39. cancan_microstack/assets/scripts/docker/restart_compose.sh +35 -0
  40. cancan_microstack/assets/scripts/docker/start.sh +78 -0
  41. cancan_microstack/assets/scripts/docker/start_all.sh +46 -0
  42. cancan_microstack/assets/scripts/docker/start_compose.sh +66 -0
  43. cancan_microstack/assets/scripts/docker/stop.sh +67 -0
  44. cancan_microstack/assets/scripts/docker/stop_all.sh +38 -0
  45. cancan_microstack/assets/scripts/docker/stop_compose.sh +38 -0
  46. cancan_microstack/assets/scripts/podman/build_images_podman.sh +59 -0
  47. cancan_microstack/assets/scripts/podman/cleanup_podman.sh +25 -0
  48. cancan_microstack/assets/scripts/podman/force_rebuild_images_podman.sh +56 -0
  49. cancan_microstack/assets/scripts/podman/rebuild_all_podman.sh +37 -0
  50. cancan_microstack/assets/scripts/podman/rebuild_compose_podman.sh +60 -0
  51. cancan_microstack/assets/scripts/podman/restart_compose_podman.sh +73 -0
  52. cancan_microstack/assets/scripts/podman/start_all_podman.sh +66 -0
  53. cancan_microstack/assets/scripts/podman/start_compose_podman.sh +80 -0
  54. cancan_microstack/assets/scripts/podman/start_podman.sh +91 -0
  55. cancan_microstack/assets/scripts/podman/stop.sh +73 -0
  56. cancan_microstack/assets/scripts/podman/stop_all_podman.sh +34 -0
  57. cancan_microstack/assets/scripts/podman/stop_compose_podman.sh +58 -0
  58. cancan_microstack/assets/scripts/start_controllersrv.sh +9 -0
  59. cancan_microstack/assets/scripts/utils/check_all_db_tables.sh +104 -0
  60. cancan_microstack/assets/scripts/utils/check_env.sh +177 -0
  61. cancan_microstack/assets/scripts/utils/check_service_management_deployment.sh +225 -0
  62. cancan_microstack/assets/scripts/utils/deploy_service_management.sh +176 -0
  63. cancan_microstack/assets/scripts/utils/force_reload_infrasrv.sh +52 -0
  64. cancan_microstack/assets/scripts/utils/monitor_service_management.sh +187 -0
  65. cancan_microstack/assets/scripts/utils/reset_postgres_volume.sh +68 -0
  66. cancan_microstack/assets/scripts/utils/test_async_operations.sh +141 -0
  67. cancan_microstack/assets/scripts/utils/verify_real_operations.sh +76 -0
  68. cancan_microstack/assets/service/Dockerfile +65 -0
  69. cancan_microstack/assets/www/adminops/assets/AppEmpty.vue_vue_type_script_setup_true_lang-BOKUurnM.js +1 -0
  70. cancan_microstack/assets/www/adminops/assets/ConfigManage-DKV5YOUz.js +1 -0
  71. cancan_microstack/assets/www/adminops/assets/ConfigManage-Y5bhy7wG.css +1 -0
  72. cancan_microstack/assets/www/adminops/assets/ConsoleManage-8ljYvCW2.js +1 -0
  73. cancan_microstack/assets/www/adminops/assets/ConsoleManage-BWpyqbuQ.css +1 -0
  74. cancan_microstack/assets/www/adminops/assets/DashboardNew-B9Nf1OPl.js +1 -0
  75. cancan_microstack/assets/www/adminops/assets/DashboardNew-DYWZKQ1V.css +1 -0
  76. cancan_microstack/assets/www/adminops/assets/LogSearch-CA0Jhe78.js +1 -0
  77. cancan_microstack/assets/www/adminops/assets/LogSearch-CCZfTNPF.css +1 -0
  78. cancan_microstack/assets/www/adminops/assets/LoginView-BId3kP3M.css +1 -0
  79. cancan_microstack/assets/www/adminops/assets/LoginView-BQZTV_Qy.js +1 -0
  80. cancan_microstack/assets/www/adminops/assets/OperationProgressDialog-BdEYwqFq.js +1 -0
  81. cancan_microstack/assets/www/adminops/assets/OperationProgressDialog-D-pASR8G.css +1 -0
  82. cancan_microstack/assets/www/adminops/assets/PageContainer-Byss-yUC.js +1 -0
  83. cancan_microstack/assets/www/adminops/assets/PageContainer-C3nSZwM7.css +1 -0
  84. cancan_microstack/assets/www/adminops/assets/RateLimitManage-BDI8jLpC.css +1 -0
  85. cancan_microstack/assets/www/adminops/assets/RateLimitManage-DJY4NiF-.js +1 -0
  86. cancan_microstack/assets/www/adminops/assets/RouteManage-DaUQ4QLw.css +1 -0
  87. cancan_microstack/assets/www/adminops/assets/RouteManage-w9XCU0UA.js +1 -0
  88. cancan_microstack/assets/www/adminops/assets/ServiceCard-BFzHe6Tw.css +1 -0
  89. cancan_microstack/assets/www/adminops/assets/ServiceCard-BJUhWnA-.js +1 -0
  90. cancan_microstack/assets/www/adminops/assets/ServiceDetail-Cw24WuKp.js +1 -0
  91. cancan_microstack/assets/www/adminops/assets/ServiceDetail-Yum47zdB.css +1 -0
  92. cancan_microstack/assets/www/adminops/assets/ServiceList-C7ryvbhE.js +1 -0
  93. cancan_microstack/assets/www/adminops/assets/ServiceList-Cgd01fUx.css +1 -0
  94. cancan_microstack/assets/www/adminops/assets/ServiceLogs-COpG9H0h.js +1 -0
  95. cancan_microstack/assets/www/adminops/assets/ServiceLogs-H_Alq0cf.css +1 -0
  96. cancan_microstack/assets/www/adminops/assets/StatsOverview-D0TwMQkA.js +39 -0
  97. cancan_microstack/assets/www/adminops/assets/StatsOverview-lqAN6pqM.css +1 -0
  98. cancan_microstack/assets/www/adminops/assets/TotpBindView-CWlAmzFt.js +1 -0
  99. cancan_microstack/assets/www/adminops/assets/TotpBindView-HoQC1lhx.css +1 -0
  100. cancan_microstack/assets/www/adminops/assets/TotpVerifyView-BHN1VtX1.css +1 -0
  101. cancan_microstack/assets/www/adminops/assets/TotpVerifyView-D3w_lZk8.js +1 -0
  102. cancan_microstack/assets/www/adminops/assets/WorkflowCenter-DU_mpIA0.css +1 -0
  103. cancan_microstack/assets/www/adminops/assets/WorkflowCenter-i50rZyxN.js +1 -0
  104. cancan_microstack/assets/www/adminops/assets/WorkflowDesigner-CnHokPL9.js +1 -0
  105. cancan_microstack/assets/www/adminops/assets/WorkflowDesigner-DaZaZpLd.css +1 -0
  106. cancan_microstack/assets/www/adminops/assets/WorkflowRuns-B09hK48c.js +1 -0
  107. cancan_microstack/assets/www/adminops/assets/WorkflowRuns-wGutKIIU.css +1 -0
  108. cancan_microstack/assets/www/adminops/assets/caddy-nnCKf8fG.js +1 -0
  109. cancan_microstack/assets/www/adminops/assets/format-Cuzxgna9.js +1 -0
  110. cancan_microstack/assets/www/adminops/assets/index-CiFlm8oc.js +64 -0
  111. cancan_microstack/assets/www/adminops/assets/index-UW0T1Dkc.css +1 -0
  112. cancan_microstack/assets/www/adminops/assets/service-BYlgGPs_.js +1 -0
  113. cancan_microstack/assets/www/adminops/assets/service-operation-6GzLw2Z1.js +1 -0
  114. cancan_microstack/assets/www/adminops/assets/style-CcIXnQ5y.css +1 -0
  115. cancan_microstack/assets/www/adminops/assets/style-lRnStdGu.js +39 -0
  116. cancan_microstack/assets/www/adminops/assets/useDebounce-BRlqfXqf.js +1 -0
  117. cancan_microstack/assets/www/adminops/assets/workflow-CUXs39Ac.js +1 -0
  118. cancan_microstack/assets/www/adminops/index.html +16 -0
  119. cancan_microstack/assets/www/adminops/vite.svg +1 -0
  120. cancan_microstack/cli/__init__.py +14 -0
  121. cancan_microstack/cli/__main__.py +9 -0
  122. cancan_microstack/cli/main.py +552 -0
  123. cancan_microstack/cmd/__init__.py +54 -0
  124. cancan_microstack/cmd/cancan/__init__.py +12 -0
  125. cancan_microstack/cmd/cancan/run.py +395 -0
  126. cancan_microstack/cmd/controllersrv/__init__.py +0 -0
  127. cancan_microstack/cmd/controllersrv/run.py +131 -0
  128. cancan_microstack/cmd/infrasrv/__init__.py +5 -0
  129. cancan_microstack/cmd/infrasrv/run.py +100 -0
  130. cancan_microstack/cmd/opsbffsrv/__init__.py +5 -0
  131. cancan_microstack/cmd/opsbffsrv/run.py +96 -0
  132. cancan_microstack/core/__init__.py +5 -0
  133. cancan_microstack/core/assets.py +123 -0
  134. cancan_microstack/core/compose_builder.py +102 -0
  135. cancan_microstack/core/doctor.py +152 -0
  136. cancan_microstack/core/microstack.py +71 -0
  137. cancan_microstack/core/runner.py +56 -0
  138. cancan_microstack/core/stack_manager.py +186 -0
  139. cancan_microstack/public/__init__.py +7 -0
  140. cancan_microstack/public/api/__init__.py +1 -0
  141. cancan_microstack/public/api/controllersrv_client.py +277 -0
  142. cancan_microstack/public/api/infrasrv_client.py +404 -0
  143. cancan_microstack/public/const/__init__.py +1 -0
  144. cancan_microstack/public/const/action_consts.py +18 -0
  145. cancan_microstack/public/const/app_consts.py +42 -0
  146. cancan_microstack/public/const/caddy_consts.py +22 -0
  147. cancan_microstack/public/const/controllersrv_consts.py +163 -0
  148. cancan_microstack/public/const/docker_consts.py +15 -0
  149. cancan_microstack/public/const/error.py +56 -0
  150. cancan_microstack/public/const/health_consts.py +52 -0
  151. cancan_microstack/public/const/hook_enums.py +56 -0
  152. cancan_microstack/public/const/logging_enums.py +13 -0
  153. cancan_microstack/public/const/metrics_enums.py +36 -0
  154. cancan_microstack/public/const/monitor_enums.py +26 -0
  155. cancan_microstack/public/const/operation_consts.py +53 -0
  156. cancan_microstack/public/const/opsbffsrv_error.py +92 -0
  157. cancan_microstack/public/const/overrides_consts.py +13 -0
  158. cancan_microstack/public/const/redis.py +17 -0
  159. cancan_microstack/public/const/service_consts.py +15 -0
  160. cancan_microstack/public/const/workflow_consts.py +65 -0
  161. cancan_microstack/public/error.py +41 -0
  162. cancan_microstack/public/logging/__init__.py +0 -0
  163. cancan_microstack/public/logging/initializer.py +109 -0
  164. cancan_microstack/public/logging/mq_handler.py +279 -0
  165. cancan_microstack/public/schemas/__init__.py +1 -0
  166. cancan_microstack/public/schemas/caddy/__init__.py +381 -0
  167. cancan_microstack/public/schemas/caddy/analysis.py +90 -0
  168. cancan_microstack/public/schemas/caddy/route.py +18 -0
  169. cancan_microstack/public/schemas/common.py +79 -0
  170. cancan_microstack/public/schemas/controllersrv/__init__.py +3 -0
  171. cancan_microstack/public/schemas/controllersrv/async_requests.py +30 -0
  172. cancan_microstack/public/schemas/controllersrv/compose_models.py +47 -0
  173. cancan_microstack/public/schemas/controllersrv/const.py +24 -0
  174. cancan_microstack/public/schemas/controllersrv/docker_models.py +45 -0
  175. cancan_microstack/public/schemas/controllersrv/docker_responses.py +104 -0
  176. cancan_microstack/public/schemas/controllersrv/requests.py +54 -0
  177. cancan_microstack/public/schemas/controllersrv/responses.py +124 -0
  178. cancan_microstack/public/schemas/controllersrv/task_models.py +102 -0
  179. cancan_microstack/public/schemas/controllersrv/validation.py +23 -0
  180. cancan_microstack/public/schemas/hook_metrics.py +124 -0
  181. cancan_microstack/public/schemas/hooks.py +39 -0
  182. cancan_microstack/public/schemas/infra/__init__.py +0 -0
  183. cancan_microstack/public/schemas/infra/cleanup.py +25 -0
  184. cancan_microstack/public/schemas/infra/container.py +74 -0
  185. cancan_microstack/public/schemas/infra/enums.py +135 -0
  186. cancan_microstack/public/schemas/infra/health_check.py +42 -0
  187. cancan_microstack/public/schemas/infra/hook_log.py +42 -0
  188. cancan_microstack/public/schemas/infra/operation.py +90 -0
  189. cancan_microstack/public/schemas/infra/overview.py +25 -0
  190. cancan_microstack/public/schemas/infra/push.py +33 -0
  191. cancan_microstack/public/schemas/infra/service_action_log.py +47 -0
  192. cancan_microstack/public/schemas/infra/service_config.py +10 -0
  193. cancan_microstack/public/schemas/infra/service_info.py +69 -0
  194. cancan_microstack/public/schemas/infra/service_instance.py +93 -0
  195. cancan_microstack/public/schemas/infra/service_management.py +152 -0
  196. cancan_microstack/public/schemas/infra/service_operation.py +79 -0
  197. cancan_microstack/public/schemas/infra/service_registry.py +158 -0
  198. cancan_microstack/public/schemas/infra/status_types.py +19 -0
  199. cancan_microstack/public/schemas/infra/workflow.py +566 -0
  200. cancan_microstack/public/schemas/logging/__init__.py +1 -0
  201. cancan_microstack/public/schemas/logging/log_event.py +121 -0
  202. cancan_microstack/public/schemas/opsbffsrv/__init__.py +1 -0
  203. cancan_microstack/public/schemas/opsbffsrv/async_ops.py +17 -0
  204. cancan_microstack/public/schemas/opsbffsrv/db_admin.py +147 -0
  205. cancan_microstack/public/schemas/opsbffsrv/db_init.py +48 -0
  206. cancan_microstack/public/schemas/opsbffsrv/service_config.py +89 -0
  207. cancan_microstack/public/schemas/opsbffsrv/service_logs.py +54 -0
  208. cancan_microstack/public/schemas/service_operation.py +24 -0
  209. cancan_microstack/public/schemas/service_registry.py +40 -0
  210. cancan_microstack/public/types/__init__.py +7 -0
  211. cancan_microstack/public/web/__init__.py +0 -0
  212. cancan_microstack/public/web/config_value.py +105 -0
  213. cancan_microstack/public/web/server.py +385 -0
  214. cancan_microstack/py.typed +0 -0
  215. cancan_microstack/runtime/__init__.py +0 -0
  216. cancan_microstack/runtime/compose_cmd.py +228 -0
  217. cancan_microstack/runtime/host_daemon.py +318 -0
  218. cancan_microstack/runtime/overrides.py +103 -0
  219. cancan_microstack/runtime/resources.py +25 -0
  220. cancan_microstack/runtime/workspace.py +94 -0
  221. cancan_microstack/services/__init__.py +0 -0
  222. cancan_microstack/services/controllersrv/__init__.py +8 -0
  223. cancan_microstack/services/controllersrv/application/__init__.py +0 -0
  224. cancan_microstack/services/controllersrv/application/docker_compose_app.py +427 -0
  225. cancan_microstack/services/controllersrv/conf/__init__.py +0 -0
  226. cancan_microstack/services/controllersrv/conf/config.py +76 -0
  227. cancan_microstack/services/controllersrv/conf/settings.py +54 -0
  228. cancan_microstack/services/controllersrv/domain/__init__.py +0 -0
  229. cancan_microstack/services/controllersrv/domain/docker_compose/__init__.py +0 -0
  230. cancan_microstack/services/controllersrv/domain/docker_compose/docker_compose_domain.py +278 -0
  231. cancan_microstack/services/controllersrv/domain/service_validator.py +327 -0
  232. cancan_microstack/services/controllersrv/domain/task/__init__.py +17 -0
  233. cancan_microstack/services/controllersrv/domain/task/task_queue.py +286 -0
  234. cancan_microstack/services/controllersrv/domain/task/task_worker.py +495 -0
  235. cancan_microstack/services/controllersrv/infrastructure/__init__.py +0 -0
  236. cancan_microstack/services/controllersrv/interface/__init__.py +0 -0
  237. cancan_microstack/services/controllersrv/interface/api/__init__.py +0 -0
  238. cancan_microstack/services/controllersrv/interface/api/docker_control_api.py +470 -0
  239. cancan_microstack/services/controllersrv/router.py +132 -0
  240. cancan_microstack/services/infrasrv/__init__.py +4 -0
  241. cancan_microstack/services/infrasrv/application/__init__.py +0 -0
  242. cancan_microstack/services/infrasrv/application/health_check_app.py +24 -0
  243. cancan_microstack/services/infrasrv/application/logging/__init__.py +1 -0
  244. cancan_microstack/services/infrasrv/application/logging/log_ingestion_service.py +183 -0
  245. cancan_microstack/services/infrasrv/application/service_config.py +22 -0
  246. cancan_microstack/services/infrasrv/application/service_logs_app.py +53 -0
  247. cancan_microstack/services/infrasrv/application/service_management_app.py +689 -0
  248. cancan_microstack/services/infrasrv/application/service_operation_tracker.py +251 -0
  249. cancan_microstack/services/infrasrv/application/service_registry.py +53 -0
  250. cancan_microstack/services/infrasrv/application/workflow/__init__.py +0 -0
  251. cancan_microstack/services/infrasrv/application/workflow/workflow_app.py +991 -0
  252. cancan_microstack/services/infrasrv/application/workflow/workflow_queue.py +302 -0
  253. cancan_microstack/services/infrasrv/application/workflow/workflow_tasks.py +46 -0
  254. cancan_microstack/services/infrasrv/application/workflow/workflow_worker_runtime.py +122 -0
  255. cancan_microstack/services/infrasrv/conf/__init__.py +0 -0
  256. cancan_microstack/services/infrasrv/conf/config.py +98 -0
  257. cancan_microstack/services/infrasrv/domain/__init__.py +0 -0
  258. cancan_microstack/services/infrasrv/domain/health_check/__init__.py +3 -0
  259. cancan_microstack/services/infrasrv/domain/health_check/health_check_domain.py +576 -0
  260. cancan_microstack/services/infrasrv/domain/hooks/__init__.py +19 -0
  261. cancan_microstack/services/infrasrv/domain/hooks/builtin_hooks.py +308 -0
  262. cancan_microstack/services/infrasrv/domain/hooks/hook_registry.py +43 -0
  263. cancan_microstack/services/infrasrv/domain/hooks/hooks_log_utils.py +275 -0
  264. cancan_microstack/services/infrasrv/domain/hooks/init.py +17 -0
  265. cancan_microstack/services/infrasrv/domain/hooks/metrics.py +205 -0
  266. cancan_microstack/services/infrasrv/domain/hooks/pre_registration_hooks.py +490 -0
  267. cancan_microstack/services/infrasrv/domain/registry/__init__.py +0 -0
  268. cancan_microstack/services/infrasrv/domain/registry/service_registry.py +509 -0
  269. cancan_microstack/services/infrasrv/domain/service_config/__init__.py +0 -0
  270. cancan_microstack/services/infrasrv/domain/service_config/service_config.py +50 -0
  271. cancan_microstack/services/infrasrv/domain/service_logs/__init__.py +0 -0
  272. cancan_microstack/services/infrasrv/domain/service_logs/service_logs_domain.py +51 -0
  273. cancan_microstack/services/infrasrv/domain/workflow/__init__.py +4 -0
  274. cancan_microstack/services/infrasrv/domain/workflow/engine.py +159 -0
  275. cancan_microstack/services/infrasrv/domain/workflow/node_handlers.py +509 -0
  276. cancan_microstack/services/infrasrv/domain/workflow/workflow_domain.py +164 -0
  277. cancan_microstack/services/infrasrv/infrastructure/__init__.py +0 -0
  278. cancan_microstack/services/infrasrv/infrastructure/api/__init__.py +0 -0
  279. cancan_microstack/services/infrasrv/infrastructure/api/controllersrv_api.py +165 -0
  280. cancan_microstack/services/infrasrv/infrastructure/cache/__init__.py +0 -0
  281. cancan_microstack/services/infrasrv/infrastructure/cache/service_registry_cache.py +174 -0
  282. cancan_microstack/services/infrasrv/infrastructure/db/__init__.py +0 -0
  283. cancan_microstack/services/infrasrv/infrastructure/db/model/__init__.py +0 -0
  284. cancan_microstack/services/infrasrv/infrastructure/db/model/execution_log_tbl.py +53 -0
  285. cancan_microstack/services/infrasrv/infrastructure/db/model/node_instance_tbl.py +55 -0
  286. cancan_microstack/services/infrasrv/infrastructure/db/model/service_action_log_tbl.py +44 -0
  287. cancan_microstack/services/infrasrv/infrastructure/db/model/service_config_tbl.py +30 -0
  288. cancan_microstack/services/infrasrv/infrastructure/db/model/service_info_tbl.py +59 -0
  289. cancan_microstack/services/infrasrv/infrastructure/db/model/service_instance_tbl.py +88 -0
  290. cancan_microstack/services/infrasrv/infrastructure/db/model/service_operation_tbl.py +73 -0
  291. cancan_microstack/services/infrasrv/infrastructure/db/model/workflow_definition_tbl.py +55 -0
  292. cancan_microstack/services/infrasrv/infrastructure/db/model/workflow_definition_version_tbl.py +43 -0
  293. cancan_microstack/services/infrasrv/infrastructure/db/model/workflow_engine_alert_tbl.py +57 -0
  294. cancan_microstack/services/infrasrv/infrastructure/db/model/workflow_run_tbl.py +56 -0
  295. cancan_microstack/services/infrasrv/infrastructure/db/operate/__init__.py +0 -0
  296. cancan_microstack/services/infrasrv/infrastructure/db/operate/service_action_log_op.py +239 -0
  297. cancan_microstack/services/infrasrv/infrastructure/db/operate/service_config.py +80 -0
  298. cancan_microstack/services/infrasrv/infrastructure/db/operate/service_config_manager.py +198 -0
  299. cancan_microstack/services/infrasrv/infrastructure/db/operate/service_info_op.py +297 -0
  300. cancan_microstack/services/infrasrv/infrastructure/db/operate/service_instance_op.py +688 -0
  301. cancan_microstack/services/infrasrv/infrastructure/db/operate/service_operation_op.py +387 -0
  302. cancan_microstack/services/infrasrv/infrastructure/db/operate/service_registry.py +124 -0
  303. cancan_microstack/services/infrasrv/infrastructure/db/operate/workflow_op.py +804 -0
  304. cancan_microstack/services/infrasrv/infrastructure/ddl_manager.py +31 -0
  305. cancan_microstack/services/infrasrv/infrastructure/mongo/__init__.py +1 -0
  306. cancan_microstack/services/infrasrv/infrastructure/mongo/log_repository.py +129 -0
  307. cancan_microstack/services/infrasrv/interface/__init__.py +0 -0
  308. cancan_microstack/services/infrasrv/interface/api/__init__.py +0 -0
  309. cancan_microstack/services/infrasrv/interface/api/health_check_api.py +29 -0
  310. cancan_microstack/services/infrasrv/interface/api/hooks.py +284 -0
  311. cancan_microstack/services/infrasrv/interface/api/internal.py +49 -0
  312. cancan_microstack/services/infrasrv/interface/api/internal_instance_api.py +265 -0
  313. cancan_microstack/services/infrasrv/interface/api/internal_operation_api.py +206 -0
  314. cancan_microstack/services/infrasrv/interface/api/service_config.py +50 -0
  315. cancan_microstack/services/infrasrv/interface/api/service_logs_api.py +49 -0
  316. cancan_microstack/services/infrasrv/interface/api/service_management_api.py +113 -0
  317. cancan_microstack/services/infrasrv/interface/api/service_registry.py +117 -0
  318. cancan_microstack/services/infrasrv/interface/api/workflow_api.py +303 -0
  319. cancan_microstack/services/infrasrv/interface/schedule/__init__.py +0 -0
  320. cancan_microstack/services/infrasrv/interface/schedule/cleanup.py +13 -0
  321. cancan_microstack/services/infrasrv/interface/schedule/health_check.py +27 -0
  322. cancan_microstack/services/infrasrv/interface/schedule/log_cleanup.py +26 -0
  323. cancan_microstack/services/infrasrv/interface/schedule/operation_tracker.py +25 -0
  324. cancan_microstack/services/infrasrv/interface/schedule/scheduler.py +39 -0
  325. cancan_microstack/services/infrasrv/interface/schedule/workflow_scheduler.py +115 -0
  326. cancan_microstack/services/infrasrv/router.py +341 -0
  327. cancan_microstack/services/opsbffsrv/__init__.py +4 -0
  328. cancan_microstack/services/opsbffsrv/application/__init__.py +0 -0
  329. cancan_microstack/services/opsbffsrv/application/async_operation_app.py +150 -0
  330. cancan_microstack/services/opsbffsrv/application/auth_app.py +285 -0
  331. cancan_microstack/services/opsbffsrv/application/caddy/__init__.py +0 -0
  332. cancan_microstack/services/opsbffsrv/application/caddy/access_log_analysis_app.py +344 -0
  333. cancan_microstack/services/opsbffsrv/application/caddy/access_log_ingestion_service.py +169 -0
  334. cancan_microstack/services/opsbffsrv/application/caddy/certificate_management_app.py +355 -0
  335. cancan_microstack/services/opsbffsrv/application/caddy/rate_limit_management_app.py +496 -0
  336. cancan_microstack/services/opsbffsrv/application/caddy/route_management_app.py +401 -0
  337. cancan_microstack/services/opsbffsrv/application/caddy/stats_aggregation_app.py +364 -0
  338. cancan_microstack/services/opsbffsrv/application/db_admin_app.py +103 -0
  339. cancan_microstack/services/opsbffsrv/application/db_init_app.py +283 -0
  340. cancan_microstack/services/opsbffsrv/application/logging/__init__.py +1 -0
  341. cancan_microstack/services/opsbffsrv/application/logging/log_query_app.py +28 -0
  342. cancan_microstack/services/opsbffsrv/application/service_config.py +158 -0
  343. cancan_microstack/services/opsbffsrv/application/service_logs_app.py +74 -0
  344. cancan_microstack/services/opsbffsrv/application/service_registry.py +36 -0
  345. cancan_microstack/services/opsbffsrv/application/workflow_ops_app.py +730 -0
  346. cancan_microstack/services/opsbffsrv/conf/__init__.py +0 -0
  347. cancan_microstack/services/opsbffsrv/conf/config.py +224 -0
  348. cancan_microstack/services/opsbffsrv/domain/__init__.py +0 -0
  349. cancan_microstack/services/opsbffsrv/domain/auth/__init__.py +0 -0
  350. cancan_microstack/services/opsbffsrv/domain/auth/admin_init.py +38 -0
  351. cancan_microstack/services/opsbffsrv/domain/auth/auth_domain.py +108 -0
  352. cancan_microstack/services/opsbffsrv/domain/caddy/__init__.py +0 -0
  353. cancan_microstack/services/opsbffsrv/domain/caddy/access_log_analysis.py +358 -0
  354. cancan_microstack/services/opsbffsrv/domain/caddy/certificate_management.py +325 -0
  355. cancan_microstack/services/opsbffsrv/domain/caddy/default_routes.py +53 -0
  356. cancan_microstack/services/opsbffsrv/domain/caddy/rate_limit_management.py +308 -0
  357. cancan_microstack/services/opsbffsrv/domain/caddy/route_management.py +279 -0
  358. cancan_microstack/services/opsbffsrv/domain/caddy/stats_aggregation.py +654 -0
  359. cancan_microstack/services/opsbffsrv/domain/db_admin/__init__.py +0 -0
  360. cancan_microstack/services/opsbffsrv/domain/db_admin/db_admin_domain.py +118 -0
  361. cancan_microstack/services/opsbffsrv/domain/db_init/__init__.py +3 -0
  362. cancan_microstack/services/opsbffsrv/domain/db_init/db_init_domain.py +358 -0
  363. cancan_microstack/services/opsbffsrv/domain/logging/__init__.py +1 -0
  364. cancan_microstack/services/opsbffsrv/domain/logging/log_query_domain.py +99 -0
  365. cancan_microstack/services/opsbffsrv/domain/service_config/__init__.py +0 -0
  366. cancan_microstack/services/opsbffsrv/domain/service_config/service_config.py +81 -0
  367. cancan_microstack/services/opsbffsrv/domain/service_registry/__init__.py +0 -0
  368. cancan_microstack/services/opsbffsrv/domain/service_registry/service_registry.py +292 -0
  369. cancan_microstack/services/opsbffsrv/infrastructure/__init__.py +0 -0
  370. cancan_microstack/services/opsbffsrv/infrastructure/api/__init__.py +0 -0
  371. cancan_microstack/services/opsbffsrv/infrastructure/api/infrasrv_api.py +242 -0
  372. cancan_microstack/services/opsbffsrv/infrastructure/auth/__init__.py +0 -0
  373. cancan_microstack/services/opsbffsrv/infrastructure/auth/captcha_service.py +67 -0
  374. cancan_microstack/services/opsbffsrv/infrastructure/auth/password_service.py +12 -0
  375. cancan_microstack/services/opsbffsrv/infrastructure/auth/redis_store.py +131 -0
  376. cancan_microstack/services/opsbffsrv/infrastructure/auth/totp_service.py +59 -0
  377. cancan_microstack/services/opsbffsrv/infrastructure/caddy/__init__.py +0 -0
  378. cancan_microstack/services/opsbffsrv/infrastructure/caddy/access_log_parser.py +307 -0
  379. cancan_microstack/services/opsbffsrv/infrastructure/caddy/admin_api_client.py +678 -0
  380. cancan_microstack/services/opsbffsrv/infrastructure/caddy/ip_geo_locator.py +176 -0
  381. cancan_microstack/services/opsbffsrv/infrastructure/db/__init__.py +0 -0
  382. cancan_microstack/services/opsbffsrv/infrastructure/db/model/__init__.py +0 -0
  383. cancan_microstack/services/opsbffsrv/infrastructure/db/model/admin_user_tbl.py +33 -0
  384. cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_access_log_tbl.py +90 -0
  385. cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_certificate_tbl.py +65 -0
  386. cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_rate_limit_tbl.py +69 -0
  387. cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_route_tbl.py +66 -0
  388. cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_stats_tbl.py +78 -0
  389. cancan_microstack/services/opsbffsrv/infrastructure/db/model/service_action_log_tbl.py +44 -0
  390. cancan_microstack/services/opsbffsrv/infrastructure/db/model/service_config_tbl.py +30 -0
  391. cancan_microstack/services/opsbffsrv/infrastructure/db/model/service_info_tbl.py +51 -0
  392. cancan_microstack/services/opsbffsrv/infrastructure/db/model/service_instance_tbl.py +68 -0
  393. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/__init__.py +0 -0
  394. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/admin_user_operate.py +59 -0
  395. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_access_log.py +531 -0
  396. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_certificate.py +451 -0
  397. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_rate_limit.py +360 -0
  398. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_route.py +271 -0
  399. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_stats.py +343 -0
  400. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_action_log_op.py +57 -0
  401. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_config.py +86 -0
  402. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_info_op.py +79 -0
  403. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_instance.py +58 -0
  404. cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_registry.py +138 -0
  405. cancan_microstack/services/opsbffsrv/infrastructure/ddl_manager.py +31 -0
  406. cancan_microstack/services/opsbffsrv/infrastructure/mongo/__init__.py +1 -0
  407. cancan_microstack/services/opsbffsrv/infrastructure/mongo/log_query_repository.py +87 -0
  408. cancan_microstack/services/opsbffsrv/interface/__init__.py +0 -0
  409. cancan_microstack/services/opsbffsrv/interface/api/__init__.py +0 -0
  410. cancan_microstack/services/opsbffsrv/interface/api/async_operation_api.py +137 -0
  411. cancan_microstack/services/opsbffsrv/interface/api/auth_api.py +113 -0
  412. cancan_microstack/services/opsbffsrv/interface/api/caddy/__init__.py +3 -0
  413. cancan_microstack/services/opsbffsrv/interface/api/caddy/access_log_api.py +174 -0
  414. cancan_microstack/services/opsbffsrv/interface/api/caddy/certificate_api.py +235 -0
  415. cancan_microstack/services/opsbffsrv/interface/api/caddy/rate_limit_api.py +302 -0
  416. cancan_microstack/services/opsbffsrv/interface/api/caddy/route_api.py +250 -0
  417. cancan_microstack/services/opsbffsrv/interface/api/caddy/stats_api.py +243 -0
  418. cancan_microstack/services/opsbffsrv/interface/api/db_admin_api.py +62 -0
  419. cancan_microstack/services/opsbffsrv/interface/api/db_init_api.py +109 -0
  420. cancan_microstack/services/opsbffsrv/interface/api/instance_management_api.py +165 -0
  421. cancan_microstack/services/opsbffsrv/interface/api/log_query_api.py +41 -0
  422. cancan_microstack/services/opsbffsrv/interface/api/mongo_express_proxy_api.py +181 -0
  423. cancan_microstack/services/opsbffsrv/interface/api/pgweb_proxy_api.py +154 -0
  424. cancan_microstack/services/opsbffsrv/interface/api/rabbitmq_mgmt_proxy_api.py +518 -0
  425. cancan_microstack/services/opsbffsrv/interface/api/redis_commander_proxy_api.py +133 -0
  426. cancan_microstack/services/opsbffsrv/interface/api/service_config.py +146 -0
  427. cancan_microstack/services/opsbffsrv/interface/api/service_logs_api.py +81 -0
  428. cancan_microstack/services/opsbffsrv/interface/api/service_registry.py +66 -0
  429. cancan_microstack/services/opsbffsrv/interface/api/workflow_ops_api.py +413 -0
  430. cancan_microstack/services/opsbffsrv/interface/middleware/__init__.py +0 -0
  431. cancan_microstack/services/opsbffsrv/interface/middleware/auth_middleware.py +52 -0
  432. cancan_microstack/services/opsbffsrv/router.py +901 -0
  433. cancan_microstack/utils/__init__.py +1 -0
  434. cancan_microstack/utils/container_env.py +218 -0
  435. cancan_microstack-0.0.1.dist-info/METADATA +155 -0
  436. cancan_microstack-0.0.1.dist-info/RECORD +440 -0
  437. cancan_microstack-0.0.1.dist-info/WHEEL +5 -0
  438. cancan_microstack-0.0.1.dist-info/entry_points.txt +2 -0
  439. cancan_microstack-0.0.1.dist-info/licenses/LICENSE +21 -0
  440. cancan_microstack-0.0.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,225 @@
1
+ #!/bin/bash
2
+ # 服务管理重构部署检查清单 / Service Management Refactoring Deployment Checklist
3
+
4
+ set -e
5
+
6
+ # 颜色定义 / Color definitions
7
+ RED='\033[0;31m'
8
+ GREEN='\033[0;32m'
9
+ YELLOW='\033[1;33m'
10
+ BLUE='\033[0;34m'
11
+ NC='\033[0m' # No Color
12
+
13
+ # 打印函数 / Print functions
14
+ print_header() {
15
+ echo -e "\n${BLUE}========================================${NC}"
16
+ echo -e "${BLUE}$1${NC}"
17
+ echo -e "${BLUE}========================================${NC}\n"
18
+ }
19
+
20
+ print_success() {
21
+ echo -e "${GREEN}✅ $1${NC}"
22
+ }
23
+
24
+ print_error() {
25
+ echo -e "${RED}❌ $1${NC}"
26
+ }
27
+
28
+ print_warning() {
29
+ echo -e "${YELLOW}⚠️ $1${NC}"
30
+ }
31
+
32
+ print_info() {
33
+ echo -e "${BLUE}ℹ️ $1${NC}"
34
+ }
35
+
36
+ # 检查项目根目录 / Check project root directory
37
+ if [ ! -f "docker-compose.yml" ]; then
38
+ print_error "请在项目根目录运行此脚本 / Please run this script from project root"
39
+ exit 1
40
+ fi
41
+
42
+ PROJECT_ROOT=$(pwd)
43
+
44
+ print_header "服务管理重构部署检查清单 / Service Management Refactoring Deployment Checklist"
45
+
46
+ # 步骤 1: 代码检查 / Step 1: Code checks
47
+ print_header "步骤 1: 代码检查 / Step 1: Code Checks"
48
+
49
+ # 检查新文件是否存在 / Check if new files exist
50
+ print_info "检查新创建的文件 / Checking newly created files..."
51
+
52
+ FILES_TO_CHECK=(
53
+ "src/public/types/infra/service_management.py"
54
+ "src/service/infrasrv/infrastructure/api/controllersrv_api.py"
55
+ "src/service/infrasrv/application/service_management_app.py"
56
+ "src/service/infrasrv/interface/api/service_management_api.py"
57
+ )
58
+
59
+ for file in "${FILES_TO_CHECK[@]}"; do
60
+ if [ -f "$PROJECT_ROOT/$file" ]; then
61
+ print_success "文件存在 / File exists: $file"
62
+ else
63
+ print_error "文件不存在 / File not found: $file"
64
+ exit 1
65
+ fi
66
+ done
67
+
68
+ # 检查旧文件是否已删除 / Check if old files are deleted
69
+ print_info "检查已删除的文件 / Checking deleted files..."
70
+
71
+ OLD_FILE="src/service/opsbffsrv/infrastructure/api/controllersrv_api.py"
72
+ if [ ! -f "$PROJECT_ROOT/$OLD_FILE" ]; then
73
+ print_success "旧文件已删除 / Old file deleted: $OLD_FILE"
74
+ else
75
+ print_warning "旧文件仍然存在,请删除 / Old file still exists, please delete: $OLD_FILE"
76
+ fi
77
+
78
+ # 步骤 2: 语法检查 / Step 2: Syntax checks
79
+ print_header "步骤 2: Python 语法检查 / Step 2: Python Syntax Checks"
80
+
81
+ print_info "检查 Python 语法错误 / Checking Python syntax errors..."
82
+
83
+ PYTHON_FILES=(
84
+ "src/service/infrasrv/application/service_management_app.py"
85
+ "src/service/infrasrv/interface/api/service_management_api.py"
86
+ "src/service/opsbffsrv/application/async_operation_app.py"
87
+ )
88
+
89
+ SYNTAX_ERRORS=0
90
+ for file in "${PYTHON_FILES[@]}"; do
91
+ if python3 -m py_compile "$PROJECT_ROOT/$file" 2>/dev/null; then
92
+ print_success "语法正确 / Syntax OK: $file"
93
+ else
94
+ print_error "语法错误 / Syntax error: $file"
95
+ SYNTAX_ERRORS=$((SYNTAX_ERRORS + 1))
96
+ fi
97
+ done
98
+
99
+ if [ $SYNTAX_ERRORS -gt 0 ]; then
100
+ print_error "发现 $SYNTAX_ERRORS 个语法错误 / Found $SYNTAX_ERRORS syntax errors"
101
+ exit 1
102
+ fi
103
+
104
+ # 步骤 3: 导入检查 / Step 3: Import checks
105
+ print_header "步骤 3: 导入检查 / Step 3: Import Checks"
106
+
107
+ print_info "检查 Python 导入 / Checking Python imports..."
108
+
109
+ cd "$PROJECT_ROOT"
110
+ export PYTHONPATH="$PROJECT_ROOT/src:$PROJECT_ROOT/src/libs:$PYTHONPATH"
111
+
112
+ IMPORT_ERRORS=0
113
+ for file in "${PYTHON_FILES[@]}"; do
114
+ if python3 -c "import sys; sys.path.insert(0, '$PROJECT_ROOT/src'); import importlib.util; spec = importlib.util.spec_from_file_location('test', '$PROJECT_ROOT/$file'); module = importlib.util.module_from_spec(spec)" 2>/dev/null; then
115
+ print_success "导入正确 / Imports OK: $file"
116
+ else
117
+ print_warning "导入可能有问题 / Imports may have issues: $file (需要运行环境 / Requires runtime environment)"
118
+ # 不算作错误,因为可能需要数据库等依赖 / Don't count as error as it may need DB dependencies
119
+ fi
120
+ done
121
+
122
+ # 步骤 4: 服务健康检查 / Step 4: Service health check
123
+ print_header "步骤 4: 服务健康检查 / Step 4: Service Health Check"
124
+
125
+ print_info "检查服务是否运行 / Checking if services are running..."
126
+
127
+ # 检查 infrasrv
128
+ if curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/internal/health | grep -q "200"; then
129
+ print_success "infrasrv 正在运行 / infrasrv is running"
130
+ INFRASRV_RUNNING=true
131
+ else
132
+ print_warning "infrasrv 未运行 / infrasrv is not running"
133
+ INFRASRV_RUNNING=false
134
+ fi
135
+
136
+ # 检查 opsbffsrv
137
+ if curl -s -o /dev/null -w "%{http_code}" http://localhost:8081/internal/health | grep -q "200"; then
138
+ print_success "opsbffsrv 正在运行 / opsbffsrv is running"
139
+ OPSBFFSRV_RUNNING=true
140
+ else
141
+ print_warning "opsbffsrv 未运行 / opsbffsrv is not running"
142
+ OPSBFFSRV_RUNNING=false
143
+ fi
144
+
145
+ # 步骤 5: 部署建议 / Step 5: Deployment recommendations
146
+ print_header "步骤 5: 部署建议 / Step 5: Deployment Recommendations"
147
+
148
+ if [ "$INFRASRV_RUNNING" = false ] || [ "$OPSBFFSRV_RUNNING" = false ]; then
149
+ print_info "服务未运行,准备部署步骤 / Services not running, prepare deployment steps..."
150
+ echo ""
151
+ print_info "部署步骤 / Deployment Steps:"
152
+ echo ""
153
+ echo " 1. 停止现有服务 / Stop existing services:"
154
+ echo " docker-compose stop infrasrv.service opsbffsrv.service"
155
+ echo ""
156
+ echo " 2. 重新构建服务 / Rebuild services (如果有 Dockerfile 修改 / if Dockerfile changed):"
157
+ echo " docker-compose build infrasrv.service opsbffsrv.service"
158
+ echo ""
159
+ echo " 3. 启动 infrasrv / Start infrasrv:"
160
+ echo " docker-compose up -d infrasrv.service"
161
+ echo ""
162
+ echo " 4. 等待 5 秒并验证 infrasrv / Wait 5 seconds and verify infrasrv:"
163
+ echo " sleep 5"
164
+ echo " curl http://localhost:8080/internal/health"
165
+ echo ""
166
+ echo " 5. 启动 opsbffsrv / Start opsbffsrv:"
167
+ echo " docker-compose up -d opsbffsrv.service"
168
+ echo ""
169
+ echo " 6. 验证 opsbffsrv / Verify opsbffsrv:"
170
+ echo " curl http://localhost:8081/internal/health"
171
+ echo ""
172
+ echo " 7. 运行集成测试 / Run integration tests:"
173
+ echo " python test_service_management_refactoring.py"
174
+ echo ""
175
+ else
176
+ print_success "服务正在运行,可以进行热更新部署 / Services are running, can perform hot deployment"
177
+ echo ""
178
+ print_info "热更新步骤 / Hot Update Steps:"
179
+ echo ""
180
+ echo " 1. 重启 infrasrv / Restart infrasrv:"
181
+ echo " docker-compose restart infrasrv.service"
182
+ echo ""
183
+ echo " 2. 验证 infrasrv / Verify infrasrv:"
184
+ echo " curl http://localhost:8080/internal/health"
185
+ echo ""
186
+ echo " 3. 重启 opsbffsrv / Restart opsbffsrv:"
187
+ echo " docker-compose restart opsbffsrv.service"
188
+ echo ""
189
+ echo " 4. 验证 opsbffsrv / Verify opsbffsrv:"
190
+ echo " curl http://localhost:8081/internal/health"
191
+ echo ""
192
+ echo " 5. 运行集成测试 / Run integration tests:"
193
+ echo " python test_service_management_refactoring.py"
194
+ echo ""
195
+ fi
196
+
197
+ # 步骤 6: 回滚计划 / Step 6: Rollback plan
198
+ print_header "步骤 6: 回滚计划 / Step 6: Rollback Plan"
199
+
200
+ print_info "如果部署失败,执行以下回滚步骤 / If deployment fails, execute rollback steps:"
201
+ echo ""
202
+ echo " 1. 恢复代码 / Restore code:"
203
+ echo " git stash"
204
+ echo " git checkout <previous-commit>"
205
+ echo ""
206
+ echo " 2. 重启服务 / Restart services:"
207
+ echo " docker-compose restart infrasrv.service opsbffsrv.service"
208
+ echo ""
209
+ echo " 3. 验证服务 / Verify services:"
210
+ echo " curl http://localhost:8080/internal/health"
211
+ echo " curl http://localhost:8081/internal/health"
212
+ echo ""
213
+
214
+ # 总结 / Summary
215
+ print_header "检查完成 / Check Complete"
216
+
217
+ print_success "所有检查通过 / All checks passed"
218
+ print_info "请按照上述建议进行部署 / Please deploy according to the recommendations above"
219
+
220
+ echo ""
221
+ print_info "下一步 / Next Steps:"
222
+ echo " 1. 按照部署步骤部署服务 / Deploy services according to deployment steps"
223
+ echo " 2. 运行集成测试验证功能 / Run integration tests to verify functionality"
224
+ echo " 3. 监控日志查看是否有错误 / Monitor logs for any errors"
225
+ echo ""
@@ -0,0 +1,176 @@
1
+ #!/bin/bash
2
+ # 一键部署服务管理重构 / One-Click Deployment for Service Management Refactoring
3
+
4
+ set -e
5
+
6
+ # 颜色定义 / Color definitions
7
+ RED='\033[0;31m'
8
+ GREEN='\033[0;32m'
9
+ YELLOW='\033[1;33m'
10
+ BLUE='\033[0;34m'
11
+ NC='\033[0m' # No Color
12
+
13
+ print_header() {
14
+ echo -e "\n${BLUE}========================================${NC}"
15
+ echo -e "${BLUE}$1${NC}"
16
+ echo -e "${BLUE}========================================${NC}\n"
17
+ }
18
+
19
+ print_success() {
20
+ echo -e "${GREEN}✅ $1${NC}"
21
+ }
22
+
23
+ print_error() {
24
+ echo -e "${RED}❌ $1${NC}"
25
+ }
26
+
27
+ print_warning() {
28
+ echo -e "${YELLOW}⚠️ $1${NC}"
29
+ }
30
+
31
+ print_info() {
32
+ echo -e "${BLUE}ℹ️ $1${NC}"
33
+ }
34
+
35
+ # 检查项目根目录 / Check project root directory
36
+ if [ ! -f "docker-compose.yml" ]; then
37
+ print_error "请在项目根目录运行此脚本 / Please run this script from project root"
38
+ exit 1
39
+ fi
40
+
41
+ PROJECT_ROOT=$(pwd)
42
+
43
+ print_header "一键部署服务管理重构 / One-Click Deployment"
44
+
45
+ # 步骤 1: 启动 controllersrv(宿主机运行)
46
+ print_header "步骤 1: 启动 controllersrv / Step 1: Start controllersrv"
47
+
48
+ print_info "检查 controllersrv 是否已运行 / Checking if controllersrv is running..."
49
+
50
+ if ps aux | grep -v grep | grep "cmd/controllersrv/run.py" > /dev/null; then
51
+ print_warning "controllersrv 已经在运行 / controllersrv is already running"
52
+ CONTROLLERSRV_PID=$(ps aux | grep -v grep | grep "cmd/controllersrv/run.py" | awk '{print $2}' | head -n1)
53
+ print_info "PID: $CONTROLLERSRV_PID"
54
+ else
55
+ print_info "启动 controllersrv / Starting controllersrv..."
56
+
57
+ # 使用 nohup 在后台启动
58
+ cd "$PROJECT_ROOT"
59
+ export PYTHONPATH="$PROJECT_ROOT/src:$PROJECT_ROOT/src/libs:$PROJECT_ROOT/cmd"
60
+
61
+ nohup python3 cmd/controllersrv/run.py > server_log_data/controllersrv.log 2>&1 &
62
+ CONTROLLERSRV_PID=$!
63
+
64
+ echo $CONTROLLERSRV_PID > server_log_data/controllersrv.pid
65
+
66
+ print_success "controllersrv 已启动 / controllersrv started (PID: $CONTROLLERSRV_PID)"
67
+
68
+ # 等待 controllersrv 启动
69
+ print_info "等待 controllersrv 启动(5秒)/ Waiting for controllersrv to start (5 seconds)..."
70
+ sleep 5
71
+
72
+ # 验证 controllersrv
73
+ if curl -s -o /dev/null -w "%{http_code}" http://localhost:22100/internal/health | grep -q "200"; then
74
+ print_success "controllersrv 健康检查通过 / controllersrv health check passed"
75
+ else
76
+ print_error "controllersrv 健康检查失败 / controllersrv health check failed"
77
+ print_info "查看日志: tail -f server_log_data/controllersrv.log"
78
+ exit 1
79
+ fi
80
+ fi
81
+
82
+ # 步骤 2: 使用 controllersrv 启动 Docker Compose 服务
83
+ print_header "步骤 2: 启动 Docker Compose 服务 / Step 2: Start Docker Compose Services"
84
+
85
+ print_info "通过 controllersrv API 启动 infrasrv 和 opsbffsrv / Starting infrasrv and opsbffsrv via controllersrv API..."
86
+
87
+ # 启动 infrasrv
88
+ START_RESPONSE=$(curl -s -X POST http://localhost:22100/v1/controllersrv/service/start \
89
+ -H "Content-Type: application/json" \
90
+ -d '{"service_names": ["infrasrv.service"]}')
91
+
92
+ if echo "$START_RESPONSE" | grep -q '"success":true'; then
93
+ print_success "infrasrv 启动命令已发送 / infrasrv start command sent"
94
+ else
95
+ print_error "infrasrv 启动失败 / infrasrv start failed"
96
+ echo "$START_RESPONSE"
97
+ exit 1
98
+ fi
99
+
100
+ # 等待 infrasrv 启动
101
+ print_info "等待 infrasrv 启动(10秒)/ Waiting for infrasrv to start (10 seconds)..."
102
+ sleep 10
103
+
104
+ # 验证 infrasrv
105
+ if curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/internal/health | grep -q "200"; then
106
+ print_success "infrasrv 健康检查通过 / infrasrv health check passed"
107
+ else
108
+ print_warning "infrasrv 健康检查失败,可能仍在启动中 / infrasrv health check failed, may still be starting"
109
+ fi
110
+
111
+ # 启动 opsbffsrv
112
+ START_RESPONSE=$(curl -s -X POST http://localhost:22100/v1/controllersrv/service/start \
113
+ -H "Content-Type: application/json" \
114
+ -d '{"service_names": ["opsbffsrv.service"]}')
115
+
116
+ if echo "$START_RESPONSE" | grep -q '"success":true'; then
117
+ print_success "opsbffsrv 启动命令已发送 / opsbffsrv start command sent"
118
+ else
119
+ print_error "opsbffsrv 启动失败 / opsbffsrv start failed"
120
+ echo "$START_RESPONSE"
121
+ exit 1
122
+ fi
123
+
124
+ # 等待 opsbffsrv 启动
125
+ print_info "等待 opsbffsrv 启动(10秒)/ Waiting for opsbffsrv to start (10 seconds)..."
126
+ sleep 10
127
+
128
+ # 验证 opsbffsrv
129
+ if curl -s -o /dev/null -w "%{http_code}" http://localhost:8081/internal/health | grep -q "200"; then
130
+ print_success "opsbffsrv 健康检查通过 / opsbffsrv health check passed"
131
+ else
132
+ print_warning "opsbffsrv 健康检查失败,可能仍在启动中 / opsbffsrv health check failed, may still be starting"
133
+ fi
134
+
135
+ # 步骤 3: 运行集成测试
136
+ print_header "步骤 3: 运行集成测试 / Step 3: Run Integration Tests"
137
+
138
+ print_info "运行集成测试 / Running integration tests..."
139
+
140
+ if [ -f "$PROJECT_ROOT/test_service_management_refactoring.py" ]; then
141
+ python3 "$PROJECT_ROOT/test_service_management_refactoring.py"
142
+ else
143
+ print_warning "集成测试文件不存在 / Integration test file not found"
144
+ print_info "手动运行: python test_service_management_refactoring.py"
145
+ fi
146
+
147
+ # 步骤 4: 部署完成总结
148
+ print_header "部署完成 / Deployment Complete"
149
+
150
+ print_success "所有服务已启动 / All services started"
151
+
152
+ echo ""
153
+ print_info "服务状态 / Service Status:"
154
+ echo " - controllersrv: http://localhost:22100 (PID: $CONTROLLERSRV_PID)"
155
+ echo " - infrasrv: http://localhost:8080"
156
+ echo " - opsbffsrv: http://localhost:8081"
157
+ echo ""
158
+
159
+ print_info "监控命令 / Monitoring Commands:"
160
+ echo " - controllersrv 日志 / controllersrv logs:"
161
+ echo " tail -f server_log_data/controllersrv.log"
162
+ echo ""
163
+ echo " - infrasrv 日志 / infrasrv logs:"
164
+ echo " docker-compose logs -f infrasrv.service | grep ServiceManagementApp"
165
+ echo ""
166
+ echo " - opsbffsrv 日志 / opsbffsrv logs:"
167
+ echo " docker-compose logs -f opsbffsrv.service | grep AsyncOperationApp"
168
+ echo ""
169
+
170
+ print_info "停止服务 / Stop Services:"
171
+ echo " - 停止 Docker Compose 服务 / Stop Docker Compose services:"
172
+ echo " curl -X POST http://localhost:22100/v1/controllersrv/service/stop -H 'Content-Type: application/json' -d '{\"service_names\":[\"infrasrv.service\",\"opsbffsrv.service\"]}'"
173
+ echo ""
174
+ echo " - 停止 controllersrv / Stop controllersrv:"
175
+ echo " kill \$(cat server_log_data/controllersrv.pid)"
176
+ echo ""
@@ -0,0 +1,52 @@
1
+ #!/bin/bash
2
+
3
+ # 强制重启 infrasrv 并清理旧配置
4
+ # 用于解决配置更新不生效的问题
5
+
6
+ set -e
7
+
8
+ echo "========================================="
9
+ echo "强制重建 infrasrv"
10
+ echo "========================================="
11
+
12
+ # 获取项目根目录
13
+ PROJECT_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
14
+ cd "$PROJECT_ROOT"
15
+
16
+ # 检测容器引擎
17
+ if command -v podman-compose &> /dev/null; then
18
+ COMPOSE_CMD="podman-compose"
19
+ elif command -v docker-compose &> /dev/null; then
20
+ COMPOSE_CMD="docker-compose"
21
+ else
22
+ echo "❌ 未找到 docker-compose 或 podman-compose"
23
+ exit 1
24
+ fi
25
+
26
+ echo "1. 停止 infrasrv..."
27
+ $COMPOSE_CMD -f docker-compose.infra.yml stop infrasrv.service || true
28
+
29
+ echo "2. 删除 infrasrv 容器..."
30
+ if command -v podman &> /dev/null; then
31
+ podman rm -f my_app_infrasrv || true
32
+ else
33
+ docker rm -f my_app_infrasrv || true
34
+ fi
35
+
36
+ echo "3. 重建并启动 infrasrv..."
37
+ $COMPOSE_CMD -f docker-compose.infra.yml up -d --build infrasrv.service
38
+
39
+ echo "4. 等待服务启动..."
40
+ sleep 5
41
+
42
+ echo "5. 验证连接配置..."
43
+ # 检查日志中是否正确连接到 controllersrv
44
+ if command -v podman &> /dev/null; then
45
+ podman logs my_app_infrasrv | grep "ControllerSrvApi initialized"
46
+ else
47
+ docker logs my_app_infrasrv | grep "ControllerSrvApi initialized"
48
+ fi
49
+
50
+ echo ""
51
+ echo "✅ infrasrv 已重建"
52
+ echo "请再次尝试 opsbffsrv 的服务管理操作"
@@ -0,0 +1,187 @@
1
+ #!/bin/bash
2
+ # 服务管理监控脚本 / Service Management Monitoring Script
3
+
4
+ set -e
5
+
6
+ # 颜色定义 / Color definitions
7
+ RED='\033[0;31m'
8
+ GREEN='\033[0;32m'
9
+ YELLOW='\033[1;33m'
10
+ BLUE='\033[0;34m'
11
+ CYAN='\033[0;36m'
12
+ NC='\033[0m' # No Color
13
+
14
+ print_header() {
15
+ echo -e "\n${BLUE}========================================${NC}"
16
+ echo -e "${BLUE}$1${NC}"
17
+ echo -e "${BLUE}========================================${NC}\n"
18
+ }
19
+
20
+ print_success() {
21
+ echo -e "${GREEN}✅ $1${NC}"
22
+ }
23
+
24
+ print_error() {
25
+ echo -e "${RED}❌ $1${NC}"
26
+ }
27
+
28
+ print_warning() {
29
+ echo -e "${YELLOW}⚠️ $1${NC}"
30
+ }
31
+
32
+ print_info() {
33
+ echo -e "${BLUE}ℹ️ $1${NC}"
34
+ }
35
+
36
+ print_data() {
37
+ echo -e "${CYAN}$1${NC}"
38
+ }
39
+
40
+ print_header "服务管理监控 / Service Management Monitoring"
41
+
42
+ # 1. 检查 controllersrv
43
+ print_info "检查 controllersrv / Checking controllersrv..."
44
+
45
+ CONTROLLERSRV_HEALTH=$(curl -s http://localhost:22100/internal/health 2>/dev/null || echo "failed")
46
+
47
+ if echo "$CONTROLLERSRV_HEALTH" | grep -q "success"; then
48
+ print_success "controllersrv 正常 / controllersrv is healthy"
49
+ else
50
+ print_error "controllersrv 异常 / controllersrv is unhealthy"
51
+ fi
52
+
53
+ # 2. 检查 infrasrv
54
+ print_info "检查 infrasrv / Checking infrasrv..."
55
+
56
+ INFRASRV_HEALTH=$(curl -s http://localhost:8080/internal/health 2>/dev/null || echo "failed")
57
+
58
+ if echo "$INFRASRV_HEALTH" | grep -q "success"; then
59
+ print_success "infrasrv 正常 / infrasrv is healthy"
60
+ else
61
+ print_error "infrasrv 异常 / infrasrv is unhealthy"
62
+ fi
63
+
64
+ # 3. 检查 opsbffsrv
65
+ print_info "检查 opsbffsrv / Checking opsbffsrv..."
66
+
67
+ OPSBFFSRV_HEALTH=$(curl -s http://localhost:8081/internal/health 2>/dev/null || echo "failed")
68
+
69
+ if echo "$OPSBFFSRV_HEALTH" | grep -q "success"; then
70
+ print_success "opsbffsrv 正常 / opsbffsrv is healthy"
71
+ else
72
+ print_error "opsbffsrv 异常 / opsbffsrv is unhealthy"
73
+ fi
74
+
75
+ # 4. 查询最近的操作记录
76
+ print_header "最近的服务操作记录 / Recent Service Operations"
77
+
78
+ print_info "查询最近 10 条操作 / Querying last 10 operations..."
79
+
80
+ OPERATIONS=$(curl -s "http://localhost:8081/v1/opsbffsrv/operation/list?page=1&page_size=10" 2>/dev/null || echo '{"success":false}')
81
+
82
+ if echo "$OPERATIONS" | grep -q '"success":true'; then
83
+ print_success "操作记录查询成功 / Operations query successful"
84
+
85
+ # 使用 jq 格式化输出(如果已安装)
86
+ if command -v jq &> /dev/null; then
87
+ echo "$OPERATIONS" | jq -r '.data.records[] | "\(.operation_id) | \(.operation_type) | \(.service_name) | \(.status) | \(.created_time)"' | while read line; do
88
+ print_data " $line"
89
+ done
90
+ else
91
+ print_data "$OPERATIONS"
92
+ print_info "安装 jq 以获得更好的输出格式: brew install jq"
93
+ fi
94
+ else
95
+ print_warning "操作记录查询失败 / Operations query failed"
96
+ echo "$OPERATIONS"
97
+ fi
98
+
99
+ # 5. 检查服务容器状态
100
+ print_header "Docker Compose 容器状态 / Docker Compose Container Status"
101
+
102
+ print_info "查询容器状态 / Querying container status..."
103
+
104
+ CONTAINER_STATUS=$(curl -s "http://localhost:22100/v1/controllersrv/compose/status" 2>/dev/null || echo '{"success":false}')
105
+
106
+ if echo "$CONTAINER_STATUS" | grep -q '"success":true'; then
107
+ print_success "容器状态查询成功 / Container status query successful"
108
+
109
+ if command -v jq &> /dev/null; then
110
+ echo "$CONTAINER_STATUS" | jq -r '.data.services[] | "\(.name) | \(.state) | \(.status)"' | while read line; do
111
+ # 根据状态着色
112
+ if echo "$line" | grep -q "running"; then
113
+ echo -e "${GREEN} $line${NC}"
114
+ elif echo "$line" | grep -q "exited"; then
115
+ echo -e "${RED} $line${NC}"
116
+ else
117
+ echo -e "${YELLOW} $line${NC}"
118
+ fi
119
+ done
120
+ else
121
+ print_data "$CONTAINER_STATUS"
122
+ fi
123
+ else
124
+ print_warning "容器状态查询失败 / Container status query failed"
125
+ echo "$CONTAINER_STATUS"
126
+ fi
127
+
128
+ # 6. 实时日志监控(可选)
129
+ print_header "实时日志监控 / Real-time Log Monitoring"
130
+
131
+ echo ""
132
+ print_info "选择要监控的服务日志 / Select service logs to monitor:"
133
+ echo " 1) controllersrv (宿主机日志 / Host logs)"
134
+ echo " 2) infrasrv (Docker Compose 日志 / Docker Compose logs)"
135
+ echo " 3) opsbffsrv (Docker Compose 日志 / Docker Compose logs)"
136
+ echo " 4) 跳过 / Skip"
137
+ echo ""
138
+
139
+ read -p "请输入选项 / Enter option (1-4): " LOG_CHOICE
140
+
141
+ case $LOG_CHOICE in
142
+ 1)
143
+ print_info "监控 controllersrv 日志 / Monitoring controllersrv logs..."
144
+ print_info "按 Ctrl+C 退出 / Press Ctrl+C to exit"
145
+ sleep 2
146
+ tail -f server_log_data/controllersrv.log 2>/dev/null || print_error "日志文件不存在 / Log file not found"
147
+ ;;
148
+ 2)
149
+ print_info "监控 infrasrv 日志 / Monitoring infrasrv logs..."
150
+ print_info "按 Ctrl+C 退出 / Press Ctrl+C to exit"
151
+ sleep 2
152
+ docker-compose logs -f infrasrv.service 2>/dev/null || print_error "无法获取日志 / Cannot get logs"
153
+ ;;
154
+ 3)
155
+ print_info "监控 opsbffsrv 日志 / Monitoring opsbffsrv logs..."
156
+ print_info "按 Ctrl+C 退出 / Press Ctrl+C to exit"
157
+ sleep 2
158
+ docker-compose logs -f opsbffsrv.service 2>/dev/null || print_error "无法获取日志 / Cannot get logs"
159
+ ;;
160
+ 4)
161
+ print_info "跳过日志监控 / Skipping log monitoring"
162
+ ;;
163
+ *)
164
+ print_warning "无效选项 / Invalid option"
165
+ ;;
166
+ esac
167
+
168
+ print_header "监控完成 / Monitoring Complete"
169
+
170
+ echo ""
171
+ print_info "其他有用的命令 / Other Useful Commands:"
172
+ echo ""
173
+ echo " 查看所有服务日志 / View all service logs:"
174
+ echo " docker-compose logs -f"
175
+ echo ""
176
+ echo " 查看特定服务日志 / View specific service logs:"
177
+ echo " docker-compose logs -f infrasrv.service"
178
+ echo " docker-compose logs -f opsbffsrv.service"
179
+ echo ""
180
+ echo " 查看最近的错误 / View recent errors:"
181
+ echo " docker-compose logs --tail=50 infrasrv.service | grep -i error"
182
+ echo ""
183
+ echo " 重启服务 / Restart services:"
184
+ echo " curl -X POST http://localhost:22100/v1/controllersrv/service/restart \\"
185
+ echo " -H 'Content-Type: application/json' \\"
186
+ echo " -d '{\"service_names\":[\"infrasrv.service\"]}'"
187
+ echo ""