Example #1
0
 def post(self, request, app_id, *args, **kwargs):
     is_deploy = request.GET.get("is_deploy", False)
     if is_deploy == "true":
         is_deploy = True
     serializer = InstallSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     market_url = serializer.data.get("market_url")
     market_domain = serializer.data.get("market_domain")
     market_type = serializer.data.get("market_type")
     market_access_key = serializer.data.get("market_access_key")
     app_model_id = serializer.data.get("app_model_id")
     app_model_version = serializer.data.get("app_model_version")
     market = app_market_service.get_app_market_by_domain_url(
         self.team.enterprise_id, market_domain, market_url)
     if not market:
         market_name = make_uuid()
         dt = {
             "name": market_name,
             "url": market_url,
             "type": market_type,
             "enterprise_id": self.team.enterprise_id,
             "access_key": market_access_key,
             "domain": market_domain,
         }
         app_market_service.create_app_market(dt)
         dt, market = app_market_service.get_app_market(
             self.team.enterprise_id, market_name, raise_exception=True)
     market_name = market.name
     app, app_version_info = app_market_service.cloud_app_model_to_db_model(
         market, app_model_id, app_model_version, for_install=True)
     if not app:
         raise ServiceHandleException(status_code=404,
                                      msg="not found",
                                      msg_show="云端应用不存在")
     if not app_version_info:
         raise ServiceHandleException(status_code=404,
                                      msg="not found",
                                      msg_show="云端应用版本不存在")
     market_app_service.install_service(self.team,
                                        self.region_name,
                                        self.user,
                                        app_id,
                                        app,
                                        app_version_info,
                                        is_deploy,
                                        True,
                                        market_name=market_name)
     services = group_service.get_group_services(app_id)
     app_info = model_to_dict(self.app)
     app_info["app_name"] = app_info["group_name"]
     app_info["team_id"] = app_info["tenant_id"]
     app_info["enterprise_id"] = self.team.enterprise_id
     app_info["service_list"] = services
     reapp = MarketInstallSerializer(data=app_info)
     reapp.is_valid()
     return Response(reapp.data, status=status.HTTP_200_OK)
    def post(self, request, enterprise_id, *args, **kwargs):
        name = request.data.get("name")
        if not market_name_format(name):
            raise ServiceHandleException(msg="name format error",
                                         msg_show="标识必须以字母开头且为数字字母组合")
        if len(name) > 64:
            raise ServiceHandleException(msg="store note too lang",
                                         msg_show="应用市场标识字符串长度不能超过64")
        access_key = request.data.get("access_key")
        if len(access_key) > 255:
            raise ServiceHandleException(msg="access key too long",
                                         msg_show="Access Key 字符串长度不能超过255")
        dt = {
            "name": name,
            "url": request.data.get("url"),
            "type": request.data.get("type"),
            "enterprise_id": enterprise_id,
            "access_key": access_key,
            "domain": request.data.get("domain"),
        }

        app_market = app_market_service.create_app_market(dt)
        result = general_message(200,
                                 "success",
                                 None,
                                 bean=app_market.to_dict())
        return Response(result, status=200)