Kirk Kosinski created CLOUDSTACK-1871:
-----------------------------------------
Summary: domainId parameter to uploadVolume not working
Key: CLOUDSTACK-1871
URL: https://issues.apache.org/jira/browse/CLOUDSTACK-1871
Project: CloudStack
Issue Type: Bug
Security Level: Public (Anyone can view this level - this is the default.)
Components: API, Management Server
Affects Versions: 4.0.1
Reporter: Kirk Kosinski
If a root admin wants to upload a volume to a particular account and domain and
includes the account and domainId parameters to uploadVolume, only the account
is applied to the resulting volume, and the domain will be ROOT. The volume
will not be usable by or visible to the desired account since it is in the
wrong domain, and most likely won't be usable by any account at all (unless
there happens to be an account with the same name in the ROOT domain).
To reproduce:
1) Use root admin credentials to call uploadVolume with account and domainId
parameters with valid values.
2) Check whether or not the domain on the resulting volume is what you
specified in 1).
Example from api-server.log:
2013-04-01 14:33:29,872 INFO [cloud.api.ApiServer] (catalina-exec-10:null)
(userId=2 accountId=2 sessionId=null) 172.20.0.59 -- GET
account=devuser&apiKey=<snip>&command=uploadVolume&domainid=84828cc6-89b0-4d71-8451-a0919525df22&format=QCOW2&name=blankdisk1&response=json&url=http%3A%2F%2Fserver%2Fblankdisk.qcow2.bz2&zoneid=08a17e4e-df55-45e8-a318-0fc62ffae559&signature=<snip>
200 { "uploadvolumeresponse" :
{"jobid":"0281081e-aed7-4b39-8d32-47824b88ae66"} }
Matching entry in management-server.log:
2013-04-01 14:33:29,866 DEBUG [cloud.async.AsyncJobManagerImpl]
(catalina-exec-10:null) submit async job-35, details: AsyncJobVO {id:35,
userId: 2, accountId: 2, sessionKey: null, instanceType: None, instanceId:
null, cmd: com.cloud.api.commands.UploadVolumeCmd, cmdOriginator: null,
cmdInfo:
{"response":"json","ctxUserId":"2","zoneid":"08a17e4e-df55-45e8-a318-0fc62ffae559","name":"blankdisk1","account":"devuser","domainid":"84828cc6-89b0-4d71-8451-a0919525df22","ctxAccountId":"2","format":"QCOW2","ctxStartEventId":"210","apiKey":"<snip>","signature":"<snip>","url":"http://server/blankdisk.qcow2.bz2"},
cmdVersion: 0, callbackType: 0, callbackAddress: null, status: 0,
processStatus: 0, resultCode: 0, result: null, initMsid: 4993812620,
completeMsid: null, lastUpdated: null, lastPolled: null, created: null}
Resulting volume in the database (note domain_id = 1, the ROOT domain).
mysql> select * from volumes where id = 10\G
*************************** 1. row ***************************
id: 10
account_id: 3
domain_id: 1
pool_id: NULL
last_pool_id: NULL
instance_id: NULL
device_id: NULL
name: blankdisk1
uuid: b63e00b9-cf09-4b0a-b8a8-8056ae89abf6
size: 0
folder: NULL
path: NULL
pod_id: NULL
data_center_id: 1
iscsi_name: NULL
host_ip: NULL
volume_type: DATADISK
pool_type: NULL
disk_offering_id: 6
template_id: NULL
first_snapshot_backup_uuid: NULL
recreatable: 0
created: 2013-04-01 21:33:29
attached: NULL
updated: 2013-04-01 21:33:29
removed: NULL
state: UploadOp
chain_info: NULL
update_count: 1
1 row in set (0.00 sec)
--
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