diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java index f2828d1..d3026b8 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java @@ -26,6 +26,7 @@ import org.opendaylight.netconf.test.tool.rpc.SimulatedDiscardChanges; import org.opendaylight.netconf.test.tool.rpc.SimulatedEditConfig; import org.opendaylight.netconf.test.tool.rpc.SimulatedGet; import org.opendaylight.netconf.test.tool.rpc.SimulatedGetConfig; +import org.opendaylight.netconf.test.tool.rpc.SimulatedGetConnectionPortTrail; import org.opendaylight.netconf.test.tool.rpc.SimulatedLock; import org.opendaylight.netconf.test.tool.rpc.SimulatedUnLock; @@ -38,19 +39,19 @@ class SimulatedOperationProvider implements NetconfOperationServiceFactory { final Optional notificationsFile, final Optional initialConfigXMLFile) { this.caps = caps; - simulatedOperationService = new SimulatedOperationService( + this.simulatedOperationService = new SimulatedOperationService( idProvider.getCurrentSessionId(), notificationsFile, initialConfigXMLFile); } @Override public Set getCapabilities() { - return caps; + return this.caps; } @Override public AutoCloseable registerCapabilityListener( final CapabilityListener listener) { - listener.onCapabilitiesChanged(caps, Collections.emptySet()); + listener.onCapabilitiesChanged(this.caps, Collections.emptySet()); return () -> { }; } @@ -58,7 +59,7 @@ class SimulatedOperationProvider implements NetconfOperationServiceFactory { @Override public NetconfOperationService createService( final String netconfSessionIdForReporting) { - return simulatedOperationService; + return this.simulatedOperationService; } static class SimulatedOperationService implements NetconfOperationService { @@ -76,19 +77,24 @@ class SimulatedOperationProvider implements NetconfOperationServiceFactory { @Override public Set getNetconfOperations() { final DataList storage = new DataList(); - final SimulatedGet sGet = new SimulatedGet(String.valueOf(currentSessionId), storage); - final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(currentSessionId), storage); + final SimulatedGet sGet = new SimulatedGet(String.valueOf(this.currentSessionId), storage, + this.initialConfigXMLFile); + final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(this.currentSessionId), + storage); final SimulatedGetConfig sGetConfig = new SimulatedGetConfig( - String.valueOf(currentSessionId), storage, initialConfigXMLFile); - final SimulatedCommit sCommit = new SimulatedCommit(String.valueOf(currentSessionId)); - final SimulatedLock sLock = new SimulatedLock(String.valueOf(currentSessionId)); - final SimulatedUnLock sUnlock = new SimulatedUnLock(String.valueOf(currentSessionId)); + String.valueOf(this.currentSessionId), storage, this.initialConfigXMLFile); + final SimulatedGetConnectionPortTrail sSimulatedConnectionPortTrail = new SimulatedGetConnectionPortTrail( + String.valueOf(this.currentSessionId)); + final SimulatedCommit sCommit = new SimulatedCommit(String.valueOf(this.currentSessionId)); + final SimulatedLock sLock = new SimulatedLock(String.valueOf(this.currentSessionId)); + final SimulatedUnLock sUnlock = new SimulatedUnLock(String.valueOf(this.currentSessionId)); final SimulatedCreateSubscription sCreateSubs = new SimulatedCreateSubscription( - String.valueOf(currentSessionId), notificationsFile); + String.valueOf(this.currentSessionId), this.notificationsFile); final SimulatedDiscardChanges sDiscardChanges = new SimulatedDiscardChanges( - String.valueOf(currentSessionId)); + String.valueOf(this.currentSessionId)); return Sets.newHashSet( - sGet, sGetConfig, sEditConfig, sCommit, sLock, sUnlock, sCreateSubs, sDiscardChanges); + sGet, sGetConfig, sEditConfig, sCommit, sLock, sUnlock, sCreateSubs, sDiscardChanges, + sSimulatedConnectionPortTrail); } @Override diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/config/Configuration.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/config/Configuration.java index 6654425..d5bebd6 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/config/Configuration.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/config/Configuration.java @@ -95,7 +95,7 @@ public class Configuration { } public PublickeyAuthenticator getPublickeyAuthenticator() { - return publickeyAuthenticator; + return this.publickeyAuthenticator; } public void setPublickeyAuthenticator(final PublickeyAuthenticator publickeyAuthenticator) { @@ -103,7 +103,7 @@ public class Configuration { } public AuthProvider getAuthProvider() { - return authProvider; + return this.authProvider; } public void setAuthProvider(final AuthProvider authProvider) { @@ -111,7 +111,7 @@ public class Configuration { } public Set getDefaultYangResources() { - return defaultYangResources; + return this.defaultYangResources; } public void setDefaultYangResources(final Set defaultYangResources) { @@ -119,7 +119,7 @@ public class Configuration { } public int getThreadPoolSize() { - return threadPoolSize; + return this.threadPoolSize; } public void setThreadPoolSize(final int threadPoolSize) { @@ -127,7 +127,7 @@ public class Configuration { } public int getStartingPort() { - return startingPort; + return this.startingPort; } public void setStartingPort(final int startingPort) { @@ -135,7 +135,7 @@ public class Configuration { } public int getDeviceCount() { - return deviceCount; + return this.deviceCount; } public void setDeviceCount(final int deviceCount) { @@ -143,7 +143,7 @@ public class Configuration { } public int getGenerateConfigsTimeout() { - return generateConfigsTimeout; + return this.generateConfigsTimeout; } public void setGenerateConfigsTimeout(final int generateConfigsTimeout) { @@ -151,7 +151,7 @@ public class Configuration { } public boolean isSsh() { - return ssh; + return this.ssh; } public void setSsh(final boolean ssh) { @@ -159,7 +159,7 @@ public class Configuration { } public String getIp() { - return ip; + return this.ip; } public void setIp(final String ip) { @@ -167,7 +167,7 @@ public class Configuration { } public Set getModels() { - return models; + return this.models; } public void setModels(final Set models) { @@ -175,7 +175,7 @@ public class Configuration { } public Set getCapabilities() { - return capabilities; + return this.capabilities; } public void setCapabilities(final Set capabilities) { @@ -183,7 +183,7 @@ public class Configuration { } public RpcHandler getRpcHandler() { - return rpcHandler; + return this.rpcHandler; } public void setRpcHandler(final RpcHandler rpcHandler) { @@ -191,7 +191,7 @@ public class Configuration { } public OperationsCreator getOperationsCreator() { - return operationsCreator; + return this.operationsCreator; } public void setOperationsCreator(final OperationsCreator operationsCreator) { @@ -200,7 +200,7 @@ public class Configuration { @Deprecated public boolean isMdSal() { - return mdSal; + return this.mdSal; } @Deprecated @@ -210,7 +210,7 @@ public class Configuration { @Deprecated public File getRpcConfigFile() { - return rpcConfigFile; + return this.rpcConfigFile; } @Deprecated @@ -220,7 +220,7 @@ public class Configuration { @Deprecated public File getNotificationFile() { - return notificationFile; + return this.notificationFile; } @Deprecated @@ -230,7 +230,7 @@ public class Configuration { @Deprecated public File getInitialConfigXMLFile() { - return initialConfigXMLFile; + return this.initialConfigXMLFile; } @Deprecated @@ -240,12 +240,12 @@ public class Configuration { @Deprecated public boolean isXmlConfigurationProvided() { - return initialConfigXMLFile != null && notificationFile != null; + return this.initialConfigXMLFile != null;//&& notificationFile != null; } @Deprecated public File getSchemasDir() { - return schemasDir; + return this.schemasDir; } @Deprecated diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java index edfdf6e..0bc0b9d 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java @@ -30,14 +30,14 @@ public final class DefaultOperationsCreator implements OperationsCreator { private final SimulatedOperationService simulatedOperationService; private DefaultOperationsCreator(final long currentSessionId) { - simulatedOperationService = new SimulatedOperationService(currentSessionId); + this.simulatedOperationService = new SimulatedOperationService(currentSessionId); } @Override public NetconfOperationService getNetconfOperationService(final Set caps, final SessionIdProvider idProvider, final String netconfSessionIdForReporting) { - return simulatedOperationService; + return this.simulatedOperationService; } public static DefaultOperationsCreator getDefaultOperationServiceCreator(final long currentSessionId) { @@ -55,17 +55,19 @@ public final class DefaultOperationsCreator implements OperationsCreator { @Override public Set getNetconfOperations() { final DataList storage = new DataList(); - final SimulatedGet sGet = new SimulatedGet(String.valueOf(currentSessionId), storage); - final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(currentSessionId), storage); + final SimulatedGet sGet = new SimulatedGet(String.valueOf(this.currentSessionId), storage, + Optional.absent()); + final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(this.currentSessionId), + storage); final SimulatedGetConfig sGetConfig = new SimulatedGetConfig( - String.valueOf(currentSessionId), storage, Optional.absent()); - final SimulatedCommit sCommit = new SimulatedCommit(String.valueOf(currentSessionId)); - final SimulatedLock sLock = new SimulatedLock(String.valueOf(currentSessionId)); - final SimulatedUnLock sUnlock = new SimulatedUnLock(String.valueOf(currentSessionId)); + String.valueOf(this.currentSessionId), storage, Optional.absent()); + final SimulatedCommit sCommit = new SimulatedCommit(String.valueOf(this.currentSessionId)); + final SimulatedLock sLock = new SimulatedLock(String.valueOf(this.currentSessionId)); + final SimulatedUnLock sUnlock = new SimulatedUnLock(String.valueOf(this.currentSessionId)); final SimulatedCreateSubscription sCreateSubs = new SimulatedCreateSubscription( - String.valueOf(currentSessionId), Optional.absent()); + String.valueOf(this.currentSessionId), Optional.absent()); final SimulatedDiscardChanges sDiscardChanges = new SimulatedDiscardChanges( - String.valueOf(currentSessionId)); + String.valueOf(this.currentSessionId)); return Sets.newHashSet( sGet, sGetConfig, sEditConfig, sCommit, sLock, sUnlock, sCreateSubs, sDiscardChanges); } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java index e5b197d..92f71fc 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java @@ -9,27 +9,62 @@ package org.opendaylight.netconf.test.tool.rpc; import com.google.common.base.Optional; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; +import java.io.File; +import java.io.IOException; +import java.util.Collections; +import java.util.List; import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.xml.sax.SAXException; public class SimulatedGet extends AbstractLastNetconfOperation { private final DataList storage; + private static final Logger LOG = LoggerFactory.getLogger(SimulatedGet.class); - public SimulatedGet(final String netconfSessionIdForReporting, final DataList storage) { + public SimulatedGet(final String netconfSessionIdForReporting, final DataList storage, + final Optional initialConfigXMLFile) { super(netconfSessionIdForReporting); - this.storage = storage; + + if (initialConfigXMLFile.isPresent()) { + LOG.info("File is present: {}", initialConfigXMLFile.get().getName()); + this.storage = loadInitialConfigXMLFile(initialConfigXMLFile.get()); + } else { + this.storage = storage; + } + } + + @SuppressFBWarnings(value = "DLS_DEAD_LOCAL_STORE") + private DataList loadInitialConfigXMLFile(final File file) { + LOG.info("Loading initial config xml file: {}", file.getName()); + DataList configData = new DataList(); + List xmlElementList = Collections.emptyList(); + try { + Element element = XmlUtil.readXmlToElement(file); + XmlElement xmlElement = XmlElement.fromDomElement(element); + xmlElementList = xmlElement.getChildElements(); + configData.setConfigList(xmlElementList); + } catch (IOException e) { + LOG.info("IO exception loading xml file: {} ", e.getMessage()); + + } catch (SAXException e) { + LOG.info("SAXException {}", e.getMessage()); + } + return configData; } @Override protected Element handleWithNoSubsequentOperations(final Document document, final XmlElement operationElement) { final Element element = XmlUtil.createElement(document, XmlNetconfConstants.DATA_KEY, Optional.absent()); - for (final XmlElement e : storage.getConfigList()) { + for (final XmlElement e : this.storage.getConfigList()) { final Element domElement = e.getDomElement(); element.appendChild(element.getOwnerDocument().importNode(domElement, true)); } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConnectionPortTrail.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConnectionPortTrail.java new file mode 100644 index 0000000..551eb71 --- /dev/null +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConnectionPortTrail.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.netconf.test.tool.rpc; + +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class SimulatedGetConnectionPortTrail extends AbstractLastNetconfOperation { + + public SimulatedGetConnectionPortTrail(final String netconfSessionIdForReporting) { + super(netconfSessionIdForReporting); + } + + @Override + protected Element handleWithNoSubsequentOperations(Document document, XmlElement operationElement) + throws DocumentedException { + Element portname = document.createElement("port-name"); + portname.appendChild(document.createTextNode("L1")); + Element circuitpackname = document.createElement("circuit-pack-name"); + circuitpackname.appendChild(document.createTextNode("2/0")); + Element ports = document.createElement("ports"); + ports.setAttribute("xmlns", "http://org/openroadm/device"); + ports.appendChild(portname); + ports.appendChild(circuitpackname); + return ports; + } + + @Override + protected String getOperationName() { + return "get-connection-port-trail"; + } + + +}