You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Min Chen (JIRA)" <ji...@apache.org> on 2013/04/25 23:44:15 UTC
[jira] [Updated] (CLOUDSTACK-2126) Response objects of some
entities contain inconsistent job related information
[ https://issues.apache.org/jira/browse/CLOUDSTACK-2126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Min Chen updated CLOUDSTACK-2126:
---------------------------------
Summary: Response objects of some entities contain inconsistent job related information (was: Response objects of some entities contain job related information)
Update the bug title to reflect the real issue.
> 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