46 Commits

Author SHA1 Message Date
kishan
03a66d4b90 bug 7842: events refactoring 2011-01-14 18:55:54 +05:30
abhishek
7c2fffe67a bug 7989: fixing this regression
status 7989: resolved fixed
2011-01-13 17:07:03 -08:00
kishan
388e689755 bug 7842: Move events to service layer from http api 2011-01-14 03:58:56 +05:30
alena
133f286b06 Fixed description for ServerApiException 2010-12-29 09:55:21 -08:00
Alex Huang
544fa7ff1b remote access vpn, user ip address changes 2010-12-29 09:32:54 -08:00
alena
7b3b9076b0 bug 6168: throw a runtime exception when unable to schedule Async job instead of returning jobId=0L
status 6168: resolved fixed
2010-12-27 17:00:29 -08:00
kishan
bb0e6a0ae3 bug 7504: Events refactoring 2010-12-24 12:58:32 +05:30
alena
7e9579dab2 Fixed create/list LoadBalancerRules 2010-12-09 21:06:48 -08:00
Alex Huang
98eb58bf84 callCreate to create 2010-12-04 17:58:16 -08:00
alena
9f11f52611 listNetworks - don't return Networks created from systemOnly network offerings 2010-12-03 12:31:30 -08:00
alena
f8a687ab23 1) Implemented create/list/deleteNetworkOffering create/delete/listNetwork APIs.
2) Added networkIds parameter to deployVMCmd - accepts list of networks ids separated by coma.
3) Changed domainRouter/systemVm/userVm response to return list of Nics associated with the vm.
2010-12-02 19:30:17 -08:00
alena
680812f675 bug 7223: page and pagesize parameters must be specified together "list" api commands
status 7223: resolved fixed
2010-11-30 11:31:34 -08:00
alena
a646745516 bug 7227: applying Alex's fix - different way of desirializing List objects.
status 7227: resolved fixed
2010-11-22 14:08:43 -08:00
alena
cdea2d210d Better logging for api exceptions. 2010-11-22 11:27:15 -08:00
alena
cec8ebd5cd bug 7236: don't catch AsyncCommandQueued exception in ApiDispatcher
status 7236: resolved fixed
2010-11-19 18:40:32 -08:00
alena
a5dfaaf31b API exception handling - print api command name to the log. 2010-11-19 15:48:58 -08:00
alena
8362d0feba Reverting back commit e5c137e303babeba2afc80589f6677ae8a20ffd0 as it wasn't meant to be in 2.2 RC1. 2010-11-19 14:23:39 -08:00
alena
e5c137e303 bug 7223: pagesize and page should be specified together in "list" api commands
status 7223: resolved fixed
2010-11-19 14:03: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
alena
d43a8e983c Fixed authorizeNetworkGroupIngress api command (it stopped working after API refactor) 2010-11-15 17:44:51 -08:00
alena
5fafef9970 More api refactor - build api response is execute() method instead of getResponse method. 2010-11-09 09:58:05 -08:00
alena
1c24deda34 1) Refactored current Apis not to use reflection for method invocation. In new version following has to be done:
* Implement callCreate() and execute() methods in apis extending BaseAsyncCreateCmd (example - CreateVolumeCmd)
* Implement execute() method in apis extending BaseCmd and BaseAsyncCmd (example - deleteVolumeCmd and deleteUserCmd)

We no longer need createMethod(), method(), manager() fields in @Implementation annotation, cleanup has to be done.

2) Moved Account/User related methods to AccountManagerImpl. Methods are exposed via AccountService interface.
3) Enhanced exception handing for Api calls.
4) Created ConfigurationService interface, all Api config methods are exposed via it.
2010-11-08 11:27:36 -08:00
Kris McQueen
a9349cb815 bug 6857: if the dispatcher recieves an IllegalArgumentException, bubble that up to the response so the caller gets a useful message 2010-10-29 14:07:23 -07:00
Kris McQueen
642b8a56f4 If the create command returns null for whatever reason, throw an exception so it aborts scheduling the async job to act on the created object 2010-10-28 17:52:37 -07:00
Kris McQueen
9056653e17 Change the API Implementation annotation to use the manager's class rather than an enum. This allows methods for new managers to be added trivially rather than having to modify the dispatcher to load a new manager class. 2010-10-27 12:23:31 -07:00
Kris McQueen
95da86ef1a bug 6733: re-throw ServerApiExceptions when dispatching API commands rather than logging them and throwing a generic INTERNAL_ERROR exception
status 6733: resolved fixed
2010-10-26 16:54:42 -07:00
abhishek
c6588c0e25 adding some error return handling to api dispatcher, and cleaning up some of the code paths to return the right error messages 2010-10-26 14:27:26 -07:00
Jessica Wang
958aaaaf87 new UI - instance page - refactor submenu. 2010-10-22 20:23:05 -07:00
Alex Huang
25e4ed6997 more changes in the api 2010-10-21 16:53:42 -07:00
Alex Huang
d5d8f27cad Added more changes to the api 2010-10-21 15:11:49 -07:00
abhishek
7c11c04427 reverting the change for bug 6361; this was an accidental push instead of commit 2010-10-19 15:21:01 -07:00
abhishek
523862f571 bug 6361: further name changes from network to security group 2010-10-19 14:35:17 -07:00
Kris McQueen
8e086d7a21 resolving merge conflicts between 2.1.refactor and master 2010-10-12 16:28:16 -07:00
Kris McQueen
9c593352d0 Fixing events for async jobs so that there's a scheduled event recorded with appropriate type/description whenever the API framework schedules the async command to run. A few miscellaneous fixes as well uncovered during regression testing (router response was not parsed correctly by UI, etc.) 2010-10-05 20:26:18 -07:00
Kris McQueen
41a16a478a Fixes required for regressions found running automated tests. (1) method signatures that weren't properly refactored to new API framework (2) API request parameter types should always be specified lest they default to String which may or may not be desired (3) better exception handling with regard to Queued commands and generic exceptions (4) fix eventing to pass the proper accountId where neccessary 2010-10-01 14:11:18 -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
c26426c7c7 Throw an exception when the dispatcher can't find the implementation for an API command. 2010-09-21 18:26:57 -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
4a73639d67 Fix up setting the response object correctly after dispatching the api method call. Begin working on the serialization of the responses which don't include the command name just yet, that's coming. 2010-09-17 14:56:55 -07:00
Kris McQueen
3f6a438d92 Refactoring the AsyncJobManager to queue jobs appropriately if there is a need to synchronize execution on an object, e.g. a router. API developers can now call command.synchronizeCommand(String, Long) to force the command to be synchronized on a particular object type [the string arg] with a particular id [the long arg]. When synchronizeCommand() is invoked, an exception maybe thrown by the framework (AsyncCommandQueued exception) to force the business logic to abort. The command will then be queued and invoked at the appropriate time. The synchronizeCommand() is re-entrant and will be a no-op if the command has already been queued and is now ready for execution. 2010-09-16 19:05:06 -07:00
Kris McQueen
dbb2897626 Unexposed parameters can now be assigned to commands. This are for internal use of the command, and will be serialized/deserialized during execution/response phases, but will not be accepted as part of the API request. Also create a DB utility file for the API to use which delegates requests to the DAOs. Mostly this utility class will look up objects by ID, and it allows the removal of similar methods from ManagementServer, thereby reducing some of the clutter in ManagementServer. 2010-09-14 14:54:04 -07:00
Kris McQueen
f4caf145c3 Refactoring dispatching API commands from the scheduled async job. Instead of calling an executor, the dispatcher invokes the method on the manager directly. After the command is executed the response is serialized to the async job table so it can be queried later. Also serialize a response for async create commands that includes the id of the object being created. 2010-09-13 18:28:19 -07:00
Kris McQueen
da03aee028 Add snapshot manager to the list of managers that can be invoked through the API. This prepares the way for refactoring createSnapshot, but since the method is an async create that also needs to create a policy first and generally does not follow any other patters, I'll do this one last. 2010-08-18 19:08:23 -07:00
Kris McQueen
21ab91dc2c refactoring CreateNetworkGroup API command to new API framework 2010-08-17 19:07:00 -07:00
Kris McQueen
96f76062f9 Moving createDiskOffering to configurationManager, make AssignToLoadBalancer async 2010-08-11 19:32:09 -07:00
Manuel Amador (Rudd-O)
ac730ec496 Branch 2.1.refactor committed 2010-08-11 09:13:42 -07:00