Correcting problem in YMS with Namespace for operation
Change-Id: I1284e8a4e9b20c9162d22c240113ac509af40e07
diff --git a/apps/yms/app/src/main/java/org/onosproject/yms/app/ych/defaultcodecs/xml/DefaultXmlCodec.java b/apps/yms/app/src/main/java/org/onosproject/yms/app/ych/defaultcodecs/xml/DefaultXmlCodec.java
index 915863e..dd78ab5 100644
--- a/apps/yms/app/src/main/java/org/onosproject/yms/app/ych/defaultcodecs/xml/DefaultXmlCodec.java
+++ b/apps/yms/app/src/main/java/org/onosproject/yms/app/ych/defaultcodecs/xml/DefaultXmlCodec.java
@@ -84,6 +84,10 @@
rootElement.add(Namespace.get(rootNode.getNamespace()));
}
+ if (rootElement.getName().equals("config")) {
+ rootElement.add(new Namespace("nc", "urn:ietf:params:xml:ns:netconf:base:1.0"));
+ }
+
// Adding the attribute if exist
Map<String, String> tagAttrMap = extBuilder.getRootTagAttributeMap();
if (tagAttrMap != null && !tagAttrMap.isEmpty()) {
diff --git a/apps/yms/app/src/main/java/org/onosproject/yms/app/ych/defaultcodecs/xml/XmlCodecHandler.java b/apps/yms/app/src/main/java/org/onosproject/yms/app/ych/defaultcodecs/xml/XmlCodecHandler.java
index b7685a8..097e71f 100644
--- a/apps/yms/app/src/main/java/org/onosproject/yms/app/ych/defaultcodecs/xml/XmlCodecHandler.java
+++ b/apps/yms/app/src/main/java/org/onosproject/yms/app/ych/defaultcodecs/xml/XmlCodecHandler.java
@@ -81,7 +81,7 @@
YdtContextOperationType opType = ((YdtExtendedContext) ydtContext)
.getYdtContextOperationType();
if (opType != null && opType != NONE) {
- newElement.addAttribute(OPERATION,
+ newElement.addAttribute("nc:" + OPERATION,
opType.toString().toLowerCase());
}
diff --git a/apps/yms/ut/src/test/java/org/onosproject/yms/app/ych/DefaultYangCodecHandlerTest.java b/apps/yms/ut/src/test/java/org/onosproject/yms/app/ych/DefaultYangCodecHandlerTest.java
index 7cb5a9c..500f180 100644
--- a/apps/yms/ut/src/test/java/org/onosproject/yms/app/ych/DefaultYangCodecHandlerTest.java
+++ b/apps/yms/ut/src/test/java/org/onosproject/yms/app/ych/DefaultYangCodecHandlerTest.java
@@ -45,6 +45,10 @@
import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.bgpparameters.optionalcapabilities.cparameters.DefaultAs4BytesCapability;
import org.onosproject.yang.gen.v1.ych.empty.container.rev20160524.EmptyContainerOpParam;
import org.onosproject.yang.gen.v1.ych.empty.container.rev20160524.emptycontainer.EmptyContainer;
+import org.onosproject.yang.gen.v1.ych.purchasing.supervisor.rev20160524.YchPurchasingsupervisorOpParam;
+import org.onosproject.yang.gen.v1.ych.purchasing.supervisor.rev20160524.ychpurchasingsupervisor.DefaultYchPurchasingSupervisor;
+import org.onosproject.yang.gen.v1.ych.purchasing.supervisor.rev20160524.ychpurchasingsupervisor.YchPurchasingSupervisor;
+import org.onosproject.yang.gen.v1.ych.purchasing.supervisor.rev20160524.YchPurchasingsupervisor.OnosYangOpType;
import org.onosproject.yang.gen.v1.ydt.customs.supervisor.rev20160524.CustomssupervisorOpParam;
import org.onosproject.yang.gen.v1.ydt.material.supervisor.rev20160524.MaterialsupervisorOpParam;
import org.onosproject.yang.gen.v1.ydt.material.supervisor.rev20160524.materialsupervisor.DefaultSupervisor;
@@ -102,7 +106,8 @@
* @return the xml string for merchandisersupervisor module
*/
private static String merchandXml() {
- return "<config xmlns=\"ydt.root\">" +
+ return "<config xmlns=\"ydt.root\" " +
+ "xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\">" +
"<supervisor xmlns=\"ydt.Merchandiser-supervisor\">" +
"Merchandisersupervisor</supervisor>" +
"</config>";
@@ -114,7 +119,8 @@
* @return the xml string for tradingsupervisor module
*/
private static String tradingXml() {
- return "<config xmlns=\"ydt.root\">" +
+ return "<config xmlns=\"ydt.root\" " +
+ "xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\">" +
"<supervisor xmlns=\"ydt.trading-supervisor\">" +
"Tradingsupervisor</supervisor>" +
"</config>";
@@ -226,18 +232,18 @@
/**
* Returns the xml string for ych-purchasingsupervisor module.
*
- * @return the xml string for ych-purchasingsupervisor module
+ * @return the XML string for ych-purchasingsupervisor module
*/
private static String purchaseXml() {
- return "<filter xmlns=\"ydt.filter-type\" type=\"subtree\">" +
- "<ych-purchasingsupervisor xmlns=\"ych.purchasing-supervisor\">" +
- "<ych-purchasing-supervisor operation=\"create\">" +
+ return "<config xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" " +
+ "xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\">" +
+ "<ych-purchasing-supervisor xmlns=\"ych.purchasing-supervisor\" " +
+ "nc:operation=\"create\">" +
"<ych-purchasing-specialist>purchasingSpecialist" +
"</ych-purchasing-specialist>" +
"<ych-purchasing-support>support</ych-purchasing-support>" +
"</ych-purchasing-supervisor>" +
- "</ych-purchasingsupervisor>" +
- "</filter>";
+ "</config>";
}
/**
@@ -791,42 +797,38 @@
assertEquals(AM_XML + "combined: list info", listTestXml(), xml);
}
- //TODO negative scenario will be handled later
-// /**
-// * Unit test case in which verifying xml string for module object with
-// * container.
-// */
-// @Test
-// public void proceessCodecHandlerForContainer() {
-// testYangSchemaNodeProvider.processSchemaRegistry(null);
-// DefaultYangSchemaRegistry schemaRegistry =
-// testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
-// List<Object> yangModuleList = new ArrayList<>();
-//
-// // Creating the object
-// YchPurchasingSupervisor supervisor =
-// new DefaultYchPurchasingSupervisor
-// .YchPurchasingSupervisorBuilder()
-// .ychPurchasingSpecialist("purchasingSpecialist")
-// .ychPurchasingSupport("support")
-// .yangYchPurchasingSupervisorOpType(CREATE).build();
-// Object object = YchPurchasingsupervisorOpParam.builder()
-// .ychPurchasingSupervisor(supervisor).build();
-// yangModuleList.add(object);
-//
-// // Get the xml string and compare
-// Map<String, String> tagAttr = new HashMap<String, String>();
-// tagAttr.put("type", "subtree");
-//
-// YangCodecRegistry.initializeDefaultCodec();
-// DefaultYangCodecHandler codecHandler =
-// new DefaultYangCodecHandler(schemaRegistry);
-// String xml = codecHandler.encodeOperation("filter", "ydt.filter-type",
-// tagAttr, yangModuleList,
-// XML, null);
-// assertEquals(AM_XML + "puchas-super: container info", purchaseXml(),
-// xml);
-// }
+// TODO negative scenario will be handled later
+ /**
+ * Unit test case in which verifying xml string for module object with
+ * container.
+ */
+ @Test
+ public void proceessCodecHandlerForContainer() {
+ testYangSchemaNodeProvider.processSchemaRegistry(null);
+ DefaultYangSchemaRegistry schemaRegistry =
+ testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
+ List<Object> yangModuleList = new ArrayList<>();
+
+ // Creating the object
+ YchPurchasingSupervisor supervisor =
+ new DefaultYchPurchasingSupervisor
+ .YchPurchasingSupervisorBuilder()
+ .ychPurchasingSpecialist("purchasingSpecialist")
+ .ychPurchasingSupport("support")
+ .yangYchPurchasingSupervisorOpType(OnosYangOpType.CREATE).build();
+ Object object = YchPurchasingsupervisorOpParam.builder()
+ .ychPurchasingSupervisor(supervisor).build();
+ yangModuleList.add(object);
+
+ YangCodecRegistry.initializeDefaultCodec();
+ DefaultYangCodecHandler codecHandler =
+ new DefaultYangCodecHandler(schemaRegistry);
+ String xml = codecHandler.encodeOperation("config", "urn:ietf:params:xml:ns:netconf:base:1.0",
+ null, yangModuleList,
+ XML, null);
+ assertEquals(AM_XML + "puchas-super: container info", purchaseXml(),
+ xml);
+ }
// /**
// * Unit test case in which verifying xml string for module object with
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 29a5dfc..59cc125 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
@@ -71,7 +71,7 @@
private static final String EDIT_CONFIG_CLOSE = "</edit-config>";
private static final String TARGET_OPEN = "<target>";
private static final String TARGET_CLOSE = "</target>";
- private static final String CONFIG_OPEN = "<config>";
+ private static final String CONFIG_OPEN = "<config xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\">";
private static final String CONFIG_CLOSE = "</config>";
private static final String XML_HEADER =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>";