Commit Graph

153 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
Naredula Janardhana Reddy 09905b641b bug 10617: merge code from branch bug10617. 2011-12-01 14:17:52 +05:30
Kelven Yang 16530b532f Make XML serializer support all fields within the class tree 2011-11-15 15:01:47 -08:00
Naredula Janardhana Reddy f1b99f4f07 Revert "bug 10617: merging code from branch bug10617"
This reverts commit 8bc33448b9220534ba0ddc6c642ffb1e69d5844e.

Conflicts:

	server/src/com/cloud/api/ApiResponseHelper.java
2011-11-11 20:23:26 +05:30
Naredula Janardhana Reddy 02adbd4bd3 bug 10617: merging code from branch bug10617 2011-11-10 15:23:48 +05:30
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 25c2734e03 More stuff to Projects feature - added support for adding resources (vms, templates, isos) to the project 2011-10-05 13:24:25 -07:00
Chiradeep Vittal f41b352d36 revert egress rules implementation pending review
Reverts a19212703b9734ebd44ebf55cfdd81ebdc9d7fe4
Reverts 24e4e44b8f0712a37147a3777833de3f9e24829e
2011-09-12 14:45:58 -07:00
Chiradeep Vittal d817f3c364 Revert "bug 10617: Added Egress rules to Security groups."
revert pending review

This reverts commit a19212703b9734ebd44ebf55cfdd81ebdc9d7fe4.
2011-09-12 14:45:58 -07:00
Chiradeep Vittal e216686029 Revert "bug 10617: Intermediate checking"
revert pending review

This reverts commit 561b27565512d438db3d8896df6f97b644b0b498.
2011-09-12 14:45:58 -07:00
Naredula Janardhana Reddy f9b0962ad9 bug 10617: Intermediate checking
Changes :
         - Fixing API doc +response name + errorMessage
         - Adding seperate events to Egress rules
         - Egress rules Using the same database table as that of ingress with new column type.

   Pending Tasks:
         - db upgrade
         - database table rename from security_ingress_rule to generic name, renaming some of the jave class from ingress to generic name.
         - Retesting on kvm
2011-09-09 18:14:19 +05:30
Naredula Janardhana Reddy 854f81962f bug 10617: Added Egress rules to Security groups.
Description :
   API's:
     -  Two new api's authorizeSecurityGroupEgress,revokeSecurityGroupEgressCmd are added. These two API's are similer to ingress rule API's.
           - authorizeSecurityGroupEgress :Authorizes a particular egress rule for this security group . Usageof API is very similer to that of authorizeSecurityGroupIngress except that instead of source cidr  there will be destination cidr. By default like ingress, all the outgoing flows are blocked.
           - revokeSecurityGroupEgress : It is similer to revokeSecurityGroupIngress api, It removes the egress rule.
     -  listSecurityGroup API's response changed. It include's egress list apart from the existing ingress rules in the output of the API.

   Hypervisors :
      - It is implemented in Xen and KVM.

   Pending Tasks :  Blocking using destination security groups.

   Previous commits: c9fda641673df7701f44963ef27e1d488f121219 , 24e4e44b8f0712a37147a3777833de3f9e24829e
2011-08-30 16:28:35 +05:30
Naredula Janardhana Reddy 9feb05ac13 bug 10617: This is Intermediate commit for Egress rules implementation in security groups.
previous commit: c9fda641673df7701f44963ef27e1d488f121219 ( this under bug 1067, typing error)
        changes: 1) partially implemented  listing of egress rules along with ingress rules.
                 2) partially implemneted egress rules for KVM
2011-08-25 12:18:33 +05:30
Naredula Janardhana Reddy 4369b0ba96 bug 1067:
- covered basic impelementation for xen, need to test corner cases.
      - Not implemneted: kvm, vmware , listing of egress rules.
2011-08-19 11:10:16 +05:30
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
alena 41e5e38fef bug 9336: securityGroups can be used by other securityGroups in the same domain only; no cross domain SG authentication
status 9336: resolved fixed

Following changes were made:

* deleteSecurityGroup/authorizeSecurityGroupIngress - removed account/domainId parameters as SG is uniquely identified by id now
* removed account_name field from securityGroup DB table; removed allowed_security_group/allowed_sec_grp_acct from security_ingress_rule.
These values were used for api response generation only for performance purposes; added caching on API level to improve performance
* Added missing security checks for securityGroups/ingressRules
2011-04-22 11:35:29 -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
Alex Huang 1e44925564 api refactoring 2010-11-21 12:00:21 -08:00
abhishek 18ff23c839 added a list method to list ip forwarding rules, optionally list a rule based on its public ip address 2010-11-18 11:15:13 -08:00
abhishek c4f1b35aef returning the public ip address in the creation of firewall rule, for the UI to consume 2010-11-18 09:42:47 -08:00
alena 2184dd1af2 bug 7195: introduced search by forVirtualNetwork parameter in listVmsCmd. Added "forVirtualNetwork" param to responses for all VM's apis.
status 7195: resolved fixed
2010-11-17 14:11:16 -08:00
alena dae39942f1 bug 7192: Added networktype parameter for the zone
status 7192: resolved fixed

1) Zone has networktype parameter now, 2 values are supported: Basic and Advanced. "networktype" field is created in data_center table. The parameter is being set at creation time; we don't allow to modify it with updateZone command.
2) Only vlan of Untagged Direct type can be created in Basic network zone; any other vlan except for Untagged Direct can be created in Advanced zone
3) Allow NULL guest vlan range for the zone. Only vlan of Direct type can be created in zone with NULL guest vlan.
4) "Default" zone is Basic by default.
5) Changed "vnet" parameter to "vlan" in updateZone command to be consistent with createZone
2010-11-16 16:54:44 -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
abhishek d5ab597fcf bug 6474,6475: porting over the expunge fixes for port forwarding rules to 2.2
status 6474,6475: resolved fixed
2010-11-15 17:33:05 -08:00
abhishek c115a2e401 bug 7189: returning vmdisplayname if available for all port fwding crud cmds
status 7189: resolved fixed
2010-11-15 14:55:03 -08:00
abhishek d520f0af5b adding a column in user_ip_address table called one_to_one_nat; which is a boolean to tell us if the ip is a nat ip. This is false by default, and is set to true when we nat the ip. Also, this value is returned in the list public ip addrsses api call.
finally, the value is set to false when we delete the ip forwarding rule.
2010-11-15 12:39:24 -08:00
abhishek c91c977fba bug 6290: we will be returning the service offering details for a root disk in the list volumes cmd, as opposed to the disk offering which was misleading
status 6290: resolved fixed
2010-11-12 11:24:34 -08:00