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%2Fgetconfig%2FGetConfig.java;h=e5ba3dbb1ecbbf5e46b62d381d1ef31c2685ae37;hb=refs%2Fchanges%2F13%2F23413%2F26;hp=fee3036214010d9dfe23453b62dee2cb70df2a17;hpb=80aa861b74f7b0b3574f0962cdb45740ff71946c;p=controller.git diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/getconfig/GetConfig.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/getconfig/GetConfig.java index fee3036214..e5ba3dbb1e 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/getconfig/GetConfig.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/getconfig/GetConfig.java @@ -9,24 +9,12 @@ package org.opendaylight.controller.netconf.confignetconfconnector.operations.getconfig; import com.google.common.base.Optional; -import java.util.Set; -import javax.management.ObjectName; -import org.opendaylight.controller.config.util.ConfigRegistryClient; -import org.opendaylight.controller.config.util.ConfigTransactionClient; -import org.opendaylight.controller.netconf.api.NetconfDocumentedException; +import org.opendaylight.controller.config.facade.xml.ConfigSubsystemFacade; +import org.opendaylight.controller.config.facade.xml.Datastore; +import org.opendaylight.controller.config.util.xml.DocumentedException; +import org.opendaylight.controller.config.util.xml.XmlElement; import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants; -import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.Config; -import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.ServiceRegistryWrapper; import org.opendaylight.controller.netconf.confignetconfconnector.operations.AbstractConfigNetconfOperation; -import org.opendaylight.controller.netconf.confignetconfconnector.operations.Datastore; -import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfig; -import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot; -import org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider; -import org.opendaylight.controller.netconf.util.exception.MissingNameSpaceException; -import org.opendaylight.controller.netconf.util.exception.UnexpectedElementException; -import org.opendaylight.controller.netconf.util.exception.UnexpectedNamespaceException; -import org.opendaylight.controller.netconf.util.xml.XmlElement; -import org.opendaylight.controller.netconf.util.xml.XmlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; @@ -36,23 +24,16 @@ public class GetConfig extends AbstractConfigNetconfOperation { public static final String GET_CONFIG = "get-config"; - private final YangStoreSnapshot yangStoreSnapshot; private final Optional maybeNamespace; - private final TransactionProvider transactionProvider; + private static final Logger LOG = LoggerFactory.getLogger(GetConfig.class); - private static final Logger logger = LoggerFactory.getLogger(GetConfig.class); - - public GetConfig(YangStoreSnapshot yangStoreSnapshot, Optional maybeNamespace, - TransactionProvider transactionProvider, ConfigRegistryClient configRegistryClient, - String netconfSessionIdForReporting) { - super(configRegistryClient, netconfSessionIdForReporting); - this.yangStoreSnapshot = yangStoreSnapshot; + public GetConfig(final ConfigSubsystemFacade configSubsystemFacade, final Optional maybeNamespace, final String netconfSessionIdForReporting) { + super(configSubsystemFacade, netconfSessionIdForReporting); this.maybeNamespace = maybeNamespace; - this.transactionProvider = transactionProvider; } - public static Datastore fromXml(XmlElement xml) throws UnexpectedNamespaceException, UnexpectedElementException, MissingNameSpaceException, NetconfDocumentedException { + public static Datastore fromXml(XmlElement xml) throws DocumentedException { xml.checkName(GET_CONFIG); xml.checkNamespace(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0); @@ -61,7 +42,7 @@ public class GetConfig extends AbstractConfigNetconfOperation { XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0); XmlElement sourceNode = sourceElement.getOnlyChildElement(); String sourceParsed = sourceNode.getName(); - logger.debug("Setting source datastore to '{}'", sourceParsed); + LOG.debug("Setting source datastore to '{}'", sourceParsed); Datastore sourceDatastore = Datastore.valueOf(sourceParsed); // Filter option: ignore for now, TODO only load modules specified by the filter @@ -70,36 +51,13 @@ public class GetConfig extends AbstractConfigNetconfOperation { } - private Element getResponseInternal(final Document document, final ConfigRegistryClient configRegistryClient, - final Datastore source) { - Element dataElement = XmlUtil.createElement(document, XmlNetconfConstants.DATA_KEY, Optional.absent()); - final Set instances = Datastore.getInstanceQueryStrategy(source, this.transactionProvider) - .queryInstances(configRegistryClient); - - final Config configMapping = new Config(EditConfig.transformMbeToModuleConfigs(configRegistryClient, - yangStoreSnapshot.getModuleMXBeanEntryMap())); - - - ObjectName on = transactionProvider.getOrCreateTransaction(); - ConfigTransactionClient ta = configRegistryClient.getConfigTransactionClient(on); - - ServiceRegistryWrapper serviceTracker = new ServiceRegistryWrapper(ta); - dataElement = configMapping.toXml(instances, this.maybeNamespace, document, dataElement, serviceTracker); - - logger.trace("{} operation successful", GET_CONFIG); - - return dataElement; - } - @Override protected String getOperationName() { return GET_CONFIG; } @Override - public Element handleWithNoSubsequentOperations(Document document, XmlElement xml) throws NetconfDocumentedException { - Datastore source; - source = fromXml(xml); - return getResponseInternal(document, getConfigRegistryClient(), source); + public Element handleWithNoSubsequentOperations(Document document, XmlElement xml) throws DocumentedException { + return getConfigSubsystemFacade().getConfiguration(document, fromXml(xml), maybeNamespace); } }