def post(self, request, tenantName, group_id, *args, **kwargs): """ 应用复制 --- parameters: - name: tenantName description: 团队名称 required: true type: string paramType: path - name: group_id description: 应用id required: true type: int paramType: path """ services = request.data.get("services") tar_team_name = request.data.get("tar_team_name") tar_region_name = request.data.get("tar_region_name") tar_group_id = request.data.get("tar_group_id") if not tar_team_name or not tar_region_name or not tar_group_id: raise ServiceHandleException( msg_show="缺少复制目标参数", msg="not found copy target parameters", status_code=404) tar_team, tar_group = groupapp_copy_service.check_and_get_team_group( request.user, tar_team_name, tar_region_name, tar_group_id) try: groupapp_copy_service.copy_group_services( request.user, self.tenant, self.region_name, tar_team, tar_region_name, tar_group, group_id, services) result = general_message(200, "success", "获取成功", bean={ "tar_team_name": tar_team_name, "tar_region_name": tar_region_name, "tar_group_id": tar_group_id }) status = 200 except HttpClient.CallApiError as e: logger.exception(e) if e.status == 403: result = general_message(10407, "no cloud permission", e.message) status = e.status elif e.status == 400: if "is exist" in e.message.get("body", ""): result = general_message(400, "the service is exist in region", "组件名称在数据中心已存在") else: result = general_message(400, "call cloud api failure", e.message) status = e.status else: result = general_message(500, "call cloud api failure", e.message) status = 500 return Response(result, status=status)
def post(self, request, team_id, app_id, *args, **kwargs): """ 应用复制 --- parameters: - name: tenantName description: 团队名称 required: true type: string paramType: path - name: app_id description: 应用id required: true type: int paramType: path """ serializers = AppCopyCSerializer(data=request.data) serializers.is_valid(raise_exception=True) services = serializers.data.get("services") tar_team_name = request.data.get("target_team_name") tar_region_name = request.data.get("target_region_name") tar_app_id = request.data.get("target_app_id") tar_team, tar_group = groupapp_copy_service.check_and_get_team_group(request.user, tar_team_name, tar_region_name, tar_app_id) services = groupapp_copy_service.copy_group_services(request.user, self.team, self.region_name, tar_team, tar_region_name, tar_group, app_id, services) services = ServiceBaseInfoSerializer(data=services, many=True) services.is_valid() serializers = AppCopyCResSerializer(data={"services": services.data}) serializers.is_valid() return Response(serializers.data, status=200)
def post(self, request, team_id, group_id, *args, **kwargs): """ 应用复制 --- parameters: - name: tenantName description: 团队名称 required: true type: string paramType: path - name: group_id description: 应用id required: true type: int paramType: path """ serializers = GroupAppCopyCSerializer(data=request.data) serializers.is_valid(raise_exception=True) services = serializers.data.get("services") tar_team_name = request.data.get("tar_team_name") tar_region_name = request.data.get("tar_region_name") tar_group_id = request.data.get("tar_group_id") if not self.team: return Response({"msg": "应用所在团队不存在"}, status=404) tar_team, tar_group = groupapp_copy_service.check_and_get_team_group( request.user, tar_team_name, tar_region_name, tar_group_id) groupapp_copy_service.copy_group_services(request.user, self.team, tar_team, tar_region_name, tar_group, group_id, services) domain = request.META.get( "wsgi.url_scheme") + "://" + request.META.get("HTTP_HOST") group_app_url = "/".join([ domain, "#/team", tar_team_name, "region", tar_region_name, "apps", str(tar_group_id) ]) serializers = GroupAppCopyCResSerializer( data={"group_app_url": group_app_url}) serializers.is_valid(raise_exception=True) return Response(serializers.data, status=200)