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.
- cancan_microstack/__init__.py +14 -0
- cancan_microstack/__version__.py +10 -0
- cancan_microstack/assets/__init__.py +6 -0
- cancan_microstack/assets/builds/caddy/Caddyfile +187 -0
- cancan_microstack/assets/builds/caddy/DEPLOYMENT.md +303 -0
- cancan_microstack/assets/builds/caddy/Dockerfile +46 -0
- cancan_microstack/assets/builds/caddy/README.md +343 -0
- cancan_microstack/assets/builds/caddy/geoip/README.md +5 -0
- cancan_microstack/assets/builds/caddy/start.sh +78 -0
- cancan_microstack/assets/builds/caddy/waf/coraza.conf +179 -0
- cancan_microstack/assets/builds/service/Dockerfile +59 -0
- cancan_microstack/assets/builds/service/README.md +13 -0
- cancan_microstack/assets/ddl/create_db.sql +22 -0
- cancan_microstack/assets/ddl/infra/execution_log_tbl.sql +46 -0
- cancan_microstack/assets/ddl/infra/node_instance_tbl.sql +56 -0
- cancan_microstack/assets/ddl/infra/service_action_log_tbl.sql +36 -0
- cancan_microstack/assets/ddl/infra/service_config_tbl.sql +26 -0
- cancan_microstack/assets/ddl/infra/service_info_tbl.sql +45 -0
- cancan_microstack/assets/ddl/infra/service_instance_tbl.sql +54 -0
- cancan_microstack/assets/ddl/infra/service_operation_tbl.sql +47 -0
- cancan_microstack/assets/ddl/infra/workflow_definition_tbl.sql +60 -0
- cancan_microstack/assets/ddl/infra/workflow_definition_version_tbl.sql +35 -0
- cancan_microstack/assets/ddl/infra/workflow_engine_alert_tbl.sql +34 -0
- cancan_microstack/assets/ddl/infra/workflow_run_tbl.sql +52 -0
- cancan_microstack/assets/ddl/ops/admin_user_tbl.sql +34 -0
- cancan_microstack/assets/ddl/ops/caddy_access_log_tbl.sql +91 -0
- cancan_microstack/assets/ddl/ops/caddy_certificate_tbl.sql +59 -0
- cancan_microstack/assets/ddl/ops/caddy_rate_limit_tbl.sql +64 -0
- cancan_microstack/assets/ddl/ops/caddy_route_tbl.sql +63 -0
- cancan_microstack/assets/ddl/ops/caddy_stats_tbl.sql +77 -0
- cancan_microstack/assets/ddl/trigger.sql +21 -0
- cancan_microstack/assets/docker/docker-compose.infra.yml +401 -0
- cancan_microstack/assets/scripts/README.md +195 -0
- cancan_microstack/assets/scripts/docker/build_images.sh +44 -0
- cancan_microstack/assets/scripts/docker/force_rebuild_images.sh +38 -0
- cancan_microstack/assets/scripts/docker/rebuild_all.sh +34 -0
- cancan_microstack/assets/scripts/docker/rebuild_compose.sh +61 -0
- cancan_microstack/assets/scripts/docker/restart.sh +35 -0
- cancan_microstack/assets/scripts/docker/restart_compose.sh +35 -0
- cancan_microstack/assets/scripts/docker/start.sh +78 -0
- cancan_microstack/assets/scripts/docker/start_all.sh +46 -0
- cancan_microstack/assets/scripts/docker/start_compose.sh +66 -0
- cancan_microstack/assets/scripts/docker/stop.sh +67 -0
- cancan_microstack/assets/scripts/docker/stop_all.sh +38 -0
- cancan_microstack/assets/scripts/docker/stop_compose.sh +38 -0
- cancan_microstack/assets/scripts/podman/build_images_podman.sh +59 -0
- cancan_microstack/assets/scripts/podman/cleanup_podman.sh +25 -0
- cancan_microstack/assets/scripts/podman/force_rebuild_images_podman.sh +56 -0
- cancan_microstack/assets/scripts/podman/rebuild_all_podman.sh +37 -0
- cancan_microstack/assets/scripts/podman/rebuild_compose_podman.sh +60 -0
- cancan_microstack/assets/scripts/podman/restart_compose_podman.sh +73 -0
- cancan_microstack/assets/scripts/podman/start_all_podman.sh +66 -0
- cancan_microstack/assets/scripts/podman/start_compose_podman.sh +80 -0
- cancan_microstack/assets/scripts/podman/start_podman.sh +91 -0
- cancan_microstack/assets/scripts/podman/stop.sh +73 -0
- cancan_microstack/assets/scripts/podman/stop_all_podman.sh +34 -0
- cancan_microstack/assets/scripts/podman/stop_compose_podman.sh +58 -0
- cancan_microstack/assets/scripts/start_controllersrv.sh +9 -0
- cancan_microstack/assets/scripts/utils/check_all_db_tables.sh +104 -0
- cancan_microstack/assets/scripts/utils/check_env.sh +177 -0
- cancan_microstack/assets/scripts/utils/check_service_management_deployment.sh +225 -0
- cancan_microstack/assets/scripts/utils/deploy_service_management.sh +176 -0
- cancan_microstack/assets/scripts/utils/force_reload_infrasrv.sh +52 -0
- cancan_microstack/assets/scripts/utils/monitor_service_management.sh +187 -0
- cancan_microstack/assets/scripts/utils/reset_postgres_volume.sh +68 -0
- cancan_microstack/assets/scripts/utils/test_async_operations.sh +141 -0
- cancan_microstack/assets/scripts/utils/verify_real_operations.sh +76 -0
- cancan_microstack/assets/service/Dockerfile +65 -0
- cancan_microstack/assets/www/adminops/assets/AppEmpty.vue_vue_type_script_setup_true_lang-BOKUurnM.js +1 -0
- cancan_microstack/assets/www/adminops/assets/ConfigManage-DKV5YOUz.js +1 -0
- cancan_microstack/assets/www/adminops/assets/ConfigManage-Y5bhy7wG.css +1 -0
- cancan_microstack/assets/www/adminops/assets/ConsoleManage-8ljYvCW2.js +1 -0
- cancan_microstack/assets/www/adminops/assets/ConsoleManage-BWpyqbuQ.css +1 -0
- cancan_microstack/assets/www/adminops/assets/DashboardNew-B9Nf1OPl.js +1 -0
- cancan_microstack/assets/www/adminops/assets/DashboardNew-DYWZKQ1V.css +1 -0
- cancan_microstack/assets/www/adminops/assets/LogSearch-CA0Jhe78.js +1 -0
- cancan_microstack/assets/www/adminops/assets/LogSearch-CCZfTNPF.css +1 -0
- cancan_microstack/assets/www/adminops/assets/LoginView-BId3kP3M.css +1 -0
- cancan_microstack/assets/www/adminops/assets/LoginView-BQZTV_Qy.js +1 -0
- cancan_microstack/assets/www/adminops/assets/OperationProgressDialog-BdEYwqFq.js +1 -0
- cancan_microstack/assets/www/adminops/assets/OperationProgressDialog-D-pASR8G.css +1 -0
- cancan_microstack/assets/www/adminops/assets/PageContainer-Byss-yUC.js +1 -0
- cancan_microstack/assets/www/adminops/assets/PageContainer-C3nSZwM7.css +1 -0
- cancan_microstack/assets/www/adminops/assets/RateLimitManage-BDI8jLpC.css +1 -0
- cancan_microstack/assets/www/adminops/assets/RateLimitManage-DJY4NiF-.js +1 -0
- cancan_microstack/assets/www/adminops/assets/RouteManage-DaUQ4QLw.css +1 -0
- cancan_microstack/assets/www/adminops/assets/RouteManage-w9XCU0UA.js +1 -0
- cancan_microstack/assets/www/adminops/assets/ServiceCard-BFzHe6Tw.css +1 -0
- cancan_microstack/assets/www/adminops/assets/ServiceCard-BJUhWnA-.js +1 -0
- cancan_microstack/assets/www/adminops/assets/ServiceDetail-Cw24WuKp.js +1 -0
- cancan_microstack/assets/www/adminops/assets/ServiceDetail-Yum47zdB.css +1 -0
- cancan_microstack/assets/www/adminops/assets/ServiceList-C7ryvbhE.js +1 -0
- cancan_microstack/assets/www/adminops/assets/ServiceList-Cgd01fUx.css +1 -0
- cancan_microstack/assets/www/adminops/assets/ServiceLogs-COpG9H0h.js +1 -0
- cancan_microstack/assets/www/adminops/assets/ServiceLogs-H_Alq0cf.css +1 -0
- cancan_microstack/assets/www/adminops/assets/StatsOverview-D0TwMQkA.js +39 -0
- cancan_microstack/assets/www/adminops/assets/StatsOverview-lqAN6pqM.css +1 -0
- cancan_microstack/assets/www/adminops/assets/TotpBindView-CWlAmzFt.js +1 -0
- cancan_microstack/assets/www/adminops/assets/TotpBindView-HoQC1lhx.css +1 -0
- cancan_microstack/assets/www/adminops/assets/TotpVerifyView-BHN1VtX1.css +1 -0
- cancan_microstack/assets/www/adminops/assets/TotpVerifyView-D3w_lZk8.js +1 -0
- cancan_microstack/assets/www/adminops/assets/WorkflowCenter-DU_mpIA0.css +1 -0
- cancan_microstack/assets/www/adminops/assets/WorkflowCenter-i50rZyxN.js +1 -0
- cancan_microstack/assets/www/adminops/assets/WorkflowDesigner-CnHokPL9.js +1 -0
- cancan_microstack/assets/www/adminops/assets/WorkflowDesigner-DaZaZpLd.css +1 -0
- cancan_microstack/assets/www/adminops/assets/WorkflowRuns-B09hK48c.js +1 -0
- cancan_microstack/assets/www/adminops/assets/WorkflowRuns-wGutKIIU.css +1 -0
- cancan_microstack/assets/www/adminops/assets/caddy-nnCKf8fG.js +1 -0
- cancan_microstack/assets/www/adminops/assets/format-Cuzxgna9.js +1 -0
- cancan_microstack/assets/www/adminops/assets/index-CiFlm8oc.js +64 -0
- cancan_microstack/assets/www/adminops/assets/index-UW0T1Dkc.css +1 -0
- cancan_microstack/assets/www/adminops/assets/service-BYlgGPs_.js +1 -0
- cancan_microstack/assets/www/adminops/assets/service-operation-6GzLw2Z1.js +1 -0
- cancan_microstack/assets/www/adminops/assets/style-CcIXnQ5y.css +1 -0
- cancan_microstack/assets/www/adminops/assets/style-lRnStdGu.js +39 -0
- cancan_microstack/assets/www/adminops/assets/useDebounce-BRlqfXqf.js +1 -0
- cancan_microstack/assets/www/adminops/assets/workflow-CUXs39Ac.js +1 -0
- cancan_microstack/assets/www/adminops/index.html +16 -0
- cancan_microstack/assets/www/adminops/vite.svg +1 -0
- cancan_microstack/cli/__init__.py +14 -0
- cancan_microstack/cli/__main__.py +9 -0
- cancan_microstack/cli/main.py +552 -0
- cancan_microstack/cmd/__init__.py +54 -0
- cancan_microstack/cmd/cancan/__init__.py +12 -0
- cancan_microstack/cmd/cancan/run.py +395 -0
- cancan_microstack/cmd/controllersrv/__init__.py +0 -0
- cancan_microstack/cmd/controllersrv/run.py +131 -0
- cancan_microstack/cmd/infrasrv/__init__.py +5 -0
- cancan_microstack/cmd/infrasrv/run.py +100 -0
- cancan_microstack/cmd/opsbffsrv/__init__.py +5 -0
- cancan_microstack/cmd/opsbffsrv/run.py +96 -0
- cancan_microstack/core/__init__.py +5 -0
- cancan_microstack/core/assets.py +123 -0
- cancan_microstack/core/compose_builder.py +102 -0
- cancan_microstack/core/doctor.py +152 -0
- cancan_microstack/core/microstack.py +71 -0
- cancan_microstack/core/runner.py +56 -0
- cancan_microstack/core/stack_manager.py +186 -0
- cancan_microstack/public/__init__.py +7 -0
- cancan_microstack/public/api/__init__.py +1 -0
- cancan_microstack/public/api/controllersrv_client.py +277 -0
- cancan_microstack/public/api/infrasrv_client.py +404 -0
- cancan_microstack/public/const/__init__.py +1 -0
- cancan_microstack/public/const/action_consts.py +18 -0
- cancan_microstack/public/const/app_consts.py +42 -0
- cancan_microstack/public/const/caddy_consts.py +22 -0
- cancan_microstack/public/const/controllersrv_consts.py +163 -0
- cancan_microstack/public/const/docker_consts.py +15 -0
- cancan_microstack/public/const/error.py +56 -0
- cancan_microstack/public/const/health_consts.py +52 -0
- cancan_microstack/public/const/hook_enums.py +56 -0
- cancan_microstack/public/const/logging_enums.py +13 -0
- cancan_microstack/public/const/metrics_enums.py +36 -0
- cancan_microstack/public/const/monitor_enums.py +26 -0
- cancan_microstack/public/const/operation_consts.py +53 -0
- cancan_microstack/public/const/opsbffsrv_error.py +92 -0
- cancan_microstack/public/const/overrides_consts.py +13 -0
- cancan_microstack/public/const/redis.py +17 -0
- cancan_microstack/public/const/service_consts.py +15 -0
- cancan_microstack/public/const/workflow_consts.py +65 -0
- cancan_microstack/public/error.py +41 -0
- cancan_microstack/public/logging/__init__.py +0 -0
- cancan_microstack/public/logging/initializer.py +109 -0
- cancan_microstack/public/logging/mq_handler.py +279 -0
- cancan_microstack/public/schemas/__init__.py +1 -0
- cancan_microstack/public/schemas/caddy/__init__.py +381 -0
- cancan_microstack/public/schemas/caddy/analysis.py +90 -0
- cancan_microstack/public/schemas/caddy/route.py +18 -0
- cancan_microstack/public/schemas/common.py +79 -0
- cancan_microstack/public/schemas/controllersrv/__init__.py +3 -0
- cancan_microstack/public/schemas/controllersrv/async_requests.py +30 -0
- cancan_microstack/public/schemas/controllersrv/compose_models.py +47 -0
- cancan_microstack/public/schemas/controllersrv/const.py +24 -0
- cancan_microstack/public/schemas/controllersrv/docker_models.py +45 -0
- cancan_microstack/public/schemas/controllersrv/docker_responses.py +104 -0
- cancan_microstack/public/schemas/controllersrv/requests.py +54 -0
- cancan_microstack/public/schemas/controllersrv/responses.py +124 -0
- cancan_microstack/public/schemas/controllersrv/task_models.py +102 -0
- cancan_microstack/public/schemas/controllersrv/validation.py +23 -0
- cancan_microstack/public/schemas/hook_metrics.py +124 -0
- cancan_microstack/public/schemas/hooks.py +39 -0
- cancan_microstack/public/schemas/infra/__init__.py +0 -0
- cancan_microstack/public/schemas/infra/cleanup.py +25 -0
- cancan_microstack/public/schemas/infra/container.py +74 -0
- cancan_microstack/public/schemas/infra/enums.py +135 -0
- cancan_microstack/public/schemas/infra/health_check.py +42 -0
- cancan_microstack/public/schemas/infra/hook_log.py +42 -0
- cancan_microstack/public/schemas/infra/operation.py +90 -0
- cancan_microstack/public/schemas/infra/overview.py +25 -0
- cancan_microstack/public/schemas/infra/push.py +33 -0
- cancan_microstack/public/schemas/infra/service_action_log.py +47 -0
- cancan_microstack/public/schemas/infra/service_config.py +10 -0
- cancan_microstack/public/schemas/infra/service_info.py +69 -0
- cancan_microstack/public/schemas/infra/service_instance.py +93 -0
- cancan_microstack/public/schemas/infra/service_management.py +152 -0
- cancan_microstack/public/schemas/infra/service_operation.py +79 -0
- cancan_microstack/public/schemas/infra/service_registry.py +158 -0
- cancan_microstack/public/schemas/infra/status_types.py +19 -0
- cancan_microstack/public/schemas/infra/workflow.py +566 -0
- cancan_microstack/public/schemas/logging/__init__.py +1 -0
- cancan_microstack/public/schemas/logging/log_event.py +121 -0
- cancan_microstack/public/schemas/opsbffsrv/__init__.py +1 -0
- cancan_microstack/public/schemas/opsbffsrv/async_ops.py +17 -0
- cancan_microstack/public/schemas/opsbffsrv/db_admin.py +147 -0
- cancan_microstack/public/schemas/opsbffsrv/db_init.py +48 -0
- cancan_microstack/public/schemas/opsbffsrv/service_config.py +89 -0
- cancan_microstack/public/schemas/opsbffsrv/service_logs.py +54 -0
- cancan_microstack/public/schemas/service_operation.py +24 -0
- cancan_microstack/public/schemas/service_registry.py +40 -0
- cancan_microstack/public/types/__init__.py +7 -0
- cancan_microstack/public/web/__init__.py +0 -0
- cancan_microstack/public/web/config_value.py +105 -0
- cancan_microstack/public/web/server.py +385 -0
- cancan_microstack/py.typed +0 -0
- cancan_microstack/runtime/__init__.py +0 -0
- cancan_microstack/runtime/compose_cmd.py +228 -0
- cancan_microstack/runtime/host_daemon.py +318 -0
- cancan_microstack/runtime/overrides.py +103 -0
- cancan_microstack/runtime/resources.py +25 -0
- cancan_microstack/runtime/workspace.py +94 -0
- cancan_microstack/services/__init__.py +0 -0
- cancan_microstack/services/controllersrv/__init__.py +8 -0
- cancan_microstack/services/controllersrv/application/__init__.py +0 -0
- cancan_microstack/services/controllersrv/application/docker_compose_app.py +427 -0
- cancan_microstack/services/controllersrv/conf/__init__.py +0 -0
- cancan_microstack/services/controllersrv/conf/config.py +76 -0
- cancan_microstack/services/controllersrv/conf/settings.py +54 -0
- cancan_microstack/services/controllersrv/domain/__init__.py +0 -0
- cancan_microstack/services/controllersrv/domain/docker_compose/__init__.py +0 -0
- cancan_microstack/services/controllersrv/domain/docker_compose/docker_compose_domain.py +278 -0
- cancan_microstack/services/controllersrv/domain/service_validator.py +327 -0
- cancan_microstack/services/controllersrv/domain/task/__init__.py +17 -0
- cancan_microstack/services/controllersrv/domain/task/task_queue.py +286 -0
- cancan_microstack/services/controllersrv/domain/task/task_worker.py +495 -0
- cancan_microstack/services/controllersrv/infrastructure/__init__.py +0 -0
- cancan_microstack/services/controllersrv/interface/__init__.py +0 -0
- cancan_microstack/services/controllersrv/interface/api/__init__.py +0 -0
- cancan_microstack/services/controllersrv/interface/api/docker_control_api.py +470 -0
- cancan_microstack/services/controllersrv/router.py +132 -0
- cancan_microstack/services/infrasrv/__init__.py +4 -0
- cancan_microstack/services/infrasrv/application/__init__.py +0 -0
- cancan_microstack/services/infrasrv/application/health_check_app.py +24 -0
- cancan_microstack/services/infrasrv/application/logging/__init__.py +1 -0
- cancan_microstack/services/infrasrv/application/logging/log_ingestion_service.py +183 -0
- cancan_microstack/services/infrasrv/application/service_config.py +22 -0
- cancan_microstack/services/infrasrv/application/service_logs_app.py +53 -0
- cancan_microstack/services/infrasrv/application/service_management_app.py +689 -0
- cancan_microstack/services/infrasrv/application/service_operation_tracker.py +251 -0
- cancan_microstack/services/infrasrv/application/service_registry.py +53 -0
- cancan_microstack/services/infrasrv/application/workflow/__init__.py +0 -0
- cancan_microstack/services/infrasrv/application/workflow/workflow_app.py +991 -0
- cancan_microstack/services/infrasrv/application/workflow/workflow_queue.py +302 -0
- cancan_microstack/services/infrasrv/application/workflow/workflow_tasks.py +46 -0
- cancan_microstack/services/infrasrv/application/workflow/workflow_worker_runtime.py +122 -0
- cancan_microstack/services/infrasrv/conf/__init__.py +0 -0
- cancan_microstack/services/infrasrv/conf/config.py +98 -0
- cancan_microstack/services/infrasrv/domain/__init__.py +0 -0
- cancan_microstack/services/infrasrv/domain/health_check/__init__.py +3 -0
- cancan_microstack/services/infrasrv/domain/health_check/health_check_domain.py +576 -0
- cancan_microstack/services/infrasrv/domain/hooks/__init__.py +19 -0
- cancan_microstack/services/infrasrv/domain/hooks/builtin_hooks.py +308 -0
- cancan_microstack/services/infrasrv/domain/hooks/hook_registry.py +43 -0
- cancan_microstack/services/infrasrv/domain/hooks/hooks_log_utils.py +275 -0
- cancan_microstack/services/infrasrv/domain/hooks/init.py +17 -0
- cancan_microstack/services/infrasrv/domain/hooks/metrics.py +205 -0
- cancan_microstack/services/infrasrv/domain/hooks/pre_registration_hooks.py +490 -0
- cancan_microstack/services/infrasrv/domain/registry/__init__.py +0 -0
- cancan_microstack/services/infrasrv/domain/registry/service_registry.py +509 -0
- cancan_microstack/services/infrasrv/domain/service_config/__init__.py +0 -0
- cancan_microstack/services/infrasrv/domain/service_config/service_config.py +50 -0
- cancan_microstack/services/infrasrv/domain/service_logs/__init__.py +0 -0
- cancan_microstack/services/infrasrv/domain/service_logs/service_logs_domain.py +51 -0
- cancan_microstack/services/infrasrv/domain/workflow/__init__.py +4 -0
- cancan_microstack/services/infrasrv/domain/workflow/engine.py +159 -0
- cancan_microstack/services/infrasrv/domain/workflow/node_handlers.py +509 -0
- cancan_microstack/services/infrasrv/domain/workflow/workflow_domain.py +164 -0
- cancan_microstack/services/infrasrv/infrastructure/__init__.py +0 -0
- cancan_microstack/services/infrasrv/infrastructure/api/__init__.py +0 -0
- cancan_microstack/services/infrasrv/infrastructure/api/controllersrv_api.py +165 -0
- cancan_microstack/services/infrasrv/infrastructure/cache/__init__.py +0 -0
- cancan_microstack/services/infrasrv/infrastructure/cache/service_registry_cache.py +174 -0
- cancan_microstack/services/infrasrv/infrastructure/db/__init__.py +0 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/__init__.py +0 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/execution_log_tbl.py +53 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/node_instance_tbl.py +55 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/service_action_log_tbl.py +44 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/service_config_tbl.py +30 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/service_info_tbl.py +59 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/service_instance_tbl.py +88 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/service_operation_tbl.py +73 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/workflow_definition_tbl.py +55 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/workflow_definition_version_tbl.py +43 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/workflow_engine_alert_tbl.py +57 -0
- cancan_microstack/services/infrasrv/infrastructure/db/model/workflow_run_tbl.py +56 -0
- cancan_microstack/services/infrasrv/infrastructure/db/operate/__init__.py +0 -0
- cancan_microstack/services/infrasrv/infrastructure/db/operate/service_action_log_op.py +239 -0
- cancan_microstack/services/infrasrv/infrastructure/db/operate/service_config.py +80 -0
- cancan_microstack/services/infrasrv/infrastructure/db/operate/service_config_manager.py +198 -0
- cancan_microstack/services/infrasrv/infrastructure/db/operate/service_info_op.py +297 -0
- cancan_microstack/services/infrasrv/infrastructure/db/operate/service_instance_op.py +688 -0
- cancan_microstack/services/infrasrv/infrastructure/db/operate/service_operation_op.py +387 -0
- cancan_microstack/services/infrasrv/infrastructure/db/operate/service_registry.py +124 -0
- cancan_microstack/services/infrasrv/infrastructure/db/operate/workflow_op.py +804 -0
- cancan_microstack/services/infrasrv/infrastructure/ddl_manager.py +31 -0
- cancan_microstack/services/infrasrv/infrastructure/mongo/__init__.py +1 -0
- cancan_microstack/services/infrasrv/infrastructure/mongo/log_repository.py +129 -0
- cancan_microstack/services/infrasrv/interface/__init__.py +0 -0
- cancan_microstack/services/infrasrv/interface/api/__init__.py +0 -0
- cancan_microstack/services/infrasrv/interface/api/health_check_api.py +29 -0
- cancan_microstack/services/infrasrv/interface/api/hooks.py +284 -0
- cancan_microstack/services/infrasrv/interface/api/internal.py +49 -0
- cancan_microstack/services/infrasrv/interface/api/internal_instance_api.py +265 -0
- cancan_microstack/services/infrasrv/interface/api/internal_operation_api.py +206 -0
- cancan_microstack/services/infrasrv/interface/api/service_config.py +50 -0
- cancan_microstack/services/infrasrv/interface/api/service_logs_api.py +49 -0
- cancan_microstack/services/infrasrv/interface/api/service_management_api.py +113 -0
- cancan_microstack/services/infrasrv/interface/api/service_registry.py +117 -0
- cancan_microstack/services/infrasrv/interface/api/workflow_api.py +303 -0
- cancan_microstack/services/infrasrv/interface/schedule/__init__.py +0 -0
- cancan_microstack/services/infrasrv/interface/schedule/cleanup.py +13 -0
- cancan_microstack/services/infrasrv/interface/schedule/health_check.py +27 -0
- cancan_microstack/services/infrasrv/interface/schedule/log_cleanup.py +26 -0
- cancan_microstack/services/infrasrv/interface/schedule/operation_tracker.py +25 -0
- cancan_microstack/services/infrasrv/interface/schedule/scheduler.py +39 -0
- cancan_microstack/services/infrasrv/interface/schedule/workflow_scheduler.py +115 -0
- cancan_microstack/services/infrasrv/router.py +341 -0
- cancan_microstack/services/opsbffsrv/__init__.py +4 -0
- cancan_microstack/services/opsbffsrv/application/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/application/async_operation_app.py +150 -0
- cancan_microstack/services/opsbffsrv/application/auth_app.py +285 -0
- cancan_microstack/services/opsbffsrv/application/caddy/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/application/caddy/access_log_analysis_app.py +344 -0
- cancan_microstack/services/opsbffsrv/application/caddy/access_log_ingestion_service.py +169 -0
- cancan_microstack/services/opsbffsrv/application/caddy/certificate_management_app.py +355 -0
- cancan_microstack/services/opsbffsrv/application/caddy/rate_limit_management_app.py +496 -0
- cancan_microstack/services/opsbffsrv/application/caddy/route_management_app.py +401 -0
- cancan_microstack/services/opsbffsrv/application/caddy/stats_aggregation_app.py +364 -0
- cancan_microstack/services/opsbffsrv/application/db_admin_app.py +103 -0
- cancan_microstack/services/opsbffsrv/application/db_init_app.py +283 -0
- cancan_microstack/services/opsbffsrv/application/logging/__init__.py +1 -0
- cancan_microstack/services/opsbffsrv/application/logging/log_query_app.py +28 -0
- cancan_microstack/services/opsbffsrv/application/service_config.py +158 -0
- cancan_microstack/services/opsbffsrv/application/service_logs_app.py +74 -0
- cancan_microstack/services/opsbffsrv/application/service_registry.py +36 -0
- cancan_microstack/services/opsbffsrv/application/workflow_ops_app.py +730 -0
- cancan_microstack/services/opsbffsrv/conf/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/conf/config.py +224 -0
- cancan_microstack/services/opsbffsrv/domain/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/domain/auth/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/domain/auth/admin_init.py +38 -0
- cancan_microstack/services/opsbffsrv/domain/auth/auth_domain.py +108 -0
- cancan_microstack/services/opsbffsrv/domain/caddy/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/domain/caddy/access_log_analysis.py +358 -0
- cancan_microstack/services/opsbffsrv/domain/caddy/certificate_management.py +325 -0
- cancan_microstack/services/opsbffsrv/domain/caddy/default_routes.py +53 -0
- cancan_microstack/services/opsbffsrv/domain/caddy/rate_limit_management.py +308 -0
- cancan_microstack/services/opsbffsrv/domain/caddy/route_management.py +279 -0
- cancan_microstack/services/opsbffsrv/domain/caddy/stats_aggregation.py +654 -0
- cancan_microstack/services/opsbffsrv/domain/db_admin/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/domain/db_admin/db_admin_domain.py +118 -0
- cancan_microstack/services/opsbffsrv/domain/db_init/__init__.py +3 -0
- cancan_microstack/services/opsbffsrv/domain/db_init/db_init_domain.py +358 -0
- cancan_microstack/services/opsbffsrv/domain/logging/__init__.py +1 -0
- cancan_microstack/services/opsbffsrv/domain/logging/log_query_domain.py +99 -0
- cancan_microstack/services/opsbffsrv/domain/service_config/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/domain/service_config/service_config.py +81 -0
- cancan_microstack/services/opsbffsrv/domain/service_registry/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/domain/service_registry/service_registry.py +292 -0
- cancan_microstack/services/opsbffsrv/infrastructure/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/infrastructure/api/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/infrastructure/api/infrasrv_api.py +242 -0
- cancan_microstack/services/opsbffsrv/infrastructure/auth/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/infrastructure/auth/captcha_service.py +67 -0
- cancan_microstack/services/opsbffsrv/infrastructure/auth/password_service.py +12 -0
- cancan_microstack/services/opsbffsrv/infrastructure/auth/redis_store.py +131 -0
- cancan_microstack/services/opsbffsrv/infrastructure/auth/totp_service.py +59 -0
- cancan_microstack/services/opsbffsrv/infrastructure/caddy/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/infrastructure/caddy/access_log_parser.py +307 -0
- cancan_microstack/services/opsbffsrv/infrastructure/caddy/admin_api_client.py +678 -0
- cancan_microstack/services/opsbffsrv/infrastructure/caddy/ip_geo_locator.py +176 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/admin_user_tbl.py +33 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_access_log_tbl.py +90 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_certificate_tbl.py +65 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_rate_limit_tbl.py +69 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_route_tbl.py +66 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/caddy_stats_tbl.py +78 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/service_action_log_tbl.py +44 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/service_config_tbl.py +30 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/service_info_tbl.py +51 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/model/service_instance_tbl.py +68 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/admin_user_operate.py +59 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_access_log.py +531 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_certificate.py +451 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_rate_limit.py +360 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_route.py +271 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/caddy_stats.py +343 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_action_log_op.py +57 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_config.py +86 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_info_op.py +79 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_instance.py +58 -0
- cancan_microstack/services/opsbffsrv/infrastructure/db/operate/service_registry.py +138 -0
- cancan_microstack/services/opsbffsrv/infrastructure/ddl_manager.py +31 -0
- cancan_microstack/services/opsbffsrv/infrastructure/mongo/__init__.py +1 -0
- cancan_microstack/services/opsbffsrv/infrastructure/mongo/log_query_repository.py +87 -0
- cancan_microstack/services/opsbffsrv/interface/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/interface/api/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/interface/api/async_operation_api.py +137 -0
- cancan_microstack/services/opsbffsrv/interface/api/auth_api.py +113 -0
- cancan_microstack/services/opsbffsrv/interface/api/caddy/__init__.py +3 -0
- cancan_microstack/services/opsbffsrv/interface/api/caddy/access_log_api.py +174 -0
- cancan_microstack/services/opsbffsrv/interface/api/caddy/certificate_api.py +235 -0
- cancan_microstack/services/opsbffsrv/interface/api/caddy/rate_limit_api.py +302 -0
- cancan_microstack/services/opsbffsrv/interface/api/caddy/route_api.py +250 -0
- cancan_microstack/services/opsbffsrv/interface/api/caddy/stats_api.py +243 -0
- cancan_microstack/services/opsbffsrv/interface/api/db_admin_api.py +62 -0
- cancan_microstack/services/opsbffsrv/interface/api/db_init_api.py +109 -0
- cancan_microstack/services/opsbffsrv/interface/api/instance_management_api.py +165 -0
- cancan_microstack/services/opsbffsrv/interface/api/log_query_api.py +41 -0
- cancan_microstack/services/opsbffsrv/interface/api/mongo_express_proxy_api.py +181 -0
- cancan_microstack/services/opsbffsrv/interface/api/pgweb_proxy_api.py +154 -0
- cancan_microstack/services/opsbffsrv/interface/api/rabbitmq_mgmt_proxy_api.py +518 -0
- cancan_microstack/services/opsbffsrv/interface/api/redis_commander_proxy_api.py +133 -0
- cancan_microstack/services/opsbffsrv/interface/api/service_config.py +146 -0
- cancan_microstack/services/opsbffsrv/interface/api/service_logs_api.py +81 -0
- cancan_microstack/services/opsbffsrv/interface/api/service_registry.py +66 -0
- cancan_microstack/services/opsbffsrv/interface/api/workflow_ops_api.py +413 -0
- cancan_microstack/services/opsbffsrv/interface/middleware/__init__.py +0 -0
- cancan_microstack/services/opsbffsrv/interface/middleware/auth_middleware.py +52 -0
- cancan_microstack/services/opsbffsrv/router.py +901 -0
- cancan_microstack/utils/__init__.py +1 -0
- cancan_microstack/utils/container_env.py +218 -0
- cancan_microstack-0.0.1.dist-info/METADATA +155 -0
- cancan_microstack-0.0.1.dist-info/RECORD +440 -0
- cancan_microstack-0.0.1.dist-info/WHEEL +5 -0
- cancan_microstack-0.0.1.dist-info/entry_points.txt +2 -0
- cancan_microstack-0.0.1.dist-info/licenses/LICENSE +21 -0
- 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 ""
|