From 2f6470a399eaeb7d0e92672700ff5a7cb3e547a7 Mon Sep 17 00:00:00 2001 From: Malte Bauch <malte.bauch@h-da.de> Date: Fri, 19 Jul 2024 11:08:27 +0000 Subject: [PATCH] Add case for API_OPERATION_REPLACE within plugins ValidateChange method See merge request danet/gosdn!968 --- plugins/sdk/deviceModel.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/sdk/deviceModel.go b/plugins/sdk/deviceModel.go index 8aec7a59d..710ee23dd 100644 --- a/plugins/sdk/deviceModel.go +++ b/plugins/sdk/deviceModel.go @@ -241,13 +241,21 @@ func (d *DeviceModel) ValidateChange(operation mnepb.ApiOperation, path *gpb.Pat d.mu.RUnlock() switch operation { - case mnepb.ApiOperation_API_OPERATION_UPDATE, mnepb.ApiOperation_API_OPERATION_REPLACE: + case mnepb.ApiOperation_API_OPERATION_DELETE: + if err := ytypes.DeleteNode(d.schema.RootSchema(), modelCopy, path); err != nil { + return nil, err + } + case mnepb.ApiOperation_API_OPERATION_REPLACE: + if err := ytypes.DeleteNode(d.schema.RootSchema(), modelCopy, path); err != nil { + return nil, err + } opts := []ytypes.SetNodeOpt{&ytypes.InitMissingElements{}, &ytypes.TolerateJSONInconsistencies{}, &ytypes.IgnoreExtraFields{}} if err := ytypes.SetNode(d.schema.RootSchema(), modelCopy, path, value, opts...); err != nil { return nil, err } - case mnepb.ApiOperation_API_OPERATION_DELETE: - if err := ytypes.DeleteNode(d.schema.RootSchema(), modelCopy, path); err != nil { + case mnepb.ApiOperation_API_OPERATION_UPDATE: + opts := []ytypes.SetNodeOpt{&ytypes.InitMissingElements{}, &ytypes.TolerateJSONInconsistencies{}, &ytypes.IgnoreExtraFields{}} + if err := ytypes.SetNode(d.schema.RootSchema(), modelCopy, path, value, opts...); err != nil { return nil, err } default: -- GitLab