From e1e935db3992d15747be70c7ec41249450da1275 Mon Sep 17 00:00:00 2001 From: jpyoung3 <809608046@qq.com> Date: Fri, 11 Oct 2024 11:06:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=89=E8=A3=85=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E5=AF=B9=E4=BA=8E=E4=B8=8D=E5=AD=98=E7=9A=84tag=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=96=E6=9C=80=E5=A4=A7=E7=9A=84packageid=20(close?= =?UTF-8?q?d=20#2432)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/backend/subscription/steps/adapter.py | 36 +++++++++------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/apps/backend/subscription/steps/adapter.py b/apps/backend/subscription/steps/adapter.py index 31e3829a9..e78335bee 100644 --- a/apps/backend/subscription/steps/adapter.py +++ b/apps/backend/subscription/steps/adapter.py @@ -9,7 +9,6 @@ specific language governing permissions and limitations under the License. """ import copy -import itertools import logging import typing from collections import ChainMap, OrderedDict, defaultdict @@ -24,7 +23,6 @@ from apps.core.tag.models import Tag from apps.core.tag.targets.plugin import PluginTargetHelper from apps.node_man import constants, models -from apps.node_man.constants import CPU_TUPLE, PLUGIN_OS_TUPLE logger = logging.getLogger("app") @@ -299,26 +297,20 @@ def format2policy_packages_new( # 如果 latest 是 tag,走取指定版本的逻辑 # 如果 latest 指定版本没有某个版本的插件包,取 id 最大版本 packages = models.Packages.objects.filter(project=plugin_name, version=plugin_version) - package_list = models.Packages.objects.none() - for os, cpu_arch in itertools.product(PLUGIN_OS_TUPLE, CPU_TUPLE): - version_exists = models.Packages.objects.filter( - project=plugin_name, version=plugin_version, os=os, cpu_arch=cpu_arch - ).exists() - if not version_exists: - os_cpu_exists = models.Packages.objects.filter( - project=plugin_name, os=os, cpu_arch=cpu_arch - ).exists() - if os_cpu_exists: - max_pkg_id: int = self.max_ids_by_key( - list( - models.Packages.objects.filter(project=plugin_name, os=os, cpu_arch=cpu_arch).values( - "id", "os", "cpu_arch" - ) - ) - )[0] - package = models.Packages.objects.filter(id=max_pkg_id) - package_list = package_list.union(package) - packages = packages.union(package_list) + os_cpu_exists = models.Packages.objects.filter( + project=plugin_name, version=plugin_version, os="linux", cpu_arch="x86_64" + ).exists() + package = models.Packages.objects.none() + if not os_cpu_exists: + max_pkg_id: int = self.max_ids_by_key( + list( + models.Packages.objects.filter(project=plugin_name, os="linux", cpu_arch="x86_64").values( + "id", "os", "cpu_arch" + ) + ) + )[0] + package = models.Packages.objects.filter(id=max_pkg_id) + packages = packages.union(package) else: max_pkg_ids: List[int] = self.max_ids_by_key( list(models.Packages.objects.filter(project=plugin_name).values("id", "os", "cpu_arch"))