Kris McQueen
24bd6a39e6
Fix the type of the id attribute in BaseAsyncCmd (it should be Long), deleteNetworkRuleConfig is async command again (this was a regression), misc event and account verification fixes
2010-10-04 10:36:44 -07:00
alena
136060e5cf
1) Finished XmlApiDoc writer. The program gets api classes from commands.properties.in file, and build Command objects with "name"/"description"/"request"/"response" fields. Request and response are represented by the list of arguments, each argument contains "name"/"description"/"isrequired" fields. The commands are being serialized to commands.xml using imported xstream library, and can be desiarialized later - it will help to compare commands from differemt product versions.
...
2) Added description() methods to Implementation and Param annotations.
2010-10-04 09:50:14 -07:00
alena
46a433d750
Incremental checkin for ApiXmlDocBuilder
2010-10-04 09:50:14 -07:00
nit
38fd80e522
bug 5871: Introducing audit trail for all the interactions with the cloud stack - User 'X' initiated an action 'Y' on resource 'Z'. The audit will contain http api request along with the contextual parameters (userId, accountId, sessionId). For the response part only log success/failure for all sync api's with the exception of queryAsyncJob where reason code and reason will also be logged. For async api's I will also log the async job id.
2010-10-04 14:27:40 +05:30
edison
3aa34687f5
set hypervisor type to be manadatory for deployvm and registertmplt API
2010-10-01 15:15:01 -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
5f2acc8cdd
Fixing API responses for user VMs (we need to return ipaddress rather than privateip) and domain routers (guestMacAddress != guestmacaddress for case sensitive string comparison)
2010-09-30 14:22:10 -07:00
edison
26807bc701
bug 6362: Need to call guestos.getDisplayName to the guest os name now.
...
status 6362: resolved fixed
2010-09-30 12:26:37 -07:00
Kris McQueen
bc2449a69a
If the session in invalidated due to a bad session key, just return to avoid the situation where the session is invalidated twice (which causes IllegalStateException)
2010-09-30 11:39:36 -07:00
edison
58c430f7d7
add xenserver specific configruation back
2010-09-29 18:48:26 -07:00
edison
ad1ef80459
Now we have multiple routing template and buitin templates now, refactor template download code, that can handle it.
...
Basically, change the meaning of type field in template table: SYSTEM means sytem vm template, BUILIIN means buildin templates.
2010-09-29 18:41:55 -07:00
edison
6fc7528809
create data volume is splitted into two stage:
...
1. create a volume entry in the database,
2. when user attaching the volume to a VM, then actually create the volume on storage pool.
2010-09-29 18:41:54 -07:00
edison
964f8f1fe3
fix boot from iso
2010-09-29 18:41:54 -07:00
edison
d98d6cbb9f
fix template download, listguestos type
2010-09-29 18:41:53 -07:00
edison
baeb1af265
fix register template hypervisor type
2010-09-29 18:41:53 -07:00
edison
b8c1d2ea17
set external ipallocator as true by default
2010-09-29 18:40:52 -07:00
edison
9e0f57bc0e
change code for new UI
2010-09-29 18:40:52 -07:00
edison
8943cc6745
create volume
...
Conflicts:
api/src/com/cloud/vm/VmCharacteristics.java
core/src/com/cloud/dc/ClusterVO.java
core/src/com/cloud/server/ManagementServer.java
server/src/com/cloud/network/NetworkManager.java
server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java
2010-09-29 18:40:51 -07:00
Kris McQueen
0105aec338
Always set the response type on the command object so that the correct output is generated. Add both Strings and Longs to the login response (domainId and userId will be the Longs). Use the correct method name for ListSystemVMsCmd.
2010-09-29 17:32:19 -07:00
anthony
be5fa82229
remove snapshotpolicyRef
2010-09-29 16:24:57 -07:00
Kris McQueen
da660f2575
Change session parameters to be their actual type (domainId and userId are saved to the session as Longs and not Strings)
2010-09-29 15:18:43 -07:00
Kris McQueen
9e2d1f5e70
Refactoring disableUser and disableAccount to new API framework (they are both async commands).
2010-09-29 13:57:26 -07:00
abhishek
cd42fcc1bf
some code refactoring
2010-09-29 11:17:42 -07:00
kishan
9e87534e42
bug 6216: Added Id to listAlerts response
2010-09-29 15:52:13 +05:30
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
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
nit
122b15071d
bug 6334: Correcting the syntax of json data when the response is empty.
...
status 6334: resolved fixed
2010-09-28 14:46:44 +05:30
alena
9b10074c2a
Added missing license info to the bunch of files
2010-09-27 19:08:03 -07:00
abhishek
ad4ea90207
bug 5190: enhancing some of the error messages returned to be more intuitive
2010-09-27 17:01:01 -07:00
abhishek
677d8894ea
bug 5190: modifying the api calls
2010-09-27 16:49:34 -07:00
abhishek
1356f5f33a
bug 5190: incremental checkin, code cleanup
2010-09-27 16:46:14 -07:00
abhishek
060dfc2cf9
bug 5190: incremental checkin
2010-09-27 16:39:32 -07:00
alena
49143dbe4a
Remove user vm from instance_group when empty string is passed as value for "group" parameter in updateVirtualMachine API.
2010-09-27 14:24:08 -07:00
nit
b857a9b4c8
bug 4177: registerTemplate/registerIso commands would start accepting account/domainId params.
...
status 4177: resolved fixed
2010-09-27 17:24:23 +05:30
nit
26fc22160c
bug 5871: Correcting the ostypeid and ostypename returned by the listIsos
2010-09-27 12:10:49 +05:30
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
abhishek
320df380c9
bug 6217: incremental fix for the vm api
...
bug 6217: resolved fixed
2010-09-23 14:56:25 -07:00
abhishek
e0dcb95511
bug 6217: incremental checkin
2010-09-23 14:55:13 -07:00
abhishek
703c182f8f
bug 6222: removing non needed attribs
...
status 6222: resolved fixed
2010-09-23 10:32:42 -07:00
abhishek
32884572b9
bug 6241: incremental checkin
2010-09-22 15:32:42 -07:00
nit
fd86e976b6
bug 6249, 6250: listDiskOfferings API - adding createed date tag and removing ismirrored tag.
...
status 6249, 6250: resolved fixed
2010-09-22 15:08:14 +05:30
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
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
abhishek
122b0d1aeb
bug 6243: adding a check to return an error in case we have a null domain id for a non null account
...
status 6243: resolved fixed
2010-09-21 15:50:49 -07:00
abhishek
d07cac932a
bug 6165: there is a possiblility of the root volume being null when we search for it, which may be causing a npe in this bug. enhancing the logic around this
...
status 6165: resolved fixed
2010-09-21 15:17:21 -07:00
abhishek
37870da95f
bug 3120: incremental fix
2010-09-21 14:47:51 -07:00
nit
87f1a96c29
bug 6214: UpdateIso API - Adding account and domain tags.
2010-09-21 16:17:48 +05:30
nit
0669c2c1d4
Merge branch 'master' of ssh://git.cloud.com/var/lib/git/cloudstack-oss
2010-09-21 13:37:47 +05:30
nit
7ff551bd5c
bug 4286: Extract functionality - code cleanup
2010-09-21 13:36:57 +05:30
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
abhishek
a9c96b4da0
bug 3120: incremental checkin
2010-09-20 14:54:06 -07:00
abhishek
437f717633
bug 3120: incremental checkin
2010-09-20 14:54:06 -07:00
kishan
9393ad410e
Merge branch 'master' of ssh://kishan@git.cloud.com/var/lib/git/cloudstack-oss
2010-09-20 15:12:55 +05:30
kishan
b606d14396
Bug 5904: Included version in API header
2010-09-20 15:00:57 +05:30
nit
a39fad5da4
bug 3384: listVolumes: allowing regular user to make a search by "type".
...
status 3384: resolved fixed
2010-09-20 13:09:33 +05:30
nit
33e683e2c7
bug 4286: Making ExtractVolumeCommand async and some code cleanup
2010-09-19 18:34:12 +05:30
nit
1a30ffbdc0
bug 6055: createDiskOffering API - removed isMirrored and domainId parameters.
...
status 6055: resolved fixed
2010-09-19 16:13:13 +05:30
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
abhishek
1a37b661c7
code cleanup
2010-09-17 17:06:19 -07:00
abhishek
573885c615
bug 6203: changed the functionality for custom volume and disk offering creation
...
status 6203: resolved fixed
2010-09-17 16:59:40 -07:00
abhishek
a016aa27cd
bug 6203: incremental fix
2010-09-17 16:59:40 -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
nit
48cd102ab9
Merge branch 'master' of ssh://git.cloud.com/var/lib/git/cloudstack-oss
2010-09-17 17:04:35 +05:30
nit
636dc041c7
bug 4286: Making extractIsoCmd and extractTemplateCmd async
2010-09-17 17:04:07 +05:30
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
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
abhishek
f1cab0525c
bug 6021: blocking the deletion of private disk offering from the back end api
2010-09-16 16:47:35 -07:00
abhishek
3abe056736
bug 6141: fixed the error of not providing the right error for an incorrect diskoffering
...
status 6141: resolved fixed
2010-09-16 15:01:13 -07:00
abhishek
6731dc66f1
bug 3120: incremental checkin
2010-09-16 12:02:54 -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
abhishek
b2efa6872b
a few more code cleanup tasks
2010-09-15 15:38:24 -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
abhishek
652620363d
bug 3120: reverting changes as still soliciting feedback on design
2010-09-15 11:52:31 -07:00
abhishek
a05dc480a7
bug 3120: incremental checkin
2010-09-15 11:18:04 -07:00
abhishek
ef8781b7b5
bug 3120: introducing this optional parameter in the command
2010-09-15 10:28:41 -07:00
abhishek
cacb4dba1d
bug 3120: incremental checkin for this bug, with the introduction of an optional ONE_TO_ONE_NAT parameter
2010-09-15 10:28:41 -07:00
nit
f5ac46255c
bug 4286: Schema changes to include the upload table, Introducing extractIso command and extractVolume command
2010-09-15 17:51:42 +05:30
alena
b26ac321de
bug 6177: Make VM group a first class object
...
1) Added new apis: createInstanceGroup, updateInstanceGroup, deleteInstanceGroup, listInstanceGroups
2) Group can be created using:
* createInsanceGroup api
* deployVirtualMachine/updateVirtualMachine commands (we create a group with name equal to "group" parameter value if the group doesn't exist already)
3) Group can be removed by:
* deleteInstanceGroup api
* when corresponding account is removed
4) Vm can be assigned to one group only. To move vm from one group to another, use updateVirtualMachine command with "group" parameter
5) Changed listVirtualMachines command to use "groupId" parameter instead of "group".
status 6177: resolved fixed
2010-09-14 19:08:01 -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