From af3ffd61795ecaf709a6108d7e68d4eeac4f8c03 Mon Sep 17 00:00:00 2001 From: "chang.qiangqiang" Date: Wed, 6 Apr 2022 18:02:34 +0800 Subject: [PATCH] fix: bugfix response's patch and patchType is nil, controller panic Signed-off-by: charlesQQ fix: bugfix response's patch and patchType is nil, controller panic Signed-off-by: charlesQQ --- pkg/resourceinterpreter/customizedinterpreter/customized.go | 3 +++ .../webhook/resourceinterpretercontext.go | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/resourceinterpreter/customizedinterpreter/customized.go b/pkg/resourceinterpreter/customizedinterpreter/customized.go index 2b2422e95..6213cc2f7 100644 --- a/pkg/resourceinterpreter/customizedinterpreter/customized.go +++ b/pkg/resourceinterpreter/customizedinterpreter/customized.go @@ -252,6 +252,9 @@ func (e *CustomizedInterpreter) callHook(ctx context.Context, hook configmanager func applyPatch(object *unstructured.Unstructured, patch []byte, patchType configv1alpha1.PatchType) (*unstructured.Unstructured, error) { switch patchType { case configv1alpha1.PatchTypeJSONPatch: + if len(patch) == 0 { + return object, nil + } patchObj, err := jsonpatch.DecodePatch(patch) if err != nil { return nil, err diff --git a/pkg/resourceinterpreter/customizedinterpreter/webhook/resourceinterpretercontext.go b/pkg/resourceinterpreter/customizedinterpreter/webhook/resourceinterpretercontext.go index 7d984f8b9..1fc476a0a 100644 --- a/pkg/resourceinterpreter/customizedinterpreter/webhook/resourceinterpretercontext.go +++ b/pkg/resourceinterpreter/customizedinterpreter/webhook/resourceinterpretercontext.go @@ -107,7 +107,9 @@ func verifyResourceInterpreterContext(operation configv1alpha1.InterpreterOperat return nil, err } res.Patch = response.Patch - res.PatchType = *response.PatchType + if response.PatchType != nil { + res.PatchType = *response.PatchType + } return res, nil case configv1alpha1.InterpreterOperationInterpretStatus: res.RawStatus = *response.RawStatus