Commit Graph

41 Commits

Author SHA1 Message Date
Vijayendra Bhamidipati ab6c8f7986 Bug CS-14853: CloudStack list APIs are listing incorrect IDs for all the entities when API response set to "xml". works fine for "json"
Bug 14071: queryAsyncJobResult in xml format gives incorrect UUIDs back

Description:

	CS-14853 is the same bug as 14071, but seen in Bonita branch
	owing to the fix not being merged from master. So putting in
	the same fix to 3.0.x branch. Description of fix follows.

        Incorrectly removed part of the XML serializer that serialized
        the IdentityProxy object in normal responses, when putting in
        support for serialization of lists of IdentityProxy objects in
        exception responses as part of the code changes put in for bug
        13217, resulting in this bug. Putting it back in place.
2012-05-11 14:44:24 -07:00
Vijayendra Bhamidipati 1d749bb9d3 Bug 13127: API error text refer to database ids instead of uuids
Description:

	Modified the IdentityTypeAdapter's custom serializer to
	identify whether this is an exception response that is being
	serialized, by checking if the idFieldName is set. If so,
	serialize both uuid and the uuidProperty (for eg, zoneId and
	"zoneId" (string)) and pass back the json representation of that.

	Modified XML serializer also to build a list of uuids+fieldnames.

	Introduced a new field "cserrorcode" in ExceptionResponse. This
	refers to an error code that can be according to the specific
	Exception being thrown. This will be serialized as usual. There
	shouldn't be any need to do a db lookup for conversion for these
	error codes.
2012-05-01 13:28:22 +01:00
Vijayendra Bhamidipati bea85d47a7 Bug 13127: API error text refer to database ids instead of uuids
Description:

	Modify Exception handling to enable addition of multiple
	uuids in a single exception thrown by API functions. Both
	XML and JSON outputs will store all uuids and Fieldnames.
	This will make it easier to provide more information when
	an exception occurs - for example, a zone id, a cluster id,
	host id, and then a specific property id.
2012-05-01 13:28:21 +01:00
Vijayendra Bhamidipati 094f01be41 Bug 13127: API error text refer to database ids instead of uuids
Description:

	Added a field name for the db id in the IdentityProxy class, and
	modified setProxyObject() to take an additional id name parameter.
	This will let us know the name of the uuid that we are returning.
	E.g.- domainId, zoneId, etc. The client can view this field in
	the json/xml output. Modified the JSON/XML serialization routines
	to append this new parameter to the serialized output for Exception
	Responses.
2012-05-01 13:28:20 +01:00
Vijayendra Bhamidipati 7ea32a4471 Bug 13127: API error text refer to database ids instead of uuids
Description:

	1) Put in an IdentityProxy object in the ExceptionResponse class.
	   This allows us to copy over the IdentityProxy object contained
	   in the exception caught by handlerequest() when thrown by the
	   command's execute() method, into the Response object that is
	   prepared to return an exception response to the calling API
	   invocation.

	2) Modified the GSON serialization method to conver the entire
	   exception object into JSON format and not just the error text.

	3) Modify the updateDomain API to populate the exception it throws
	   upon detecting a duplicate domain to include the tablename and
	   domain db id in the exception's IdentityProxy object.

	NOTE:
	1) We can modify the base exception classes and the ExceptionResponse
	   class to contain a list of IdentityProxy objects rather than a
	   single one.
	2) We will need to modify all commands such that wherever applicable
	   (wherever a db id is involved), they populate the IdentityProxy
	   object(s) before throwing an exception.
2012-05-01 13:28:19 +01:00
U-CITRITE\vijayendra1 89db087981 Bug 13127: API error text refer to database ids instead of uuids
Description:

1)	Adding two new classes, CloudException and RunTimeCloudException.
	The former extends Exception and the latter RunTimeException.
	These will be used by classes that formerly directly extended
	Exception and RuntimeException. These two classes have an attribute
	of type IdentityProxy to enable exceptions fill in db ids in separate
	attribute fields rather than in a string. Doing so will allow the
	serialization module (GSON for JSON and other for XML) to kick in
	and convert this db id to a uuid in ApiServer.java just before the
	JSON/XML responses are sent out.

2)	Moving IdentityProxy.java from api/ to utils/ since
	both CloudException and RuntimeCloudException refer to it.

3)	Changing references to IdentityProxy class from api/ to utils/.

4)	While rebasing to master, a new file was added, merging
	api/src/com/cloud/api/response/IsoVmResponse.java to this diff.
2012-05-01 13:21:42 +01:00
frank 72d284de7d Switch to Apache license 2012-04-03 04:54:14 -07:00
Kelven Yang 90177c18e3 bug 13860: add sanity check to ApiResponseSerializer when serializing XML response. Reviewed-By: Anthony 2012-02-27 16:06:13 -08:00
Alena Prokharchyk f5681d1f7b bug 13396: escape double quotes in error json response
status 13396: resolved fixed
2012-01-31 16:26:53 -08:00
Alena Prokharchyk b1c60b9d60 bug 12964: createPhysicalNetwork/addTrafficType is no longer a part of createZone API 2012-01-10 13:55:09 -08:00
Kelven Yang 85ad8ffca3 rename com.cloud.identity package to com.cloud.uuididentity as a previous deleted com.cloud.Identity name make git confused with com.cloud.identity under linux systems 2012-01-05 14:52:16 -08:00
Kelven Yang 16530b532f Make XML serializer support all fields within the class tree 2011-11-15 15:01:47 -08:00
Kelven Yang 2b6f3d458e UUID support for XML responses 2011-11-04 17:38:22 -07:00
Kelven Yang 7e9b210d5c bug 6745: Fix problems in Async create commands 2011-11-03 07:34:02 -07:00
alena daad9e4b81 Keep "encode.api.response" parameter in ApiServer class; initialize it as a part of init() method 2011-06-21 11:05:57 -07:00
alena ebd0382ea8 ApiResponseSerializer - no need to use reflection to get the field value 2011-06-15 17:41:09 -07:00
alena a0b1c3bd7a bug 10232: Introduced new gson builder - used for api reponse only
It fixed the problem when the queryAsyncJobResult response was encoded twice.

UI still has some problems - no decoding is done on "Instances" tab
2011-06-13 13:19:20 -07:00
alena ef3ea765bf bug 9697: encode api response values
status 9697: resolved fixed

Do encoding for ASCII chars only (done to eliminate problems with multiple language support)
To disable encoding, set "encode.api.response" to false
2011-06-10 18:10:44 -07:00
Frank 92155522f2 Add license header to files 2011-04-14 11:23:14 -07:00
alena aa094868fc bug 8353: set dateFormat to "yyyy-MM-dd'T'HH:mm:ssZ" when initiate gson builder
status 8353: resolved fixed
2011-04-05 16:51:05 -07:00
alena 0fdcba3f4f bug 8855: introduced search by zoneId to listLoadBalancerRules api. Also added "zoneId" parameter to the response
status 8855: resolved fixed
2011-04-05 14:38:47 -07:00
alena af4459f24f Fixed list* api commands. 2011-04-04 11:36:49 -07:00
alena 2aeacd5a4c bug 3179: added "count" parameter to the response to all List* api commands 2011-04-01 19:29:08 -07:00
alena 9e622c6a6c bug 8726: escape ", ', &, <, > special chars in xml response
status 8726: resolved fixed
2011-02-24 17:11:28 -08:00
will 68d5c0919a bug 5482: Fixed malformed JSON when an error is returned by the API call. Also fixed the UI to make use of the new JSON object. 2011-01-05 18:06:59 -08:00
alena 2d316eabb7 bug 6056: Changed format for API error response.
status 6056: resolved fixed

Example of error response:

Json:

 { "updatedomainresponse" : {"errorcode" : "431, "errortext" : "Unable to find domain 4"}  }

Xml:

<updatedomainresponse cloud-stack-version="1.9.1.2010-12-28T18:14:57Z">
<errorcode>431</errorcode>
<errortext>Unable to find domain 4</errortext>
</updatedomainresponse>
2010-12-28 10:36:04 -08:00
Kelven Yang 54f177cacc 1) Make generic dao be able to persist UTF-8 string for internationalization support
2) Undo gson Unicode escape in API response object to avoid double escaping which can break Javascript from getting correct text content
3) Correct API layer in dealing with character encoding
4) Remove double escape in cloud.core.js
2010-11-30 09:40:54 -08:00
alena 44737d24c5 bug 7196: fixed response object generation for authorizeNetworkGroupIngress command (response type is Network group response - the way it was in 2.1.x - instead of IngressRule response)
status 7196: resolved fixed

Also fixed revokeNetworkGroup command - didn't work via 8096 port
2010-11-24 09:50:04 -08:00
alena c5d78a726e Modified exception handing in API. Following exceptions are supported now (location - BaseCmd.java):
* MALFORMED_PARAMETER_ERROR - when type of the request parameter is invalid (String instead of Long for id for example)
* PARAM_ERROR - when invalid parameter value is specified in api request. For example, id of non existing vm for StartVmCmd
* ACCOUNT_RESOURCE_LIMIT_ERROR - when user tries to exceed his resource limits by executing the api command.
* INSUFFICIENT_CAPACITY_ERROR - when resource fails to create/start due to insufficient capacity.
* RESOURCE_UNAVAILABLE_ERROR - when user tries to create a vm when storage is not available.
* RESOURCE_IN_USE_ERROR - when user tries to delete/modify resource while it's in use. For example, when we try to delete a network group when it contains ingress rules.
* NETWORK_RULE_CONFLICT_ERROR - when LB/PF rule to add conflicts with existing rule
* ACCOUNT_ERROR - when user is not authorized to execute operation on the resource.
* INTERNAL_ERROR
2010-11-16 11:56:34 -08:00
alena 47e365f5ea bug 7089: return embedded object name in xml response
status 7089: resolved fixed
2010-11-08 13:59:14 -08:00
will 89c717703f Fixed API commands that extend BaseCreateAsyncCmd to return the correct API response of id, and jobid.
Added the default public constructor back in the SuccessResponse to make sure deserialization works from the asyncjob table.
Fixed a issues with the VPN tab.  It should now make use of the corrected API format.
2010-11-06 16:30:08 -07:00
will ca0ce93fde Fixed all sync commands that can possibly return a <success> tag. If success, it will return true, otherwise an HTTP error will be returned. 2010-11-05 21:25:19 -07:00
will a3dbc34857 bug 7059: refactored the API to now add the single embedded object tag after a response
- Changed networkgroups to security groups
- a whole bunch of other API bugs.  Unfortunately, I may have broken more.
2010-11-05 20:10:57 -07:00
will 05ab3bf673 bug 7063: AsyncJobResult should now return the correct success and error tags upon the completion of a async job. It should now follow either the format ... jobresult.success or jobresult.errorcode and jobresult.errortext
- Fixed a lot of other Async related packaging issues.  It's not all done but will continue to refactor this later.
2010-11-05 17:30:03 -07:00
alena b9ad299ac6 bug 6998: return embedded job result object in queryAsyncJobResult command
status 6998: resolved fixed
2010-11-05 12:03:01 -07:00
Kris McQueen 88dac13bb0 use the API response date format when serializing response objects 2010-10-29 13:23:29 -07:00
Kris McQueen 7531525252 Add commented code out for the old style (2.1.x) JSON async job responses. The XML responses are still a TODO. In order to get this to fully revert back to 2.1.x style responses, some commands will need to be modified to set the responseName to be something like getResultObjectName(), and there's an example of this in StopVMCmd. 2010-10-28 14:32:13 -07:00
Kris McQueen 95a7f20a0a Adding in XML response serializing. Now the new API framework supports both XML and JSON responses the way the old framework did. 2010-09-28 17:36:27 -07:00
Kris McQueen 62257d4021 Fix serializing async job responses by writing a custom adapter for ResponseObjects. Improve exception handling when calling async commands (the job still needs to complete, but with FAILED status). 2010-09-24 13:52:35 -07:00
Kris McQueen 12ef5106b6 Fixing serialization of JSON responses to handle both regular objects and list-style responses. Add missing managers to API dispatcher. Fix a typo in listAlerts command implementation method. Add signatures for various add host/storage APIs. 2010-09-20 15:20:32 -07:00
Kris McQueen a5f50d236f Rearranging how response objects work since we need the response name when doing serialization. Now there's a base class that implements the getResponseName method, all responses extend this base class 2010-09-17 15:18:37 -07:00