def delete(self, request, *args, **kwargs): """ 删除插件某个版本 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: plugin_id description: 插件ID required: true type: string paramType: path - name: build_version description: 版本 required: true type: string paramType: path """ try: app_plugin_relations = app_plugin_relation_repo.get_service_plugin_relation_by_plugin_unique_key( self.plugin_version.plugin_id, self.plugin_version.build_version) if app_plugin_relations: return Response(general_message(409, "plugin is being using", "插件已被使用,无法删除"), status=409) count_of_version = plugin_version_repo.get_plugin_versions( self.tenant.tenant_id, self.plugin_version.plugin_id).count() if count_of_version == 1: return Response(general_message(409, "at least keep one version", "至少保留一个插件版本"), status=409) # 数据中心端删除 region_api.delete_plugin_version(self.response_region, self.tenant.tenant_name, self.plugin_version.plugin_id, self.plugin_version.build_version) # delete console plugin_version_service.delete_build_version_by_id_and_version( self.tenant.tenant_id, self.plugin_version.plugin_id, self.plugin_version.build_version) plugin_config_service.delete_plugin_version_config( self.plugin_version.plugin_id, self.plugin_version.build_version) result = general_message(200, "success", "删除成功") except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
def delete_build_version_by_id_and_version(self, plugin_id, build_version, force=False): plugin_build_version = plugin_version_repo.get_by_id_and_version(plugin_id, build_version) if not plugin_build_version: return 404, "插件不存在" if not force: count_of_version = plugin_version_repo.get_plugin_versions(plugin_id).count() if count_of_version == 1: return 409, "至少保留插件的一个版本" plugin_version_repo.delete_build_version(plugin_id, build_version) return 200, "删除成功"
def get_newest_usable_plugin_version(self,plugin_id): pbvs = plugin_version_repo.get_plugin_versions(plugin_id).filter(build_status="success") if pbvs: return pbvs[0] return None
def get_newest_plugin_version(self, plugin_id): pbvs = plugin_version_repo.get_plugin_versions(plugin_id) if pbvs: return pbvs[0] return None
def get_plugin_versions(self, plugin_id): return plugin_version_repo.get_plugin_versions(plugin_id)
def get_plugin_versions(self, tenant_id, plugin_id): return plugin_version_repo.get_plugin_versions(tenant_id, plugin_id)