ONOS-3577 Adding getConfig with realtive config XML-tree argument

Change-Id: I3ee69bea55352e35007826659277c839d8457d3f
diff --git a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/NetconfSessionImpl.java b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/NetconfSessionImpl.java
index 1eff32a..ab7c746 100644
--- a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/NetconfSessionImpl.java
+++ b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/NetconfSessionImpl.java
@@ -195,6 +195,29 @@
     }
 
     @Override
+    public boolean editConfig(String targetConfiguration, String mode, String newConfiguration)
+            throws IOException {
+        newConfiguration = newConfiguration.trim();
+        StringBuilder rpc = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+        rpc.append("<rpc message-id=\"" + messageID + "\"  "
+                           + "xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">\n");
+        rpc.append("<edit-config>");
+        rpc.append("<target>");
+        rpc.append("<" + targetConfiguration + "/>");
+        rpc.append("</target>");
+        rpc.append("<default-operation>");
+        rpc.append(mode);
+        rpc.append("</default-operation>");
+        rpc.append("<config>");
+        rpc.append(newConfiguration);
+        rpc.append("</config>");
+        rpc.append("</edit-config>");
+        rpc.append("</rpc>");
+        rpc.append(endpattern);
+        return checkReply(doRequest(rpc.toString()));
+    }
+
+    @Override
     public boolean copyConfig(String targetConfiguration, String newConfiguration)
             throws IOException {
         newConfiguration = newConfiguration.trim();
@@ -322,6 +345,7 @@
                 return true;
             }
         }
+        log.warn("Error in reply {}", reply);
         return false;
     }