diff --git a/pkg/apiserver/domain/service/util.go b/pkg/apiserver/domain/service/util.go index 2292de749..5a4b9a2d5 100644 --- a/pkg/apiserver/domain/service/util.go +++ b/pkg/apiserver/domain/service/util.go @@ -52,6 +52,9 @@ func guaranteePolicyNotExist(c []string, policy string) ([]string, bool) { // extractPolicyListAndProperty can extract policy from string-format properties, and return // map-format properties in order to further update operation. func extractPolicyListAndProperty(property string) ([]string, map[string]interface{}, error) { + if len(property) == 0 { + return nil, nil, nil + } content := map[string]interface{}{} err := json.Unmarshal([]byte(property), &content) if err != nil { diff --git a/pkg/apiserver/domain/service/util_test.go b/pkg/apiserver/domain/service/util_test.go index 5b922fc01..22bba2ee8 100644 --- a/pkg/apiserver/domain/service/util_test.go +++ b/pkg/apiserver/domain/service/util_test.go @@ -208,6 +208,14 @@ func TestExtractPolicyListAndProperty(t *testing.T) { noError bool }{noError: false}, }, + { + input: ``, + res: struct { + policies []string + properties map[string]interface{} + noError bool + }{policies: nil, properties: nil, noError: true}, + }, } for _, testCase := range testCases { policy, properties, err := extractPolicyListAndProperty(testCase.input)