X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Foperations%2FCommit.java;h=b3327f54fd23ece86371f29ada3c97ae036c4a92;hb=2c146f582dee58e36dc22505b4c6bedb4641342f;hp=592d8e4f3b657933b99144f5c769adf4895a5baf;hpb=d67608349eca39dd2b4b77923b1500d25a664e52;p=controller.git diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/Commit.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/Commit.java index 592d8e4f3b..b3327f54fd 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/Commit.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/Commit.java @@ -8,9 +8,8 @@ package org.opendaylight.controller.netconf.confignetconfconnector.operations; -import java.util.HashMap; -import java.util.Map; - +import org.opendaylight.controller.config.api.ConflictingVersionException; +import org.opendaylight.controller.config.api.ValidationException; import org.opendaylight.controller.config.api.jmx.CommitStatus; import org.opendaylight.controller.config.util.ConfigRegistryClient; import org.opendaylight.controller.netconf.api.NetconfDocumentedException; @@ -25,6 +24,9 @@ import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; +import java.util.HashMap; +import java.util.Map; + public class Commit extends AbstractConfigNetconfOperation { private static final Logger logger = LoggerFactory.getLogger(Commit.class); @@ -55,16 +57,19 @@ public class Commit extends AbstractConfigNetconfOperation { try { status = this.transactionProvider.commitTransaction(); } catch (final IllegalStateException e) { + // TODO Illegal state thrown when no transaction yet for user + // Throw other exception type, or create transaction automatically logger.warn("Commit failed: ", e); final Map errorInfo = new HashMap<>(); errorInfo.put(ErrorTag.operation_failed.name(), "Operation failed. Use 'get-config' or 'edit-config' before triggering 'commit' operation"); throw new NetconfDocumentedException(e.getMessage(), e, ErrorType.application, ErrorTag.operation_failed, ErrorSeverity.error, errorInfo); - } catch (final NetconfDocumentedException e) { - throw new NetconfDocumentedException( - "Unable to retrieve config snapshot after commit for persister, details: " + e.getMessage(), - ErrorType.application, ErrorTag.operation_failed, ErrorSeverity.error, e.getErrorInfo()); + } catch (ValidationException e) { + throw NetconfDocumentedException.wrap(e); + } catch (ConflictingVersionException e) { + throw NetconfDocumentedException.wrap(e); + } logger.trace("Datastore {} committed successfully: {}", Datastore.candidate, status);