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
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
e31f89e6a9
Set up accountId in the AsyncJob since it's needed for proper validation when querying the job status.
2010-09-21 18:26:34 -07:00
Kris McQueen
8161078803
QueryAsyncJobResult was missing an implementation and had 'id' as the parameter when it should have been 'jobid'.
2010-09-21 18:25:35 -07:00
Kris McQueen
e6d6ccb72e
Retrieve the session parameters (userId, accountId, account) properly since UserContext is not the place to get those values.
2010-09-21 18:25:05 -07:00
Kris McQueen
8101ffb636
Fix logic in accountAndUserValidation to correctly detect child domains and throw an exception only when the domain is not in the hierarchy.
2010-09-21 18:24:18 -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
5a3f4af638
AddHost and AddSecondaryStorage have different required parameters, so avoid subclassing these commands and just call a common method in the agent manager. Fix the response name for listAccounts. CreateUser returns one user, so don't always get response.user[0] since that's pointless. A secondary storage host does not have a pod id (NfsSecondaryStorageResource) so make sure not to dereference variables that will be null.
2010-09-21 16:28:31 -07:00
Kris McQueen
ebd06ae6f3
List clusters was using the name of the command rather than the name of the cluster to search for clusters, which was resulting in no clusters returned. Fixed. CreateStoragePool was returning an array of one pool every time, simplified it to just return the pool and changed the UI to expect one pool rather than an array. Fixed the backend code for creating a storage pool to (a) generate a UUID based on host name, path, and a timestamp and (b) to list only active storage pools when checking for duplicates. This allows a storage pool to be create with the same path as a pool that had previously been deleted.
2010-09-20 19:08:52 -07:00
Kris McQueen
1a54c52d5e
Change the annontations for response objects to use the GSON annotations for the property name written to the response
2010-09-20 17:47:56 -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
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
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
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
1f4b2cfb06
Async commands need to have a start event id for event tracking.
2010-09-17 12:07:16 -07:00
Kris McQueen
d7b6ccd056
Comment out code in executors during the transition to the new API framework. The code is being left around for reference during testing/debugging of the new framework and will be removed in the future.
2010-09-17 11:13:29 -07:00
Kris McQueen
19413d0bec
Comment out executor code to make the branch compile. The executors will be removed after the branch has been thoroughly tested and regressions have been resolved, but in the mean time leave the code around so that it can be used to help debug any problems during the testing phase.
2010-09-16 19:09:04 -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
83820075b3
removing some commented out code related to the old API framework that is no longer necessary.
2010-09-16 19:05:06 -07:00
alena
091b28a6b3
Modified addSecondaryStorage/addHost/updateHost/associateIpAddress/attachIso/copyIso/copyTemplate/deletePortForwardingService/startRouter/stopRouter/rebootRouter commands to new API framework.
2010-09-16 18:54:15 -07:00
alena
6fef440732
Updated DeleteHost/DeleteIso/deletePool/UpdateDiskOffering/updateIso/updateTemplate/updateDomain to new api framework
2010-09-15 20:07:01 -07:00
alena
ec47f83a4a
Merge branch '2.1.refactor' of ssh://git.cloud.com/var/lib/git/cloudstack-oss into 2.1.refactor
2010-09-15 16:45:59 -07:00
alena
b49f63c28e
Refactoring addConfig/deleteDiskOffering/deletePod/getCloudIdentifier/enableAccount/enableUser/enableAccount/updateUser/updateDiskOffering/updateConfig commands to new API framework
2010-09-15 16:41:38 -07:00
Kris McQueen
e18898ae4d
Cleaning up some TODOs related to generating API command responses. Now that the ApiDBUtils class is available, setting things like domainNames is possible, so make use of that.
2010-09-15 16:22:55 -07:00
Kris McQueen
be6a4612a4
Cleaning up some TODOs related to generating API command responses. Now that the ApiDBUtils class is available, setting things like domainNames is possible, so make use of that.
2010-09-15 15:48:52 -07:00
Kris McQueen
8607fbe923
Cleaning up some TODOs related to generating API command responses. Now that the ApiDBUtils class is available, setting things like domainNames is possible, so make use of that.
2010-09-15 14:56:20 -07:00
Kris McQueen
496bcb9e85
Adding more db operations to the API utils class and removing them from ManagementServer. These methods delegate directly to the DAO and are cluttering ManagementServer with cover methods specifically for the API. Now that these methods are being moved to the API Utils class, ManagementServer has a smaller, cleaner API than before.
2010-09-15 14:25:21 -07:00
Kris McQueen
8bdb8f3581
Adding more db operations to the API utils class and removing them from ManagementServer. These methods delegate directly to the DAO and are cluttering ManagementServer with cover methods specifically for the API. Now that these methods are being moved to the API Utils class, ManagementServer has a smaller, cleaner API than before.
2010-09-15 12:16:00 -07:00
Kris McQueen
dc6e07ad75
Refactoring deletePreallocatedLun and registerPreallocatedLun to new API framework.
2010-09-14 17:53:12 -07:00
Kris McQueen
1b8965c202
fixing package name for pre-allocated lun api commands
2010-09-14 17:04:35 -07:00
Kris McQueen
cf6829a038
Moving pre-allocated lun API commands to OSS since it's not a premium feature
2010-09-14 17:02:16 -07:00
Kris McQueen
1d912fb608
adding licensing info
2010-09-14 16:09:05 -07:00
Kris McQueen
a53cb4aab0
Refactoring deleteDomain to new API framework. Cleaning up some compilation errors that resulted from previous refactoring, namely there was a requirement to keep the old manager method around for createDiskOffering and createZone in order for the ConfigurationServer to work.
2010-09-14 15:36:12 -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
a8112f65de
When using session based authentication, we now store the parameters in the session as part of the login processing, instead of returning those parameters so that the caller has to update the session. Authentication now throws an exception on failure and the caught exception is where the session is invalidated.
2010-09-13 17:04:11 -07:00
Kris McQueen
de5e978b7b
Removing listSecurityGroups and listNetworkGroups from the SecurityGroupDao and NetworkGroupDao since they weren't being called by anyone.
2010-09-13 15:59:52 -07:00
Kris McQueen
df10af0688
cleaning up imports, fixing up some compilation problems related to API refactoring
2010-09-13 15:25:46 -07:00
Kris McQueen
3ba48f9676
fixing up code rearrangement since I forgot to add the files to my commit, oops...
2010-09-13 15:05:17 -07:00
Kris McQueen
77feb415d6
fixing up the move of EventUtils to server package
2010-09-13 15:04:04 -07:00
Kris McQueen
dfdab6d641
moving event utils from core to server to avoid circular dependencies.
2010-09-13 15:01:43 -07:00
Kris McQueen
2741eedb26
moving console proxy alert event args to server package to avoid circular dependencies
2010-09-13 14:58:58 -07:00
Kris McQueen
bb575d9d4e
moving console proxy manager/listener to server package to avoid circular dependencies
2010-09-13 14:57:51 -07:00
Kris McQueen
449d1f3acf
working through some compilation errors that have arisen due to all the API refactoring...
2010-09-13 14:46:23 -07:00
Kris McQueen
460ef94299
Refactoring listStoragePoolsAndHosts command to new API framework.
2010-09-13 14:03:07 -07:00
Kris McQueen
1e46e2e588
refactoring createVolume to new API framework
2010-09-10 23:25:22 -07:00
Kris McQueen
b73cd10fbe
Refactoring listAccounts to new API framework.
2010-09-09 18:58:37 -07:00
Kris McQueen
037f1ff327
Refactoring createSnapshot to new API framework.
2010-09-09 18:58:37 -07:00
Kris McQueen
39038721a8
Refactoring deployVirtualMachine to new API framework. Since this is a rather complicated command with many steps, for now the way the logic is broken up between ManagementServer and UserVmManager and NetworkManager is preserved. Later there is a possibility of consolidating some of the logic.
2010-09-09 18:58:37 -07:00
Kris McQueen
c44d3391bb
Removing dead code that had previously been refactored.
2010-09-09 18:58:37 -07:00