diff --git a/console/models/main.py b/console/models/main.py index ae7cceeb8e..5d85e2a863 100644 --- a/console/models/main.py +++ b/console/models/main.py @@ -575,7 +575,6 @@ class Meta: app_id = models.IntegerField(help_text="application ID", default=-1) - class RoleInfo(BaseModel): class Meta: db_table = 'role_info' diff --git a/console/services/app_actions/app_manage.py b/console/services/app_actions/app_manage.py index 5b3b61421f..05aaabc6ca 100644 --- a/console/services/app_actions/app_manage.py +++ b/console/services/app_actions/app_manage.py @@ -549,10 +549,9 @@ def batch_action(self, region_name, tenant, user, action, service_ids, move_grou fail_service_name = [] for service in services: try: - # 第三方组件不具备启动,停止,重启操作 - if action == "start" and service.service_source != "third_party": + if action == "start": self.start(tenant, service, user, oauth_instance=oauth_instance) - elif action == "stop" and service.service_source != "third_party": + elif action == "stop": self.stop(tenant, service, user) elif action == "restart" and service.service_source != "third_party": self.restart(tenant, service, user, oauth_instance=oauth_instance) diff --git a/console/services/perm_services.py b/console/services/perm_services.py index 75d4cf92b0..34c9ee8b79 100644 --- a/console/services/perm_services.py +++ b/console/services/perm_services.py @@ -240,7 +240,8 @@ def __unpack_to_build_perms_list(self, perms_model, role_id, perms_name_code_kv, perm_key, perms_value = perm_items if perms_value: role_perms_list.append( - RolePerms(role_id=role_id, perm_code=perms_name_code_kv["_".join([kind_name, perm_key])], app_id=app_id)) + RolePerms( + role_id=role_id, perm_code=perms_name_code_kv["_".join([kind_name, perm_key])], app_id=app_id)) return role_perms_list # 角色的权限树降维 diff --git a/console/urls.py b/console/urls.py index 2094b1a7b4..87c2fd369c 100644 --- a/console/urls.py +++ b/console/urls.py @@ -43,13 +43,10 @@ from console.views.app_create.vm_run import VMRunCreateView from console.views.app_event import (AppEventLogView, AppEventsLogView, AppEventsView, AppEventView, AppHistoryLogView, AppLogInstanceView, AppLogView) -from console.views.app_manage import (AgainDelete, BatchActionView, BatchDelete, ChangeServiceNameView, - ChangeServiceTypeView, +from console.views.app_manage import (AgainDelete, BatchActionView, BatchDelete, ChangeServiceNameView, ChangeServiceTypeView, ChangeServiceUpgradeView, DeleteAppView, DeployAppView, HorizontalExtendAppView, - MarketServiceUpgradeView, ReStartAppView, RollBackAppView, StartAppView, - StopAppView, - TeamAppsCloseView, UpgradeAppView, VerticalExtendAppView, PackageToolView, - PauseAppView, + MarketServiceUpgradeView, ReStartAppView, RollBackAppView, StartAppView, StopAppView, + TeamAppsCloseView, UpgradeAppView, VerticalExtendAppView, PackageToolView, PauseAppView, UNPauseAppView, TarImageView, AppsPorConsoletView) from console.views.app_market import BindableMarketsView from console.views.app_monitor import (AppMonitorQueryRangeView, AppMonitorQueryView, AppResourceQueryView, AppTraceView, @@ -212,7 +209,8 @@ url(r"^users/access-token/(?P[\w\-]+)$", UserAccessTokenRUDView.as_view()), # 团队中用户详情页 - url(r'^teams/(?P[\w\-]+)/(?P[\w\-]+)/details$', TeamUserDetaislView.as_view(), perms.TEAM_MEMBER_PERMS), + url(r'^teams/(?P[\w\-]+)/(?P[\w\-]+)/details$', TeamUserDetaislView.as_view(), + perms.TEAM_MEMBER_PERMS), # 团队角色权限管理 url(r'^teams/(?P[\w\-]+)/roles/perms$', TeamRolesPermsLView.as_view(), perms.TEAM_ROLE_PERMS), url(r'^teams/(?P[\w\-]+)/roles/(?P[\w\-]+)/perms$', TeamRolePermsRUDView.as_view(), @@ -252,9 +250,11 @@ # check kubernetes service name url(r'^teams/(?P[\w\-]+)/checkK8sServiceName$', TeamCheckKubernetesServiceName.as_view()), # 获取团队下域名访问量排序 - url(r'^teams/(?P[\w\-]+)/regions/(?P[\w\-]+)/sort_domain/query$', TeamSortDomainQueryView.as_view()), + url(r'^teams/(?P[\w\-]+)/regions/(?P[\w\-]+)/sort_domain/query$', + TeamSortDomainQueryView.as_view()), # 获取团队下组件访问量排序 - url(r'^teams/(?P[\w\-]+)/regions/(?P[\w\-]+)/sort_service/query$', TeamSortServiceQueryView.as_view()), + url(r'^teams/(?P[\w\-]+)/regions/(?P[\w\-]+)/sort_service/query$', + TeamSortServiceQueryView.as_view()), # 获取当前租户已开通的数据中心(详细) url(r'^teams/(?P[\w\-]+)/region/query$', RegQuyView.as_view(), perms.TEAM_REGION_DESCRIBE), # 获取当前团队未开通的数据中心 @@ -282,8 +282,10 @@ url(r'^teams/(?P[\w\-]+)/get_upload_chart_information$', UploadHelmChart.as_view(), perms.APP_OVERVIEW_CREATE), url(r'^teams/(?P[\w\-]+)/check_upload_chart$', UploadHelmChart.as_view(), perms.APP_OVERVIEW_CREATE), url(r'^teams/(?P[\w\-]+)/get_upload_chart_value$', UploadHelmChartValue.as_view(), perms.APP_OVERVIEW_CREATE), - url(r'^teams/(?P[\w\-]+)/get_upload_chart_resource$', UploadHelmChartValueResource.as_view(), perms.APP_OVERVIEW_CREATE), - url(r'^teams/(?P[\w\-]+)/import_upload_chart_resource$', UploadHelmChartValueResource.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/get_upload_chart_resource$', UploadHelmChartValueResource.as_view(), + perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/import_upload_chart_resource$', UploadHelmChartValueResource.as_view(), + perms.APP_OVERVIEW_CREATE), # 获取生成令牌 url(r'^teams/(?P[\w\-]+)/access-token/(?P[\w\-]+)$', AccessTokenView.as_view()), @@ -292,8 +294,10 @@ url(r'^teams/(?P[\w\-]+)/apps$', TeamAppSortViewView.as_view(), perms.TEAM_OVERVIEW_APP_DESCRIBE), url(r'^teams/(?P[\w\-]+)/app_names$', TeamAppNamesView.as_view(), perms.TEAM_OVERVIEW_APP_DESCRIBE), # 团队应用信息 - url(r'^teams/(?P[\w\-]+)/overview/service/over$', TeamServiceOverViewView.as_view(), perms.TEAM_OVERVIEW_APP_DESCRIBE), - url(r'^teams/(?P[\w\-]+)/check-resource-name$', TeamCheckResourceName.as_view(), perms.TEAM_OVERVIEW_APP_DESCRIBE), + url(r'^teams/(?P[\w\-]+)/overview/service/over$', TeamServiceOverViewView.as_view(), + perms.TEAM_OVERVIEW_APP_DESCRIBE), + url(r'^teams/(?P[\w\-]+)/check-resource-name$', TeamCheckResourceName.as_view(), + perms.TEAM_OVERVIEW_APP_DESCRIBE), # 应用事件动态 url(r'teams/(?P[\w\-]+)/services/event$', ServiceEventsView.as_view()), @@ -317,7 +321,8 @@ perms.APP_OVERVIEW_PERMS), # 云市分享应用 - url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/share/record$', ServiceShareRecordView.as_view(), perms.APP_RELEASE_PERMS), + url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/share/record$', ServiceShareRecordView.as_view(), + perms.APP_RELEASE_PERMS), url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/share/record/(?P[\w\-]+)$', ServiceShareRecordInfoView.as_view(), perms.APP_RELEASE_PERMS), url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/share/step$', ShareRecordView.as_view(), @@ -357,12 +362,15 @@ perms.APP_OVERVIEW_PERMS), url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/governancemode/check', AppGovernanceModeCheckView.as_view(), perms.APP_OVERVIEW_PERMS), - url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/component_names', AppComponentNameView.as_view(), perms.APP_OVERVIEW_PERMS), + url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/component_names', AppComponentNameView.as_view(), + perms.APP_OVERVIEW_PERMS), url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/k8sservices', AppKubernetesServiceView.as_view()), - url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/k8s-resources$', AppK8sResourceListView.as_view(), perms.APP_RESOURCE_PERMS), + url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/k8s-resources$', AppK8sResourceListView.as_view(), + perms.APP_RESOURCE_PERMS), url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/k8s-resources/(?P[\w\-\.]+)$', AppK8ResourceView.as_view(), perms.APP_RESOURCE_PERMS), - url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/status', ApplicationStatusView.as_view(), perms.APP_OVERVIEW_PERMS), + url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)/status', ApplicationStatusView.as_view(), + perms.APP_OVERVIEW_PERMS), # 应用状态(应用) url(r'^teams/(?P[\w\-]+)/groups/(?P[\w\-]+)$', GroupStatusView.as_view(), perms.APP_OVERVIEW_PERMS), # 应用(组)常见操作 @@ -386,16 +394,17 @@ url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/code/branch$', ServiceCodeBranch.as_view(), perms.APP_OVERVIEW_CREATE), # 文件上传最近一次记录 - url(r'^teams/(?P[\w\-]+)/apps/package_build/last-record$', UploadRecordLastView.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/package_build/last-record$', UploadRecordLastView.as_view(), + perms.APP_OVERVIEW_CREATE), # 本地文件上传记录 - url(r'^teams/(?P[\w\-]+)/apps/package_build/record$', PackageUploadRecordView.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/package_build/record$', PackageUploadRecordView.as_view(), + perms.APP_OVERVIEW_CREATE), # 本地文件创建组件 url(r'^teams/(?P[\w\-]+)/apps/package_build$', PackageCreateView.as_view(), perms.APP_OVERVIEW_CREATE), # 源码创建 url(r'^teams/(?P[\w\-]+)/apps/source_code$', SourceCodeCreateView.as_view(), perms.APP_OVERVIEW_CREATE), # 第三方组件创建 - url(r'^teams/(?P[\w\-]+)/apps/third_party$', ThirdPartyServiceCreateView.as_view(), - perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/third_party$', ThirdPartyServiceCreateView.as_view(), perms.APP_OVERVIEW_CREATE), # 第三方组件api注册方式回调地址 url(r'^third_party/(?P[\w\-]+)', ThirdPartyServiceApiView.as_view()), # 第三方组件api注册方式重置秘钥 @@ -404,13 +413,13 @@ # 第三方组件健康检测 url(r"^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/3rd-party/health$", ThirdPartyHealthzView.as_view(), perms.APP_OVERVIEW_OTHER_SETTING), - url(r'^teams/(?P[\w\-]+)/apps/image_repositories$', TenantImageRepositories.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/image_repositories$', TenantImageRepositories.as_view(), + perms.APP_OVERVIEW_CREATE), url(r'^teams/(?P[\w\-]+)/apps/image_tags$', TenantImageTags.as_view(), perms.APP_OVERVIEW_CREATE), # docker镜像创建 url(r'^teams/(?P[\w\-]+)/apps/docker_run$', DockerRunCreateView.as_view(), perms.APP_OVERVIEW_CREATE), # docker-compose文件创建 - url(r'^teams/(?P[\w\-]+)/apps/docker_compose$', DockerComposeCreateView.as_view(), - perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/docker_compose$', DockerComposeCreateView.as_view(), perms.APP_OVERVIEW_CREATE), # 虚拟机镜像创建 url(r'^teams/(?P[\w\-]+)/apps/vm_run$', VMRunCreateView.as_view(), perms.APP_OVERVIEW_CREATE), # 应用检测 @@ -445,28 +454,34 @@ url(r'^teams/(?P[\w\-]+)/compose/(?P[\w\-]+)/content$', ComposeContentView.as_view(), perms.APP_OVERVIEW_CREATE), # 应用构建 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/build$', AppBuild.as_view(), perms.APP_OVERVIEW_CONSTRUCT), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/build$', AppBuild.as_view(), + perms.APP_OVERVIEW_CONSTRUCT), # 应用编译环境信息 url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/compile_env$', AppCompileEnvView.as_view(), perms.APP_OVERVIEW_CREATE), # 应用删除 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/delete$', DeleteAppView.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/delete$', DeleteAppView.as_view(), + perms.APP_OVERVIEW_CREATE), # 应用详情 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/detail', AppDetailView.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/detail', AppDetailView.as_view(), + perms.APP_OVERVIEW_CREATE), # 是否安装性能分析插件 url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/analyze_plugins', AppAnalyzePluginView.as_view()), # 应用简要信息 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/brief', AppBriefView.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/brief', AppBriefView.as_view(), + perms.APP_OVERVIEW_CREATE), # 触发应用自动部署关键字 url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/keyword$', AppKeywordView.as_view(), perms.APP_OVERVIEW_CREATE), - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/status', AppStatusView.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/status', AppStatusView.as_view(), + perms.APP_OVERVIEW_CREATE), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/plugins$', AppPluginsBriefView.as_view(), perms.APP_OVERVIEW_PLUGIN), # 应用信息修改 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/group', AppGroupView.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/group', AppGroupView.as_view(), + perms.APP_OVERVIEW_CREATE), # 应用pod信息 url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/pods$', ListAppPodsView.as_view(), perms.APP_OVERVIEW_CREATE), @@ -478,7 +493,8 @@ url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/docker_console', DockerContainerView.as_view(), perms.APP_OVERVIEW_CREATE), # 应用访问 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/visit', AppVisitView.as_view(), perms.APP_OVERVIEW_CREATE), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/visit', AppVisitView.as_view(), + perms.APP_OVERVIEW_CREATE), # 环境变量配置 url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/envs$', AppEnvView.as_view(), perms.APP_OVERVIEW_ENV), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/envs/(?P[\w\-]+)$', AppEnvManageView.as_view(), @@ -487,7 +503,8 @@ url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/build_envs$', AppBuildEnvView.as_view(), perms.APP_OVERVIEW_SOURCE), # 端口配置 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/ports$', AppPortView.as_view(), perms.APP_OVERVIEW_PORT), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/ports$', AppPortView.as_view(), + perms.APP_OVERVIEW_PORT), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/ports/(?P[\w\-]+)$', AppPortManageView.as_view(), perms.APP_OVERVIEW_PORT), # 拓扑图打开对外端口 @@ -518,7 +535,8 @@ url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/un_dependency$', AppNotDependencyView.as_view(), perms.APP_OVERVIEW_RELY), # 组件挂载 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/mnt$', AppMntView.as_view(), perms.APP_OVERVIEW_STORAGE), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/mnt$', AppMntView.as_view(), + perms.APP_OVERVIEW_STORAGE), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/mnt/(?P[\w\-]+)$', AppMntManageView.as_view(), perms.APP_OVERVIEW_STORAGE), # 域名证书 @@ -566,18 +584,21 @@ url(r'^teams/(?P[\w\-]+)/domain/(?P[\w\-]+)/put_gateway$', GatewayCustomConfigurationView.as_view()), # 组件操作 - url(r'^teams/(?P[\w\-]+)/regions/(?P[\w\-]+)/apps_port$', AppsPorConsoletView.as_view(), perms.APP_OVERVIEW_PERMS), - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/start$', StartAppView.as_view(), perms.APP_OVERVIEW_START), + url(r'^teams/(?P[\w\-]+)/regions/(?P[\w\-]+)/apps_port$', AppsPorConsoletView.as_view(), + perms.APP_OVERVIEW_PERMS), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/start$', StartAppView.as_view(), + perms.APP_OVERVIEW_START), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/stop$', StopAppView.as_view(), perms.APP_OVERVIEW_STOP), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/pause$', PauseAppView.as_view()), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/unpause$', UNPauseAppView.as_view()), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/vm_web$', UNPauseAppView.as_view()), - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/restart$', ReStartAppView.as_view(), perms.APP_OVERVIEW_UPDATE), - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/deploy$', DeployAppView.as_view(), perms.APP_OVERVIEW_CONSTRUCT), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/restart$', ReStartAppView.as_view(), + perms.APP_OVERVIEW_UPDATE), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/deploy$', DeployAppView.as_view(), + perms.APP_OVERVIEW_CONSTRUCT), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/rollback$', RollBackAppView.as_view(), perms.APP_ROLLBACK), - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/upgrade$', UpgradeAppView.as_view(), - perms.APP_UPGRADE), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/upgrade$', UpgradeAppView.as_view(), perms.APP_UPGRADE), # 设置组件构建后是否升级属性 url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/set/is_upgrade$', ChangeServiceUpgradeView.as_view(), perms.APP_OVERVIEW_CONSTRUCT), @@ -585,9 +606,11 @@ url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/market_service/upgrade$', MarketServiceUpgradeView.as_view(), perms.APP_UPGRADE), # 组件设置语言和安装依赖 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/package_tool$', PackageToolView.as_view(), perms.APP_OVERVIEW_PERMS), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/package_tool$', PackageToolView.as_view(), + perms.APP_OVERVIEW_PERMS), # tar包设置镜像 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/tar_image$', TarImageView.as_view(), perms.APP_OVERVIEW_PERMS), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/tar_image$', TarImageView.as_view(), + perms.APP_OVERVIEW_PERMS), # 批量操作 url(r'^teams/(?P[\w\-]+)/batch_actions$', BatchActionView.as_view(), perms.APP_OVERVIEW_PERMS), # 批量删除应用 @@ -596,7 +619,8 @@ url(r'^teams/(?P[\w\-]+)/again_delete$', AgainDelete.as_view(), perms.APP_OVERVIEW_PERMS), # 某个组件的event - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/events$', AppEventView.as_view(), perms.APP_OVERVIEW_PERMS), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/events$', AppEventView.as_view(), + perms.APP_OVERVIEW_PERMS), url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/event_log$', AppEventLogView.as_view(), perms.APP_OVERVIEW_PERMS), # 某个组件的日志 @@ -605,7 +629,8 @@ url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/history_log$', AppHistoryLogView.as_view()), # 组件探针 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/probe$', AppProbeView.as_view(), perms.APP_OVERVIEW_OTHER_SETTING), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/probe$', AppProbeView.as_view(), + perms.APP_OVERVIEW_OTHER_SETTING), # 组件扩容操作 url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/horizontal$', HorizontalExtendAppView.as_view(), @@ -643,7 +668,8 @@ url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/service_monitor/(?P[\w\-]+)$', ComponentServiceMonitorEditView.as_view(), perms.APP_OVERVIEW_MONITOR), # 组件标签 - url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/labels$', AppLabelView.as_view(), perms.APP_OVERVIEW_OTHER_SETTING), + url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/labels$', AppLabelView.as_view(), + perms.APP_OVERVIEW_OTHER_SETTING), # 添加特性获取可用标签 url(r'^teams/(?P[\w\-]+)/apps/(?P[\w\-]+)/labels/available$', AppLabelAvailableView.as_view(), perms.APP_OVERVIEW_OTHER_SETTING), @@ -773,7 +799,8 @@ url(r'^teams/(?P[\w\-]+)/groupapp/(?P[\w\-]+)/migrate/record$', MigrateRecordView.as_view()), # 应用数据删除 - url(r'^teams/(?P[\w\-]+)/groupapp/(?P[\w\-]+)/delete$', GroupAppsView.as_view(), perms.APP_OVERVIEW_PERMS), + url(r'^teams/(?P[\w\-]+)/groupapp/(?P[\w\-]+)/delete$', GroupAppsView.as_view(), + perms.APP_OVERVIEW_PERMS), # 源码仓库webhooks回调地址 url(r'^webhooks/(?P[\w\-]+)', WebHooksDeploy.as_view()), diff --git a/console/utils/perms.py b/console/utils/perms.py index 582b303742..21268ae832 100644 --- a/console/utils/perms.py +++ b/console/utils/perms.py @@ -4,7 +4,6 @@ from console.enum.enterprise_enum import EnterpriseRolesEnum from www.models.main import ServiceGroup - """ - enterprise 100 sub1 -- 101 @@ -83,12 +82,7 @@ ] }, "app_release": { - "perms": [ - ["describe", "查看", 310004], - ["share", "发布", 310001], - ["export", "导出", 310002], - ["delete", "删除", 310003] - ] + "perms": [["describe", "查看", 310004], ["share", "发布", 310001], ["export", "导出", 310002], ["delete", "删除", 310003]] }, "app_gateway_manage": { "perms": [], @@ -123,12 +117,8 @@ }, }, "app_upgrade": { - "perms": [ - ["app_model_list", "应用模型列表", 330001], - ["upgrade_record", "升级记录", 330002], - ["upgrade", "升级", 330003], - ["rollback", "回滚", 330004] - ] + "perms": [["app_model_list", "应用模型列表", 330001], ["upgrade_record", "升级记录", 330002], ["upgrade", "升级", 330003], + ["rollback", "回滚", 330004]] }, "app_resources": { "perms": [ @@ -157,7 +147,6 @@ ] } } - ''' 注意:以下注释部分是企业版功能,新增权限的时候需要避免冲突! ''' @@ -242,12 +231,8 @@ }, }, "app_upgrade": { - "perms": [ - ["app_model_list", "应用模型列表", 330001], - ["upgrade_record", "升级记录", 330002], - ["upgrade", "升级", 330003], - ["rollback", "回滚", 330004] - ] + "perms": [["app_model_list", "应用模型列表", 330001], ["upgrade_record", "升级记录", 330002], ["upgrade", "升级", 330003], + ["rollback", "回滚", 330004]] }, "app_resources": { "perms": [ @@ -332,10 +317,7 @@ ] }, "team_region": { - "perms": [ - ["describe", "查看", 620001], - ["install", "开通", 620002], - ["uninstall", "卸载", 620003]] + "perms": [["describe", "查看", 620001], ["install", "开通", 620002], ["uninstall", "卸载", 620003]] }, "team_role": { "perms": [ @@ -377,48 +359,77 @@ DEFAULT_TEAM_ROLE_PERMS = { "管理员": [ - 200001, 200002, - 300001, 300002, 300003, 300004, 300005, 300006, 300007, 300008, 300009, 300010, 300011, 300012, 300013, 300014, - 300015, 300016, 300017, 300018, 300019, 300020, 300021, 300022, 300023, 300024, 300025, 300026, - 310001, 310002, 310003, - 320001, - 321001, 321002, 321003, 321004, - 322001, 322002, 322003, 322004, - 323001, 323002, 323003, 323004, - 330001, 330002, 330003, 330004, - 340001, 340002, 340003, 340004, - 350001, 350002, 350003, 350004, 350005, 350006, - 360001, 360002, 360003, 360004, - 400001, - 410001, 410002, 410003, 410004, - 420001, 420002, 420003, 420004, - 430001, 430002, 430003, 430004, - 500001, 500002, 500003, 500004, - 600001, - 610001, 610002, 610003, 610004, - 620001, 620002, 620003, 620004, - 630001, 630002, 630003, 630004, - 640001, 640002, 640003, 640004, - 700001, 700002, 700003, 700004, - 800001 + 200001, 200002, 300001, 300002, 300003, 300004, 300005, 300006, 300007, 300008, 300009, 300010, 300011, 300012, 300013, + 300014, 300015, 300016, 300017, 300018, 300019, 300020, 300021, 300022, 300023, 300024, 300025, 300026, 310001, 310002, + 310003, 320001, 321001, 321002, 321003, 321004, 322001, 322002, 322003, 322004, 323001, 323002, 323003, 323004, 330001, + 330002, 330003, 330004, 340001, 340002, 340003, 340004, 350001, 350002, 350003, 350004, 350005, 350006, 360001, 360002, + 360003, 360004, 400001, 410001, 410002, 410003, 410004, 420001, 420002, 420003, 420004, 430001, 430002, 430003, 430004, + 500001, 500002, 500003, 500004, 600001, 610001, 610002, 610003, 610004, 620001, 620002, 620003, 620004, 630001, 630002, + 630003, 630004, 640001, 640002, 640003, 640004, 700001, 700002, 700003, 700004, 800001 ], - "开发者": [ - 300001, 300002, 300003, 300004, 300005, 300006, 300007, 300008, 300009, 300010, 300011, 300012, 300013, 300014, - 300015, 300016, 300017, 300018, 300019, 300020, 300021, 300022, 300023, 300024, 300025, 300026, - 310001, 310002, 310003, + 300001, + 300002, + 300003, + 300004, + 300005, + 300006, + 300007, + 300008, + 300009, + 300010, + 300011, + 300012, + 300013, + 300014, + 300015, + 300016, + 300017, + 300018, + 300019, + 300020, + 300021, + 300022, + 300023, + 300024, + 300025, + 300026, + 310001, + 310002, + 310003, 320001, - 321001, 321002, 321003, 321004, - 322001, 322002, 322003, 322004, - 323001, 323002, 323003, 323004, - 330001, 330002, 330003, 330004, - 340001, 340002, 340003, 340004, - 350001, 350002, 350003, 350004, 350005, 350006, - 360001, 360002, 360003, 360004, - ], - "观察者": [ - + 321001, + 321002, + 321003, + 321004, + 322001, + 322002, + 322003, + 322004, + 323001, + 323002, + 323003, + 323004, + 330001, + 330002, + 330003, + 330004, + 340001, + 340002, + 340003, + 340004, + 350001, + 350002, + 350003, + 350004, + 350005, + 350006, + 360001, + 360002, + 360003, + 360004, ], + "观察者": [], } @@ -487,7 +498,7 @@ def get_perms_structure(tenant_id): removed_value = team.get("team_app_manage") app_perms = dict() for app_id in app_ids: - key = "app_"+str(app_id) + key = "app_" + str(app_id) app_perms[key] = removed_value team = get_structure(team, "team") enterprise = get_structure(copy.deepcopy(ENTERPRISE), "enterprise") diff --git a/console/views/app_config/app_probe.py b/console/views/app_config/app_probe.py index d51380de39..813b2a8a18 100644 --- a/console/views/app_config/app_probe.py +++ b/console/views/app_config/app_probe.py @@ -79,3 +79,17 @@ def post(self, request, *args, **kwargs): return Response(general_message(code, "add probe error", msg)) result = general_message(200, "success", "添加成功", bean=(probe.to_dict() if probe else probe)) return Response(result, status=result["code"]) + + @never_cache + def put(self, request, *args, **kwargs): + """ + 修改组件探针,包括启用停用 mode参数必填 + --- + serializer: ProbeSerilizer + """ + data = request.data + + probe = probe_service.update_service_probea( + tenant=self.tenant, service=self.service, data=data, user_name=self.user.nick_name) + result = general_message(200, "success", "修改成功", bean=(probe.to_dict() if probe else probe)) + return Response(result, status=result["code"]) diff --git a/console/views/app_manage.py b/console/views/app_manage.py index ffe5b05763..c2312c12b7 100644 --- a/console/views/app_manage.py +++ b/console/views/app_manage.py @@ -414,18 +414,6 @@ def post(self, request, *args, **kwargs): move_group_id = request.data.get("move_group_id", None) if action not in ("stop", "start", "restart", "move", "upgrade", "deploy"): return Response(general_message(400, "param error", "操作类型错误"), status=400) - if action == "stop": - self.has_perms([400008]) - if action == "start": - self.has_perms([400006]) - if action == "restart": - self.has_perms([400007]) - if action == "move": - self.has_perms([400003]) - if action == "upgrade": - self.has_perms([400009]) - if action == "deploy": - self.has_perms([400010]) service_id_list = service_ids.split(",") code, msg = app_manage_service.batch_action(self.region_name, self.tenant, self.user, action, service_id_list, move_group_id, self.oauth_instance) diff --git a/console/views/group.py b/console/views/group.py index c394802369..bca17da708 100644 --- a/console/views/group.py +++ b/console/views/group.py @@ -268,21 +268,6 @@ def post(self, request, *args, **kwargs): service_ids = [service.service_id for service in services] if action not in ("stop", "start", "upgrade", "deploy"): return Response(general_message(400, "param error", "操作类型错误"), status=400) - # 去除掉第三方组件 - for service_id in service_ids: - service_obj = service_repo.get_service_by_service_id(service_id) - if service_obj and service_obj.service_source == "third_party": - service_ids.remove(service_id) - - if action == "stop": - self.has_perms([300006, 400008]) - if action == "start": - self.has_perms([300005, 400006]) - if action == "upgrade": - self.has_perms([300007, 400009]) - if action == "deploy": - self.has_perms([300008, 400010]) - # 批量操作 app_manage_service.batch_operations(self.tenant, self.region_name, self.user, action, service_ids, self.oauth_instance) result = general_message(200, "success", "操作成功") return Response(result, status=result["code"])