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)
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()