Bypass testtool issues in NETCONF get rpc
[transportpce.git] / tests / netconf.patch
1 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
2 index 3847ce9b..eeae4434 100644
3 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java
4 +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java
5 @@ -79,7 +79,8 @@ class SimulatedOperationProvider implements NetconfOperationServiceFactory {
6          @Override
7          public Set<NetconfOperation> getNetconfOperations() {
8              final DataList storage = new DataList();
9 -            final SimulatedGet sGet = new SimulatedGet(String.valueOf(currentSessionId), storage);
10 +            final SimulatedGet sGet = new SimulatedGet(
11 +                String.valueOf(currentSessionId), storage, initialConfigXMLFile);
12              final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(currentSessionId), storage);
13              final SimulatedGetConfig sGetConfig = new SimulatedGetConfig(
14                  String.valueOf(currentSessionId), storage, initialConfigXMLFile);
15 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
16 index 0f19b117..3aafa005 100644
17 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java
18 +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java
19 @@ -9,21 +9,56 @@
20  package org.opendaylight.netconf.test.tool.rpc;
21  
22  import com.google.common.base.Optional;
23 +import java.io.File;
24 +import java.io.IOException;
25 +import java.util.Collections;
26 +import java.util.List;
27  import org.opendaylight.controller.config.util.xml.DocumentedException;
28  import org.opendaylight.controller.config.util.xml.XmlElement;
29  import org.opendaylight.controller.config.util.xml.XmlUtil;
30  import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
31  import org.opendaylight.netconf.confignetconfconnector.operations.AbstractConfigNetconfOperation;
32 +import org.slf4j.Logger;
33 +import org.slf4j.LoggerFactory;
34  import org.w3c.dom.Document;
35  import org.w3c.dom.Element;
36 +import org.xml.sax.SAXException;
37  
38  public class SimulatedGet extends AbstractConfigNetconfOperation {
39  
40      private final DataList storage;
41 +    private static final Logger LOG = LoggerFactory
42 +            .getLogger(SimulatedGet.class);
43  
44 -    public SimulatedGet(final String netconfSessionIdForReporting, final DataList storage) {
45 +    public SimulatedGet(final String netconfSessionIdForReporting, final DataList storage,
46 +                              final Optional<File> initialConfigXMLFile) {
47          super(null, netconfSessionIdForReporting);
48 -        this.storage = storage;
49 +
50 +        if (initialConfigXMLFile.isPresent()) {
51 +            LOG.info("File is present: {}", initialConfigXMLFile.get()
52 +                    .getName());
53 +            this.storage = loadInitialConfigXMLFile(initialConfigXMLFile.get());
54 +        } else {
55 +            this.storage = storage;
56 +        }
57 +    }
58 +
59 +    private DataList loadInitialConfigXMLFile(final File file) {
60 +        LOG.info("Loading initial config xml file: {}", file.getName());
61 +        DataList configData = new DataList();
62 +        List<XmlElement> xmlElementList = Collections.emptyList();
63 +        try {
64 +            Element element = XmlUtil.readXmlToElement(file);
65 +            XmlElement xmlElement = XmlElement.fromDomElement(element);
66 +            xmlElementList = xmlElement.getChildElements();
67 +            configData.setConfigList(xmlElementList);
68 +        } catch (IOException e) {
69 +            LOG.info("IO exception loading xml file: {} ", e.getMessage());
70 +
71 +        } catch (SAXException e) {
72 +            LOG.info("SAXException {}", e.getMessage());
73 +        }
74 +        return configData;
75      }
76  
77      @Override