Bug 3708 - APIdoc explorer URLs contain extra 'node' in REST calls 31/25531/2
authorJan Hajnar <jhajnar@cisco.com>
Thu, 25 Jun 2015 12:06:33 +0000 (14:06 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 2 Sep 2015 00:33:54 +0000 (00:33 +0000)
* fixed mount point path builder that added each list qname twice

Change-Id: I96d541ea8b40ab5003f82a9e5981e11e1f0fd0d2
Signed-off-by: Jan Hajnar <jhajnar@cisco.com>
(cherry picked from commit 523e75af81fa6537117ceae53c7cdb2b1881aa10)

opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/mountpoints/MountPointSwagger.java
opendaylight/md-sal/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/MountPointSwaggerTest.java

index 5ed227fd911196f628107682121f168e01c16b06..e20e8a79e100a12752009bcff2f03fa4c5c0680b 100644 (file)
@@ -90,25 +90,19 @@ public class MountPointSwagger extends BaseYangSwaggerGenerator implements Mount
             builder.append(moduleName);
             builder.append(':');
         }
-        boolean first = true;
         for (PathArgument arg : key.getPathArguments()) {
-
             String name = arg.getNodeType().getLocalName();
-            if (first) {
-                first = false;
-            } else {
-                builder.append('/');
-            }
-            builder.append(name);
             if (arg instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates) {
                 NodeIdentifierWithPredicates nodeId = (NodeIdentifierWithPredicates) arg;
                 for (Entry<QName, Object> entry : nodeId.getKeyValues().entrySet()) {
-                    builder.append('/').append(entry.getValue());
+                    builder.append(entry.getValue()).append('/');
                 }
+            } else {
+                builder.append(name);
+                builder.append('/');
             }
         }
-
-        return builder.append('/').toString();
+        return builder.toString();
     }
 
     private String getYangMountUrl(final YangInstanceIdentifier key) {
index f21766d9b029fde9e21fc344b01ffc229ae1d164..c32a8e3ae7ca5c31ee110971ca60202282bbf65e 100644 (file)
@@ -42,6 +42,7 @@ public class MountPointSwaggerTest {
     private static final String HTTP_URL = "http://localhost/path";
     private static final YangInstanceIdentifier instanceId = YangInstanceIdentifier.builder()
             .node(QName.create("nodes"))
+            .node(QName.create("node"))
             .nodeWithKey(QName.create("node"), QName.create("id"), "123").build();
     private static final String INSTANCE_URL = "nodes/node/123/";
     private MountPointSwagger swagger;