Skip to content

Commit

Permalink
check goverance mode
Browse files Browse the repository at this point in the history
  • Loading branch information
yangkaa committed Nov 5, 2021
1 parent 1102803 commit dd09c1f
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 2 deletions.
1 change: 1 addition & 0 deletions console/enum/app.py
Expand Up @@ -5,6 +5,7 @@
class GovernanceModeEnum(AutoNumber):
BUILD_IN_SERVICE_MESH = ()
KUBERNETES_NATIVE_SERVICE = ()
ISTIO_SERVICE_MESH = ()

@classmethod
def choices(cls):
Expand Down
4 changes: 4 additions & 0 deletions console/services/group_service.py
Expand Up @@ -715,5 +715,9 @@ def list_components(app_id):
service_groups = group_service_relation_repo.list_service_groups(app_id)
return service_repo.list_by_ids([sg.service_id for sg in service_groups])

def check_governance_mode(self, tenant, region_name, app_id, governance_mode):
region_app_id = region_app_repo.get_region_app_id(region_name, app_id)
return region_api.check_app_governance_mode(region_name, tenant.tenant_name, region_app_id, governance_mode)


group_service = GroupService()
6 changes: 4 additions & 2 deletions console/urls.py
Expand Up @@ -70,7 +70,7 @@
from console.views.group import (
AppGovernanceModeView, AppKubernetesServiceView, ApplicationStatusView, GroupStatusView, TenantGroupCommonOperationView,
TenantGroupOperationView, TenantGroupView, ApplicationInstallView, ApplicationPodView, ApplicationHelmAppComponentView,
ApplicationParseServicesView, ApplicationReleasesView, ApplicationIngressesView, TenantAppUpgradableNumView)
ApplicationParseServicesView, ApplicationReleasesView, ApplicationIngressesView, TenantAppUpgradableNumView, AppGovernanceModeCheckView)
from console.views.jwt_token_view import JWTTokenView
from console.views.logos import ConfigRUDView, InitPerms, PhpConfigView
from console.views.message import UserMessageView
Expand Down Expand Up @@ -287,7 +287,9 @@
perms.TenantGroupOperationView),
url(r'^teams/(?P<tenantName>[\w\-]+)/groups/(?P<app_id>[\w\-]+)/upgradable_num$', TenantAppUpgradableNumView.as_view(),
perms.TenantGroupOperationView),
url(r'^teams/(?P<tenantName>[\w\-]+)/groups/(?P<app_id>[\w\-]+)/governancemode', AppGovernanceModeView.as_view(),
url(r'^teams/(?P<tenantName>[\w\-]+)/groups/(?P<app_id>[\w\-]+)/governancemode$', AppGovernanceModeView.as_view(),
perms.TenantGroupOperationView),
url(r'^teams/(?P<tenantName>[\w\-]+)/groups/(?P<app_id>[\w\-]+)/governancemode/check', AppGovernanceModeCheckView.as_view(),
perms.TenantGroupOperationView),
url(r'^teams/(?P<tenantName>[\w\-]+)/groups/(?P<app_id>[\w\-]+)/k8sservices', AppKubernetesServiceView.as_view()),
url(r'^teams/(?P<tenantName>[\w\-]+)/groups/(?P<app_id>[\w\-]+)/status', ApplicationStatusView.as_view()),
Expand Down
11 changes: 11 additions & 0 deletions console/views/group.py
Expand Up @@ -280,6 +280,17 @@ def put(self, request, app_id, *args, **kwargs):
return Response(result)


class AppGovernanceModeCheckView(ApplicationView):
def get(self, request, app_id, *args, **kwargs):
governance_mode = request.GET.get("governance_mode", "")
if governance_mode not in GovernanceModeEnum.names():
raise AbortRequest("governance_mode not in ({})".format(GovernanceModeEnum.names()))

group_service.check_governance_mode(self.tenant, self.region_name, app_id, governance_mode)
result = general_message(200, "success", "更新成功", bean={"governance_mode": governance_mode})
return Response(result)


class AppKubernetesServiceView(ApplicationView):
def get(self, request, app_id, *args, **kwargs):
res = group_service.list_kubernetes_services(self.tenant.tenant_id, self.region_name, app_id)
Expand Down
8 changes: 8 additions & 0 deletions www/apiclient/regionapi.py
Expand Up @@ -1877,6 +1877,14 @@ def delete_app_config_group(self, region_name, tenant_name, app_id, config_group
res, body = self._delete(url, self.default_headers, region=region_name)
return res, body

def check_app_governance_mode(self, region_name, tenant_name, region_app_id, query):
url, token = self.__get_region_access_info(tenant_name, region_name)
tenant_region = self.__get_tenant_region_info(tenant_name, region_name)
url = url + "/v2/tenants/" + tenant_region.region_tenant_name + "/apps/" + region_app_id + "/governance/check?governance_mode={}".format(query)

self._set_headers(token)
_, _ = self._get(url, self.default_headers, region=region_name)

def get_monitor_metrics(self, region_name, tenant, target, app_id, component_id):
url, token = self.__get_region_access_info(tenant.tenant_name, region_name)
url = url + "/v2/monitor/metrics?target={target}&tenant={tenant_id}&app={app_id}&component={component_id}".format(
Expand Down

0 comments on commit dd09c1f

Please sign in to comment.