Esempio n. 1
0
    def get(self, request, *args, **kwargs):
        if self.service.service_source != "market":
            return Response(general_message(
                400, "non-cloud installed applications require no judgment",
                "非云市安装的应用无需判断"),
                            status=400)

        # 判断服务状态,未部署的服务不提供升级数据
        try:
            body = region_api.check_service_status(self.service.service_region,
                                                   self.tenant.tenant_name,
                                                   self.service.service_alias,
                                                   self.tenant.enterprise_id)
            status = body["bean"]["cur_status"]
        except Exception as e:
            logger.exception(e)
            status = "unknown"
        if status == "undeploy" or status == "unknown":
            result = general_message(200, "success", "查询成功", list=[])
            return Response(result, status=result["code"])

        # List the versions that can be upgraded
        versions = market_app_service.list_upgradeable_versions(
            self.tenant, self.service)
        if versions is None:
            versions = []
        return Response(status=200,
                        data=general_message(200,
                                             "success",
                                             "查询成功",
                                             list=versions))
    def get_app_upgrade_versions(self, tenant, group_id, group_key):
        """获取云市组件可升级版本列表"""
        from console.services.group_service import group_service
        from console.services.market_app_service import market_app_service

        # 查询某一个云市组件下的所有组件
        services = group_service.get_rainbond_services(group_id, group_key)
        versions = set()

        # 查询可升级的组件
        for service in services:
            service_version = market_app_service.list_upgradeable_versions(
                tenant, service)
            versions |= set(service_version or [])

        # 查询新增组件的版本
        service_keys = services.values_list('service_key', flat=True)
        service_keys = set(service_keys) if service_keys else set()
        app_qs = rainbond_app_repo.get_rainbond_app_qs_by_key(
            tenant.enterprise_id, group_key=group_key)
        add_versions = self.query_the_version_of_the_add_service(
            app_qs, service_keys)

        versions |= add_versions

        return versions
Esempio n. 3
0
    def get(self, request, *args, **kwargs):
        if self.service.service_source != "market":
            return Response(general_message(
                400, "non-cloud installed applications require no judgment",
                "非云市安装的组件无需判断"),
                            status=400)

        # 判断组件状态,未部署的组件不提供升级数据
        body = region_api.check_service_status(self.service.service_region,
                                               self.tenant.tenant_name,
                                               self.service.service_alias,
                                               self.tenant.enterprise_id)
        status = body["bean"]["cur_status"]
        if status == "undeploy" or status == "unknown":
            result = general_message(200, "success", "查询成功", list=[])
            return Response(result, status=result["code"])

        # List the versions that can be upgraded
        versions = []
        try:
            versions = market_app_service.list_upgradeable_versions(
                self.tenant, self.service)
        except RbdAppNotFound:
            return Response(status=404,
                            data=general_message(404, "service lost",
                                                 "未找到该组件"))
        return Response(status=200,
                        data=general_message(200,
                                             "success",
                                             "查询成功",
                                             list=versions))
 def get(self, request, *args, **kwargs):
     versions = []
     try:
         versions = market_app_service.list_upgradeable_versions(
             self.tenant, self.service)
     except RbdAppNotFound:
         return Response(status=404,
                         data=general_message(404, "service lost",
                                              "未找到该组件"))
     except Exception as e:
         logger.debug(e)
         return Response(status=200,
                         data=general_message(200,
                                              "success",
                                              "查询成功",
                                              list=versions))
     return Response(status=200,
                     data=general_message(200,
                                          "success",
                                          "查询成功",
                                          list=versions))