diff --git a/apiserver/paasng/paas_wl/bk_app/processes/serializers.py b/apiserver/paasng/paas_wl/bk_app/processes/serializers.py index 40af14fb0d..785a329a7c 100644 --- a/apiserver/paasng/paas_wl/bk_app/processes/serializers.py +++ b/apiserver/paasng/paas_wl/bk_app/processes/serializers.py @@ -128,12 +128,12 @@ class InstanceListSLZ(serializers.Serializer): class EventSerializer(serializers.Serializer): - reason = serializers.CharField(help_text="事件发生的原因") + reason = serializers.CharField(help_text="事件发生的原因", required=False, allow_null=True) count = serializers.IntegerField(help_text="事件发生的次数") - type = serializers.CharField(help_text="事件的类型") - message = serializers.CharField(help_text="事件内容") - first_timestamp = serializers.CharField() - last_timestamp = serializers.CharField() + type = serializers.CharField(help_text="事件的类型", required=False, allow_null=True) + message = serializers.CharField(help_text="事件内容", required=False, allow_null=True) + first_timestamp = serializers.CharField(required=False, allow_null=True) + last_timestamp = serializers.CharField(required=False, allow_null=True) class ListWatcherRespSLZ(serializers.Serializer): diff --git a/apiserver/paasng/paas_wl/workloads/event/kres_slzs.py b/apiserver/paasng/paas_wl/workloads/event/kres_slzs.py index 3a93bf4fbc..560bc48b2c 100644 --- a/apiserver/paasng/paas_wl/workloads/event/kres_slzs.py +++ b/apiserver/paasng/paas_wl/workloads/event/kres_slzs.py @@ -31,26 +31,26 @@ class EventDeserializer(AppEntityDeserializer["Event"]): def deserialize(self, app: WlApp, kube_data: ResourceInstance) -> "Event": - involved_object = kube_data.involvedObject + involved_object = kube_data.get("involvedObject", {}) return self.entity_type( app=app, - name=kube_data.metadata.name, - type=kube_data.type, - message=kube_data.message, - reason=kube_data.reason, + name=kube_data.get("metadata", {}).get("name", None), + type=kube_data.get("type", None), + message=kube_data.get("message", None), + reason=kube_data.get("reason", None), # k8s 产生事件时,不写入 count 字段是否代表事件发生一次,待验证 count=kube_data.get("count", 1), - first_timestamp=kube_data.firstTimestamp, - last_timestamp=kube_data.lastTimestamp, + first_timestamp=kube_data.get("firstTimestamp", None), + last_timestamp=kube_data.get("lastTimestamp", None), involved_object=InvolvedObject( - kind=involved_object.kind, - name=involved_object.name, - namespace=getattr(involved_object, "namespace", None), - api_version=involved_object.apiVersion, + kind=involved_object.get("kind", None), + name=involved_object.get("name", None), + namespace=involved_object.get("namespace", None), + api_version=involved_object.get("apiVersion", None), ), source=Source( - component=kube_data.source.component, - host=getattr(kube_data.source, "host", None), + component=kube_data.get("source", {}).get("component", None), + host=kube_data.get("source", {}).get("host", None), ), )