[
https://issues.apache.org/jira/browse/CLOUDSTACK-2126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chip Childers resolved CLOUDSTACK-2126.
---------------------------------------
Resolution: Fixed
Applied to 4.1. Please be sure to move to master.
commit 6dbf3e7b35f92eadbe6f47a8df9e465a8373d7ac
Author: Min Chen <[email protected]>
Date: Thu Apr 25 16:16:13 2013 -0700
CLOUDSTACK-2196 and CLOUDSTACK-2126: fix missing async job status in
listXXX api and incorrect async job status in other async api.
> Response objects of some entities contain inconsistent job related information
> ------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-2126
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-2126
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: API
> Affects Versions: 4.1.0, 4.2.0
> Reporter: Prasanna Santhanam
> Assignee: Min Chen
> Priority: Critical
> Fix For: 4.1.0
>
>
> Response objects of various entities seem to have introduced jobstatus,
> jobid, jobuuid into their responses. These belong to the
> queryAsyncJobResponse and not the response of the entity itself:
> Eg: deployVirtualMachineResponse:
> https://gist.github.com/vogxn/5429546
> Snippet:
> {
> "queryasyncjobresultresponse": {
> "accountid": "50b6647e-a8ca-11e2-8a60-0c06fde16e85",
> "userid": "50b68bde-a8ca-11e2-8a60-0c06fde16e85",
> "cmd": "org.apache.cloudstack.api.command.user.vm.DestroyVMCmd",
> "jobstatus": 1,
> "jobprocstatus": 0,
> "jobresultcode": 0,
> "jobresulttype": "object",
> "jobresult": {
> "virtualmachine": {
> "id": "649663f7-3c8d-4e0d-b693-4b1ea6085a84",
> "name": "649663f7-3c8d-4e0d-b693-4b1ea6085a84",
> "account": "QX7KKV",
> "domainid": "50b6593e-a8ca-11e2-8a60-0c06fde16e85",
> "domain": "ROOT",
> "created": "2013-04-21T18:36:58+0530",
> "state": "Destroyed",
> "haenable": false,
> "zoneid": "6e301be1-8010-4b57-9638-c90761e40dc9",
> "zonename": "Sandbox-simulator",
> "templateid": "570c6828-a8ca-11e2-8a60-0c06fde16e85",
> "templatename": "CentOS 5.3(64-bit) no GUI (Simulator)",
> "templatedisplaytext": "CentOS 5.3(64-bit) no GUI
> (Simulator)",
> "passwordenabled": false,
> "serviceofferingid": "b1ab015a-2e8e-4f42-a6c2-f652d097fbf6",
> "serviceofferingname": "SmallServiceOffering0W2VOH",
> "cpunumber": 1,
> "cpuspeed": 100,
> "memory": 100,
> "guestosid": "5026c2c4-a8ca-11e2-8a60-0c06fde16e85",
> "rootdeviceid": 0,
> "rootdevicetype": "ROOT",
> "securitygroup": [],
> "nic": [
> {
> "id": "11517c3a-da75-4743-b4f5-2271dd919df9",
> "networkid": "7f7278dc-0352-44e6-b50d-56e59a7d19f3",
> "networkname": "QX7KKV-network",
> "netmask": "255.255.255.0",
> "gateway": "10.1.1.1",
> "ipaddress": "10.1.1.2",
> "traffictype": "Guest",
> "type": "Isolated",
> "isdefault": true,
> "macaddress": "02:00:3e:2e:00:01"
> }
> ],
> "hypervisor": "Simulator",
> "instancename": "i-232-35-QA",
> "tags": [],
> "affinitygroup": [],
> "jobstatus": 0 ####INVALID ENTRY INSIDE VIRTUALMACHINE####
> }
> },
> "created": "2013-04-21T18:37:04+0530",
> "jobid": "340120e2-632b-4a03-b416-21c23b4e95d1"
> }
> }
> This seems to have come through during the api refactoring. Ideally response
> should stick to what is exposed by the docs and the associated response
> class: In the case of DeployVM there is no response attribute for jobstatus.
> jobstatus attribute makes no sense for virtualmachine.
> This breaks deserializing the object into a VirtualMachine response when
> consumed by Marvin.
> Other entities that have similar issues:
> server/src/com/cloud/api/query/dao/AccountJoinDaoImpl.java:
> accountResponse.setJobStatus(account.getJobStatus());
> server/src/com/cloud/api/query/dao/AsyncJobJoinDaoImpl.java:
> jobResponse.setJobStatus(job.getStatus());
> server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java:
> routerResponse.setJobStatus(router.getJobStatus());
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java:
> hostResponse.setJobStatus(host.getJobStatus());
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java:
> hostResponse.setJobStatus(host.getJobStatus());
> server/src/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java:
> sgResponse.setJobStatus(vsg.getJobStatus());
> server/src/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java:
> poolResponse.setJobStatus(pool.getJobStatus());
> server/src/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java:
> poolResponse.setJobStatus(pool.getJobStatus());
> server/src/com/cloud/api/query/dao/UserAccountJoinDaoImpl.java:
> userResponse.setJobStatus(usr.getJobStatus());
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java:
> userVmResponse.setJobStatus(userVm.getJobStatus());
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java:
> volResponse.setJobStatus(volume.getJobStatus());
> server/src/com/cloud/api/query/vo/AccountJoinVO.java: public void
> setJobStatus(int jobStatus) {
> server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java: public void
> setJobStatus(int jobStatus) {
> server/src/com/cloud/api/query/vo/HostJoinVO.java: public void
> setJobStatus(int jobStatus) {
> server/src/com/cloud/api/query/vo/SecurityGroupJoinVO.java: public void
> setJobStatus(int jobStatus) {
> server/src/com/cloud/api/query/vo/StoragePoolJoinVO.java: public void
> setJobStatus(int jobStatus) {
> server/src/com/cloud/api/query/vo/UserAccountJoinVO.java: public void
> setJobStatus(int jobStatus) {
> server/src/com/cloud/api/query/vo/UserVmJoinVO.java: public void
> setJobStatus(int jobStatus) {
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java: public void
> setJobStatus(int jobStatus) {
> The associated views contain the response as well which is where they seem to
> be coming from:
> | job_id | bigint(20) unsigned | YES | | 0 | |
> | job_uuid | varchar(40) | YES | | NULL | |
> | job_status | int(1) | YES | | NULL | |
> | job_account_id | bigint(20) unsigned | YES | | NULL | |
> +-----------------------+---------------------+------+-----+---------+-------+
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira