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
