Moti Asayag has uploaded a new change for review.

Change subject: restapi: Validate action links are terminated properly
......................................................................

restapi: Validate action links are terminated properly

Due to code generator limitations, the action links are not allowed
to be terminated by "/". The patch provides the validation for it.

Signed-off-by: Moti Asayag <[email protected]>
Change-Id: I22e52348e3ecc95599907fb04f6ec63fdc2b07b0
---
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlManager.java
1 file changed, 18 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/84/27984/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlManager.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlManager.java
index ebb7bf3..d8d9811 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlManager.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlManager.java
@@ -3,10 +3,12 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.JAXB;
 
+import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.api.model.RSDL;
 import org.ovirt.engine.api.utils.ApiRootLinksCreator;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
@@ -27,6 +29,7 @@
     private static final String GENERAL_METADATA_REL = "*";
     private static final String GENERAL_METADATA_NAME = "The oVirt RESTful API 
generic descriptor.";
     private static final String GENERAL_METADATA_DESCRIPTION = "These options 
are valid for entire application.";
+    private static final String ILLEGAL_ACTION_LINK_SUFFIX = "/";
 
     private static final String METADATA_FILE_NAME = "/rsdl_metadata.yaml";
 
@@ -37,6 +40,7 @@
         String outputFileNameGluster = args[2];
 
         MetaData metadata = loadMetaData();
+        validateActionLinksFormat(metadata);
         generateRsdlFile(metadata, baseUri, outputFileName, 
ApiRootLinksCreator.getAllRels(baseUri));
         generateRsdlFile(metadata, baseUri, outputFileNameGluster, 
ApiRootLinksCreator.getGlusterRels(baseUri));
 
@@ -44,6 +48,20 @@
                 + outputFileNameGluster);
     }
 
+    private static void validateActionLinksFormat(MetaData metadata) {
+        List<String> illegalActionLinks = new ArrayList<>();
+        for (Action action : metadata.getActions()) {
+            String actionLink = action.getName().split("[|]")[0];
+            if (actionLink.endsWith(ILLEGAL_ACTION_LINK_SUFFIX)) {
+                illegalActionLinks.add(action.getName());
+            }
+        }
+
+        if (!illegalActionLinks.isEmpty()) {
+            throw new RuntimeException("Invalid link suffix:\n" + 
StringUtils.join(illegalActionLinks, '\n'));
+        }
+    }
+
     private static void generateRsdlFile(MetaData metadata, String baseUri, 
String outputFileName, List<String> rels)
             throws IOException, ClassNotFoundException {
         RSDL rsdl = buildRsdl(metadata, rels, baseUri);


-- 
To view, visit http://gerrit.ovirt.org/27984
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I22e52348e3ecc95599907fb04f6ec63fdc2b07b0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Moti Asayag <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to