def get_or_create_upgrade_record(self, tenant_id, group_id, group_key):
     """获取或创建升级记录"""
     recode_kwargs = {
         "tenant_id": tenant_id,
         "group_id": group_id,
         "group_key": group_key,
         "create_time": datetime.now(),
     }
     try:
         app_record = upgrade_repo.get_app_not_upgrade_record(
             status__lt=UpgradeStatus.UPGRADED.value, **recode_kwargs)
     except AppUpgradeRecord.DoesNotExist:
         from console.services.group_service import group_service
         service_group_keys = group_service.get_group_service_sources(
             group_id).values_list('group_key', flat=True)
         if group_key not in set(service_group_keys or []):
             raise AbortRequest(msg="the rainbond app is not in the group",
                                msg_show="该组中没有这个云市组件",
                                status_code=404)
         tenant = Tenants.objects.get(tenant_id=tenant_id)
         app = rainbond_app_repo.get_rainbond_app_qs_by_key(
             tenant.enterprise_id, group_key).first()
         if not app:
             raise AbortRequest(msg="No rainbond app found",
                                msg_show="没有找到此云市组件",
                                status_code=404)
         app_record = upgrade_repo.create_app_upgrade_record(
             group_name=app.group_name, **recode_kwargs)
     return app_record
 def get_or_create_upgrade_record(self, tenant_id, group_id, group_key, upgrade_group_id, is_from_cloud, market_name):
     """获取或创建升级记录"""
     recode_kwargs = {
         "tenant_id": tenant_id,
         "group_id": group_id,
         "group_key": group_key,
         "create_time": datetime.now(),
         "is_from_cloud": is_from_cloud,
         "market_name": market_name,
         "upgrade_group_id": upgrade_group_id,
     }
     try:
         return upgrade_repo.get_app_not_upgrade_record(status__lt=UpgradeStatus.UPGRADED.value, **recode_kwargs)
     except AppUpgradeRecord.DoesNotExist:
         from console.services.group_service import group_service
         tenant = Tenants.objects.get(tenant_id=tenant_id)
         service_group_keys = group_service.get_group_service_sources(group_id).values_list('group_key', flat=True)
         if group_key in set(service_group_keys or []):
             if not is_from_cloud:
                 app = rainbond_app_repo.get_rainbond_app_qs_by_key(tenant.enterprise_id, group_key)
                 if not app:
                     raise ServiceHandleException(
                         msg="the rainbond app is not in the group", msg_show="该应用中没有这个云市组件", status_code=404)
                 app_name = app.app_name
             else:
                 market = app_market_service.get_app_market_by_name(tenant.enterprise_id, market_name, raise_exception=True)
                 app = app_market_service.get_market_app_model(market, group_key)
                 app_name = app.app_name
             app_record = upgrade_repo.create_app_upgrade_record(group_name=app_name, **recode_kwargs)
             return app_record
         else:
             raise AbortRequest(msg="the app model is not in the group", msg_show="该应用中没有这个应用模型", status_code=404)
Exemple #3
0
 def get_or_create_upgrade_record(self, tenant_id, group_id, group_key):
     """获取或创建升级记录"""
     recode_kwargs = {
         "tenant_id": tenant_id,
         "group_id": group_id,
         "group_key": group_key,
         "create_time": datetime.now(),
     }
     try:
         app_record = upgrade_repo.get_app_not_upgrade_record(status__lt=UpgradeStatus.UPGRADED.value, **recode_kwargs)
     except AppUpgradeRecord.DoesNotExist:
         from console.services.group_service import group_service
         tenant = Tenants.objects.get(tenant_id=tenant_id)
         service_group_keys = group_service.get_group_service_sources(group_id).values_list('group_key', flat=True)
         if group_key in set(service_group_keys or []):
             app_name = None
             app = rainbond_app_repo.get_rainbond_app_qs_by_key(tenant.enterprise_id, group_key).first()
             if app:
                 app_name = app.app_name
             else:
                 is_cloud_app = False
                 markets = self.get_cloud_markets(enterprise_id=tenant.enterprise_id)
                 if markets:
                     for market in markets:
                         cloud_app = self.get_cloud_app(tenant.enterprise_id, market.market_id, group_key)
                         if cloud_app:
                             app_name = cloud_app.name
                             is_cloud_app = True
                 if not is_cloud_app:
                     raise AbortRequest(msg="the rainbond app is not in the group", msg_show="该应用中没有这个云市组件", status_code=404)
             app_record = upgrade_repo.create_app_upgrade_record(group_name=app_name, **recode_kwargs)
             return app_record
         else:
             raise AbortRequest(msg="the rainbond app is not in the group", msg_show="该应用中没有这个云市组件", status_code=404)
 def get_app_not_upgrade_record(self, tenant_id, group_id, group_key):
     """获取未完成升级记录"""
     recode_kwargs = {
         "tenant_id": tenant_id,
         "group_id": int(group_id),
         "group_key": group_key,
     }
     try:
         return upgrade_repo.get_app_not_upgrade_record(status__lt=UpgradeStatus.UPGRADED.value, **recode_kwargs)
     except AppUpgradeRecord.DoesNotExist:
         return AppUpgradeRecord()