Kelven Yang
ea88089fd2
Bug 7409: Implement forcely-cancelling mechenism for jobs that have been staying in queue for too long
...
1) introduced a global configuration variable job.cancel.threshold.minutes
2) Default value for the job.cancel.threshold.minutes is 60 minutes, if a job has been staying in processing state for over 60 minutes, system will forcely remove it from the queue to allow others to run
2011-01-05 15:44:10 -08:00
Kelven Yang
7c5895d7d5
Bug 7598: add management server restart and peer-cleanup within cluster handling to async job processing
2011-01-03 16:47:46 -08:00
Kelven Yang
3a6a7e30ce
Make management server peer in cluster to help cleanup left-over pending jobs
2010-12-30 18:53:26 -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
alena
7e9579dab2
Fixed create/list LoadBalancerRules
2010-12-09 21:06:48 -08:00
will
c67d26cec4
bug 6969: First step of now displaying pending async jobs for listXXXCommands. There is a lot more cleanup and fixing to do but all commands acting against VirtualMachines now work.
2010-11-30 19:12:09 -08:00
alena
aa8aa6027a
Modified UserContext - got rid of accountName, domainId fields as we can get this information from Account field.
2010-11-24 14:29:08 -08:00
alena
cb74030d01
bug 7298: throw an Exception when invalid job Id is specified in queryAsyncJobResult
...
status 7298: resolved fixed
2010-11-23 15:06:29 -08:00
Alex Huang
1e44925564
api refactoring
2010-11-21 12:00:21 -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
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
Kris McQueen
484f334d7a
bug 6799: if there's an exception executing the Async command, create an error response with the appropriate information so that queryAsyncJobResult returns the relevant information
...
status 6799: resolved fixed
2010-10-27 18:23:23 -07:00
Kris McQueen
2740ba6c40
final merge of master->2.1.refactor preparing for merge back into master
2010-10-12 14:46:24 -07:00
anthony
319d4f1aa0
snapshot redesign
...
1. use full snapshot and delta snapshot, there are maxsnashot/2 of delta snapshot between two full snapshot
2. only support one policy for one volume
3. remove all coleases in secondary storage.
2010-09-28 18:37:46 -07:00
Kris McQueen
848ce60097
Merging master into 2.1.refactor, resolve the merge conflicts as best I can. New commands related to extracting template/iso/volume and related to instance groups were refactored to the new API framework.
2010-09-28 15:47:14 -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
2a4ddac41a
Change getResponse() to return a ResponseObject so that the caller can choose how to serialize. This in in preparation for serializing the async commands to the database with class information and deserializing them into the ResponseObject itself when queryAsyncJobResult is called. Once the ResponseObject is deserialized, the proper string can be returned to the caller.
...
The previous behavior had the JSON response from the command embedded into the queryAsyncJobResult response as a string rather than a JSON object which prevented the client from being able to read the response. With this new behavior an actual JSON object should be returned which can then be parsed on the client side.
2010-09-23 17:34:28 -07:00
Kris McQueen
c32d6e7524
Template id is not a required parameter when listing templates. The proper serialized name for the async job id is jobid, not id. Sadly, ctxAccoutId != ctxAccountId, ugh, no wonder the UserContext wasn't getting set up correctly. Clean up some miscellaneous unnecessary casts.
2010-09-21 17:00:50 -07:00
Kris McQueen
e2e0e76063
More work on serializing responses. Now responses have to have the name set on them, and the name will eventually be serialized to the JSON/XML response the way it used to work for commands themselves [the result of cmd.getName() was written to the response string]. For list respones, we wrap the individual objects in a ListResponse object that has the name of the response, and the individual objects have the object name so that accounts will be something like <listaccountsresponse><account><...></account><account><...></account></listaccountsresponse>.
2010-09-17 17:13:04 -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
root
76e5cf3321
renamed dao methods to correctly reflect what they do
2010-09-09 18:01:50 -07:00
Manuel Amador (Rudd-O)
05c020e1f6
Source code committed
2010-08-11 09:13:29 -07:00