X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Foperations%2Feditconfig%2FEditConfig.java;h=ab2a081fb3690291d2108c827b221f78889ff149;hp=7948bb6f42fd0876975fa70ee33cb0eee4d6cf25;hb=b38840f0ca28b5968bf3841e7bde37d8904ca878;hpb=9ad394ce89be3a36de94be385ae3190583a29c69 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/editconfig/EditConfig.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/editconfig/EditConfig.java index 7948bb6f42..ab2a081fb3 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/editconfig/EditConfig.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/editconfig/EditConfig.java @@ -36,6 +36,7 @@ import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.ModuleElementDefinition; import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.ModuleElementResolved; import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.Services; +import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.Services.ServiceInstance; import org.opendaylight.controller.netconf.confignetconfconnector.operations.AbstractConfigNetconfOperation; import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfigXmlParser.EditConfigExecution; import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreContext; @@ -155,11 +156,16 @@ public class EditConfig extends AbstractConfigNetconfOperation { for (Map.Entry refNameToServiceEntry : refNameToInstance.entrySet()) { ObjectName on = refNameToServiceEntry.getValue().getObjectName(ta.getTransactionName()); try { - ObjectName saved = ta.saveServiceReference(qnameOfService, refNameToServiceEntry.getKey(), on); - LOG.debug("Saving service {} with on {} under name {} with service on {}", qnameOfService, - on, refNameToServiceEntry.getKey(), saved); + if (ServiceInstance.EMPTY_SERVICE_INSTANCE == refNameToServiceEntry.getValue()) { + ta.removeServiceReference(qnameOfService, refNameToServiceEntry.getKey()); + LOG.debug("Removing service {} with name {}", qnameOfService, refNameToServiceEntry.getKey()); + } else { + ObjectName saved = ta.saveServiceReference(qnameOfService, refNameToServiceEntry.getKey(), on); + LOG.debug("Saving service {} with on {} under name {} with service on {}", qnameOfService, + on, refNameToServiceEntry.getKey(), saved); + } } catch (InstanceNotFoundException e) { - throw new NetconfDocumentedException(String.format("Unable to save ref name " + refNameToServiceEntry.getKey() + " for instance " + on, e), + throw new NetconfDocumentedException(String.format("Unable to edit ref name " + refNameToServiceEntry.getKey() + " for instance " + on, e), ErrorType.application, ErrorTag.operation_failed, ErrorSeverity.error);