Esempio n. 1
0
    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"])
Esempio n. 2
0
 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, "删除成功"
Esempio n. 3
0
 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
Esempio n. 4
0
 def get_newest_plugin_version(self, plugin_id):
     pbvs = plugin_version_repo.get_plugin_versions(plugin_id)
     if pbvs:
         return pbvs[0]
     return None
Esempio n. 5
0
 def get_plugin_versions(self, plugin_id):
     return plugin_version_repo.get_plugin_versions(plugin_id)
Esempio n. 6
0
 def get_plugin_versions(self, tenant_id, plugin_id):
     return plugin_version_repo.get_plugin_versions(tenant_id, plugin_id)