From bfa2e285f56059fa9da5890dc2acce17d9aff49a Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 16 Feb 2023 14:58:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=BA=94=E7=94=A8=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E7=BC=BA=E5=B0=91=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/models/component/storage.py | 5 +++++ apps/terminal/serializers/storage.py | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/terminal/models/component/storage.py b/apps/terminal/models/component/storage.py index a3f8e4b54..dc064c0d0 100644 --- a/apps/terminal/models/component/storage.py +++ b/apps/terminal/models/component/storage.py @@ -77,6 +77,11 @@ class CommandStorage(CommonStorageModelMixin, JMSBaseModel): def config(self): config = self.meta config.update({'TYPE': self.type}) + # 处理 hosts 对象, 正常应该是list, 但是有时候是 str, debug 未果 + hosts = config.get('HOSTS', []) + if isinstance(hosts, str) and ',' in hosts: + hosts = hosts.split(',') + config['HOSTS'] = hosts return copy.deepcopy(config) @property diff --git a/apps/terminal/serializers/storage.py b/apps/terminal/serializers/storage.py index 8bc66fd5a..dd0f7f677 100644 --- a/apps/terminal/serializers/storage.py +++ b/apps/terminal/serializers/storage.py @@ -178,7 +178,6 @@ command_storage_type_serializer_classes_mapping = { # BaseStorageSerializer class BaseStorageSerializer(serializers.ModelSerializer): - type = LabeledChoiceField(choices=const.ReplayStorageType.choices, label=_('Type')) storage_type_serializer_classes_mapping = {} meta = MethodSerializer() @@ -222,6 +221,7 @@ class BaseStorageSerializer(serializers.ModelSerializer): # CommandStorageSerializer class CommandStorageSerializer(BaseStorageSerializer): + type = LabeledChoiceField(choices=const.CommandStorageType.choices, label=_('Type')) storage_type_serializer_classes_mapping = command_storage_type_serializer_classes_mapping class Meta(BaseStorageSerializer.Meta): @@ -233,6 +233,7 @@ class CommandStorageSerializer(BaseStorageSerializer): # ReplayStorageSerializer class ReplayStorageSerializer(BaseStorageSerializer): + type = LabeledChoiceField(choices=const.ReplayStorageType.choices, label=_('Type')) storage_type_serializer_classes_mapping = replay_storage_type_serializer_classes_mapping class Meta(BaseStorageSerializer.Meta):