Bug 1110798

Summary: SDK and REST ignore template's disk attributes
Product: [Retired] oVirt Reporter: Raz Tamir <ratamir>
Component: ovirt-engine-apiAssignee: Amit Aviram <aaviram>
Status: CLOSED CURRENTRELEASE QA Contact: Ori Gofen <ogofen>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.5CC: acanan, amureini, bugs, gklein, rbalakri, yeylon
Target Milestone: m1   
Target Release: 3.6.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: storage
Fixed In Version: ovirt-engine-3.6.0-0.0.master.20150412172306.git55ba764 Doc Type: Bug Fix
Doc Text:
Cause: When adding a template via REST API and providing its new disk's alias, the action succeeded but the disk's alias was not changed. Consequence: The user can provide an alias but cannot know that it will not actually be changed. Fix: New template's disk alias is changeable now. Result: The fields which are specified in the new template request's signature are available for usage. among them is the disk's alias.
Story Points: ---
Clone Of:
: 1199811 1222283 (view as bug list) Environment:
Last Closed: 2015-11-04 11:34:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Storage RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1199811, 1222283    

Description Raz Tamir 2014-06-18 13:19:25 UTC
Description of problem:
When trying to create a template from SDK or REST api, there is an option to select the alias of the template's disk.

In REST (for example):
<template>
<name>temp_from_1</name>
<vm id='4c5d042e-bd34-4280-a0eb-2985863ffb15'>
    <disks>
        <disk id='2b997211-ad7a-48ba-b2f0-cf3264ea4447'>
           <alias>new_name</alias>
         </disk>
    </disks>
</vm>
</template>

The new created template id is: 15c4415c-205d-474d-a626-6b7c29caac94

The response: in /api/templates/15c4415c-205d-474d-a626-6b7c29caac94/disks


<disk href= "/api/templates/15c4415c-205d-474d-a626-6b7c29caac94/disks/50bfde29-379b-4cdf-b629-e2538f4464c1" id="50bfde29-379b-4cdf-b629-e2538f4464c1">
<actions>
<link href= "/api/templates/15c4415c-205d-474d-a626-6b7c29caac94/disks/50bfde29-379b-4cdf-b629-e2538f4464c1/export" rel="export"/>
<link href= "/api/templates/15c4415c-205d-474d-a626-6b7c29caac94/disks/50bfde29-379b-4cdf-b629-e2538f4464c1/copy" rel="copy"/>
</actions>
<name>vm_99_Disk1</name>   ********* NOT AS EXPECTED *********
<template href= "/api/templates/15c4415c-205d-474d-a626-6b7c29caac94" id="15c4415c-205d-474d-a626-6b7c29caac94"/>
<alias>vm_99_Disk1</alias>
<image_id>eb6bfa68-bfbe-48ba-aa62-3377105383b6</image_id>
<storage_domains>
<storage_domain id="5b5b33a0-ca1f-476f-82f0-ccb06437283b"/>
</storage_domains>
<provisioned_size>5368709120</provisioned_size>
<actual_size>1073741824</actual_size>
<status>
<state>ok</state>
</status>
</disk>


Version-Release number of selected component (if applicable):
ovirt-engine-3.5.0-0.0.master.20140605145557.git3ddd2de.el6.noarch

How reproducible:
100%

Steps to Reproduce:
1. POST in /api/templates/ :
1.1  
<template>
<name>temp_from_1</name>
<vm id={vm_id}>
    <disks>
        <disk id={disk_id}>
           <alias>new_name</alias>
         </disk>
    </disks>
</vm>
</template>

2. Check the response body
3.

Actual results:
In the response body under the vm_id/disks, check the newly created disk's alias

Expected results:
the disk's alias should be like the alias that sent in the request body

Additional info:

Comment 1 Amit Aviram 2015-02-16 09:05:04 UTC
This is actually a wider bug than what is described- Any field which is specified in the REST XML regarding the new template's disks is ignored.

Comment 2 Amit Aviram 2015-03-08 14:34:44 UTC
The patch added now makes the REST request for a new template to be correlated with the rsdl_metadata file, which specifies what can be posted and what not.

Disk's alias is now specified there and can be changed via REST.

Comment 3 Ori Gofen 2015-05-07 13:13:54 UTC
This bug has reproduced on ovirt3.6 master.

steps taken:
curled a Post call to engine

[root@ovirt-gofen-2 Rest-Api-Qe]# cat template.xml
<template>
<name>temp_from_rest</name>
<vm id="5e7816d7-12a0-4cb5-ad06-33fbf72077f4">
    <disks>
        <disk id="cb8d7c33-dcc4-4670-8189-05628389f67e">
           <alias>new_name</alias>
         </disk>
    </disks>
</vm>
</template>

viewed the template object from the ui and rest, disk's original name apears instead of the new name

Comment 4 Amit Aviram 2015-05-12 08:41:39 UTC
Apparently this happens only Gluster storage and works on NFS. We will investigate further.

Comment 5 Amit Aviram 2015-05-12 11:21:53 UTC
After checking again on Gluster it seemed to work as well. 

Regarding the test that was made: currently the vm's disk in the tested environment is not "cb8d7c33-dcc4-4670-8189-05628389f67e", so maybe template.xml should be fixed and tested again? (The vm's disk's ID is "0b8550c3-d6a4-401c-9775-eb0541add05d")

Maybe there were changes, but it is likely that the environment wasn't change since the test..

Comment 6 Ori Gofen 2015-05-12 12:16:22 UTC
verified on oVirt3.6 master

Comment 7 Sandro Bonazzola 2015-11-04 11:34:16 UTC
oVirt 3.6.0 has been released on November 4th, 2015 and should fix this issue.
If problems still persist, please open a new BZ and reference this one.