Generate WADL for RPCs 21/4121/1
authorMartin Sunal <msunal@cisco.com>
Thu, 9 Jan 2014 16:52:52 +0000 (17:52 +0100)
committerMartin Sunal <msunal@cisco.com>
Thu, 9 Jan 2014 16:52:52 +0000 (17:52 +0100)
Signed-off-by: Martin Sunal <msunal@cisco.com>
code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/wadl/generator/WadlRestconfGenerator.xtend
code-generator/maven-sal-api-gen-plugin/src/test/java/org/opendaylight/yangtools/yang/wadl/generator/maven/WadlGenTest.java
code-generator/maven-sal-api-gen-plugin/src/test/resources/wadl-gen/controller-network-rpcs.yang [new file with mode: 0644]

index 18cd6d856231cec9fc2e6dfc84bff2d813d3792f..1897ab499b85239b56333faa267bcffdaa36696f 100644 (file)
@@ -38,7 +38,7 @@ class WadlRestconfGenerator {
                this.context = context
                for (module : modules) {
                        val dataContainers = module.childNodes.filter[it|it instanceof ContainerSchemaNode || it instanceof ListSchemaNode]
-                       if (!dataContainers.empty) {
+                       if (!dataContainers.empty || !module.rpcs.nullOrEmpty) {
                                configData = new ArrayList
                                operationalData = new ArrayList
                                
index 11c5ad7060d7590f68d8db923d53ee2515ad4631..fbcdf2c884ba56f93231ff584f2d840574bebd63 100644 (file)
@@ -1,11 +1,12 @@
 package org.opendaylight.yangtools.yang.wadl.generator.maven;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 
@@ -45,7 +46,8 @@ public class WadlGenTest {
         final Set<Module> modulesToBuild = parser.parseYangModels(sourceFiles);
         final SchemaContext context = parser.resolveSchemaContext(modulesToBuild);
         final CodeGenerator generator = new WadlGenerator();
-        generator.generateSources(context, GENERATOR_OUTPUT_DIR, modulesToBuild);
+        Collection<File> generatedWadlFiles = generator.generateSources(context, GENERATOR_OUTPUT_DIR, modulesToBuild);
+        assertEquals(3, generatedWadlFiles.size());
     }
 
     private static List<File> getSourceFiles(String path) throws FileNotFoundException {
diff --git a/code-generator/maven-sal-api-gen-plugin/src/test/resources/wadl-gen/controller-network-rpcs.yang b/code-generator/maven-sal-api-gen-plugin/src/test/resources/wadl-gen/controller-network-rpcs.yang
new file mode 100644 (file)
index 0000000..67f63ed
--- /dev/null
@@ -0,0 +1,32 @@
+module controller-network-rpcs {
+       yang-version 1;
+       namespace "urn:opendaylight:controller:network:rpcs";
+       prefix "topos";
+       
+       import ietf-inet-types { prefix "inet"; }
+       
+       revision 2013-05-20 {
+          description "Initial demo";
+       }
+       
+       rpc activate-software-image {
+         input {
+             leaf image-name {
+                 type string;
+             }
+         }
+         output {
+             leaf status {
+                 type string;
+             }
+         }
+     }
+     
+     rpc rock-the-house {
+         input {
+             leaf zip-code {
+                 type string;
+             }
+         }
+     }
+}