Ori Liel has uploaded a new change for review.

Change subject: restapi: RSDL - add 'deprecated' option
......................................................................

restapi: RSDL - add 'deprecated' option

Change-Id: I5537c9065c13d9a68c88ab40ebf523bfe71e2a7b
Signed-off-by: Ori Liel <[email protected]>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/ParamData.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/RsdlBuilder.java
3 files changed, 41 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/24/17624/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
index be4223b..e447bf9 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
@@ -2944,6 +2944,7 @@
         <xs:sequence>
              <xs:element name="value" type="xs:string" minOccurs="1" 
maxOccurs="1"/>
              <xs:element ref="parameters_set" minOccurs="0" maxOccurs="1"/>
+             <xs:element name="deprecated" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
         </xs:sequence>
         <xs:attribute name="required" type="xs:boolean">
           <xs:annotation>
@@ -2953,7 +2954,7 @@
           </xs:annotation>
         </xs:attribute>
         <xs:attribute name="type" type="xs:string"/>
-        <xs:attribute name="context" type="xs:string"/>
+        <xs:attribute name="context" type="xs:string"/>        
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -2965,6 +2966,7 @@
       <xs:extension base="BaseResource">
         <xs:sequence>
           <xs:element name="value" type="xs:string" minOccurs="1" 
maxOccurs="1"/>
+          <xs:element name="deprecated" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
         </xs:sequence>
        <xs:attribute name="required" type="xs:boolean">
         <xs:annotation>
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/ParamData.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/ParamData.java
index 270f958..2b737c9 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/ParamData.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/ParamData.java
@@ -6,6 +6,15 @@
     private String value;
     private String type;
     private Boolean required;
+    private Boolean deprecated;
+
+    public Boolean getDeprecated() {
+        return deprecated;
+    }
+
+    public void setDeprecated(Boolean deprecated) {
+        this.deprecated = deprecated;
+    }
     public Boolean getRequired() {
         return required;
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/RsdlBuilder.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/RsdlBuilder.java
index 3760db9..d189736 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/RsdlBuilder.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/rsdl/RsdlBuilder.java
@@ -67,6 +67,7 @@
 
     private static final String COLLECTION_PARAMETER_RSDL = "collection";
     private static final String COLLECTION_PARAMETER_YAML = "--COLLECTION";
+    private static final String DEPRECATED_PARAMETER_YAML = "--DEPRECATED";
     private RSDL rsdl;
     private String entryPointPath;
     private BackendApiResource apiResource;
@@ -413,22 +414,36 @@
     private Parameter createBodyParam(Entry<Object, Object> 
mandatoryKeyValuePair, boolean required) {
         Parameter param = new Parameter();
         param.setRequired(required);
-        String paramName = mandatoryKeyValuePair.getKey().toString();
-        if (paramName.endsWith(COLLECTION_PARAMETER_YAML)) {
-            param.setName(paramName.substring(0, 
paramName.length()-(COLLECTION_PARAMETER_YAML.length())));
-            param.setType(COLLECTION_PARAMETER_RSDL);
-            @SuppressWarnings("unchecked")
-            Map<Object, Object> listParams = (Map<Object, 
Object>)mandatoryKeyValuePair.getValue();
-            param.setParametersSet(new ParametersSet());
-            for (Entry<Object, Object> listParamData : listParams.entrySet()) {
-                Parameter listParam = createBodyParam(listParamData, required);
-                param.getParametersSet().getParameters().add(listParam);
-            }
+        String paramName = getParamName(mandatoryKeyValuePair);
+        param.setName(paramName);
+        if 
(mandatoryKeyValuePair.getKey().toString().contains(COLLECTION_PARAMETER_YAML)) 
{
+            handleCollection(mandatoryKeyValuePair, required, param);
         } else {
-            param.setName(paramName);
             param.setType(mandatoryKeyValuePair.getValue().toString());
         }
+        if 
(mandatoryKeyValuePair.getKey().toString().contains(DEPRECATED_PARAMETER_YAML)) 
{
+            param.setDeprecated(true);
+        }
         return param;
+    }
+
+    private void handleCollection(Entry<Object, Object> mandatoryKeyValuePair, 
boolean required, Parameter param) {
+        param.setType(COLLECTION_PARAMETER_RSDL);
+        @SuppressWarnings("unchecked")
+        Map<Object, Object> listParams = (Map<Object, 
Object>)mandatoryKeyValuePair.getValue();
+        param.setParametersSet(new ParametersSet());
+        for (Entry<Object, Object> listParamData : listParams.entrySet()) {
+            Parameter listParam = createBodyParam(listParamData, required);
+            param.getParametersSet().getParameters().add(listParam);
+        }
+    }
+
+    private String getParamName(Entry<Object, Object> mandatoryKeyValuePair) {
+        String paramName = mandatoryKeyValuePair.getKey().toString();
+        if (paramName.contains("--")) {
+            paramName = paramName.substring(0, paramName.indexOf("--"));
+        }
+        return paramName;
     }
 
     private void addHeaderParams(DetailedLink link, Action action) {
@@ -442,6 +457,7 @@
                     ParamData paramData = (ParamData) value;
                     header.setValue(paramData.getValue());
                     header.setRequired(paramData.getRequired() == null ? 
Boolean.FALSE : paramData.getRequired());
+                    header.setDeprecated(paramData.getDeprecated());
                 }
 
                 link.getRequest().getHeaders().getHeaders().add(header);
@@ -463,6 +479,7 @@
                     param.setContext(urlParamData.getContext());
                     param.setValue(urlParamData.getValue());
                     param.setRequired(urlParamData.getRequired()==null ? 
Boolean.FALSE : urlParamData.getRequired());
+                    param.setDeprecated(urlParamData.getDeprecated());
                 }
                 ps.getParameters().add(param);
             }


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

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

Reply via email to