On 05/09/2015 09:08 AM, Christopher Pereira wrote:
Template creation is failing, because Engine is not receiving the
alias
which apparently is required since 3.5.
This is the XML sent to engine. Alias is there.
API bug?
Yes, this is a bug in the API. It is fixed already in 3.6:
SDK and REST ignore template's disk attributes
https://bugzilla.redhat.com/1110798
It didn't happen before 3.5 because the backend didn't check the content
of the alias. That changed in 3.5 as part of the fix for a different bug:
Create template from vm with empty disk alias should block with
canDoAction
https://bugzilla.redhat.com/1110304
As far as I know there is no workaround, so you will have to wait for a
release containing the fix. Currently it is targeted for 3.6, but we
could retarget for 3.5.
Allon, Amit, can we retarget bug 1110798 to the next 3.5.z?
<template>
<name>UDSP_ovirt-22</name>
<description>UDS pub for ovirt at 2015-05-09 08:36:58</description>
<vm id="3774dcd0-9e1a-47af-9560-fde85f46bfa1">
<disks>
<disk id="f96b3718-3ccf-42f4-8537-e20dc5dd7bc3">
<name>test</name>
* <alias>test</alias> *
<storage_domains>
<storage_domain
id="07326302-2c80-4d55-a7a2-ea79c55855e3"/>
</storage_domains>
</disk>
</disks>
</vm>
<cluster id="00000001-0001-0001-0001-00000000019d"/>
</template>
On 09-05-2015 3:34, Adolfo wrote:
> Hello all,
>
> My name is Adolfo, i'm in charge of developing of UDS (you can see
> something about it on ovirt home page, the case study
>
http://www.ovirt.org/Universidad_de_Sevilla_Case_Study. ).
>
> Recently (a couple of days ago), i started to test UDS against ovirt
> 3.5, and sudenlty Template creation as was supported previously does
> not works. :(
>
> The idea is allow to create the template in the storage that the
> administrator of UDS selects.
>
> The process is simple and was working perfectly before to 3.5 release
> (on 3.4, 3.3, 3.2 as long as i can remember). After getting all the
> data we need, we do the following (code follows):
>
> vm is the origin vm:
>
> # Create disks description to be created in specified
> storage domain, one for each disk
> sd =
> params.StorageDomains(storage_domain=[params.StorageDomain(id=storageId)])
>
> dsks = []
> for dsk in vm.disks.list():
> dks.append(params.Disk(id=dsk.get_id(),
> storage_domains=sd, name='test', alias='test'))
>
> disks = params.Disks(disk=dsks)
>
> template = params.Template(
> name=name,
> vm=params.VM(id=vm.get_id(), disks=disks),
> cluster=params.Cluster(id=cluster.get_id()),
> description=comments
> )
>
> return api.templates.add(template).get_id()
>
> This is the debug output of the request:
>
> POST /api/templates HTTP/1.1
> Host:
ovirt.dkmon.com
> Accept-Encoding: identity
> Content-Length: 2656
> Filter: False
> cookie: JSESSIONID=2Ihu3uUWFhvl2xbsi5i7yBip.undefined
> Prefer: persistent-auth
> Content-type: application/xml
> Accept: application/xml
>
> <template>
> <name>UDSP_ovirt-21</name>
> <description>UDS pub for ovirt at 2015-05-09 08:27:06</description>
> <vm id="3774dcd0-9e1a-47af-9560-fde85f46bfa1">
> <disks>
> <disk
>
href="/api/vms/3774dcd0-9e1a-47af-9560-fde85f46bfa1/disks/f96b3718-3ccf-42f4-8537-e20dc5dd7bc3"
> id="f96b3718-3ccf-42f4-8537-e20dc5dd7bc3">
> <actions>
> <link
>
href="/api/vms/3774dcd0-9e1a-47af-9560-fde85f46bfa1/disks/f96b3718-3ccf-42f4-8537-e20dc5dd7bc3/deactivate"
> rel="deactivate"/>
> <link
>
href="/api/vms/3774dcd0-9e1a-47af-9560-fde85f46bfa1/disks/f96b3718-3ccf-42f4-8537-e20dc5dd7bc3/activate"
> rel="activate"/>
> <link
>
href="/api/vms/3774dcd0-9e1a-47af-9560-fde85f46bfa1/disks/f96b3718-3ccf-42f4-8537-e20dc5dd7bc3/export"
> rel="export"/>
> <link
>
href="/api/vms/3774dcd0-9e1a-47af-9560-fde85f46bfa1/disks/f96b3718-3ccf-42f4-8537-e20dc5dd7bc3/move"
> rel="move"/>
> </actions>
> <name>no-os_Dsk1</name>
> <description>Small empty disk</description>
> <link
>
href="/api/vms/3774dcd0-9e1a-47af-9560-fde85f46bfa1/disks/f96b3718-3ccf-42f4-8537-e20dc5dd7bc3/permissions"
> rel="permissions"/>
> <link
>
href="/api/vms/3774dcd0-9e1a-47af-9560-fde85f46bfa1/disks/f96b3718-3ccf-42f4-8537-e20dc5dd7bc3/statistics"
> rel="statistics"/>
> <vm
> href="/api/vms/3774dcd0-9e1a-47af-9560-fde85f46bfa1"
> id="3774dcd0-9e1a-47af-9560-fde85f46bfa1"/>
> <alias>no-os_Dsk1</alias>
> <image_id>a79f7fe7-bcae-4cc3-8b11-d60702a46147</image_id>
> <storage_domains>
> <storage_domain
> id="a893809b-2ba9-4910-a7f3-9bfdde2efbb8"/>
> </storage_domains>
> <size>1073741824</size>
> <provisioned_size>1073741824</provisioned_size>
> <actual_size>0</actual_size>
> <status>
> <state>ok</state>
> </status>
> <interface>virtio</interface>
> <format>raw</format>
> <sparse>true</sparse>
> <bootable>true</bootable>
> <shareable>false</shareable>
> <wipe_after_delete>false</wipe_after_delete>
> <propagate_errors>false</propagate_errors>
> <active>true</active>
> <read_only>false</read_only>
> <disk_profile
> href="/api/diskprofiles/40def02e-3802-4122-a768-cb6b9518896e"
> id="40def02e-3802-4122-a768-cb6b9518896e"/>
> </disk>
> </disks>
> </vm>
> <cluster id="00000001-0001-0001-0001-00000000019d"/>
> </template>
>
> reply: 'HTTP/1.1 400 Bad Request\r\n'
> header: Date: Sat, 09 May 2015 06:27:13 GMT
> header: Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips
> header: JSESSIONID: 2Ihu3uUWFhvl2xbsi5i7yBip.undefined
> header: Content-Type: application/xml
> header: Content-Length: 180
> header: Connection: close
>
> The response : Cannot add Template with an empty disk alias
>
> On server, i got this on ovirt log:
>
> 2015-05-09 08:14:16,940 WARN
> [org.ovirt.engine.core.bll.AddVmTemplateCommand]
> (ajp--127.0.0.1-8702-8) CanDoAction of action AddVmTemplate failed for
> user admin@internal. Reasons:
>
VAR__ACTION__ADD,VAR__TYPE__VM_TEMPLATE,ACTION_TYPE_FAILED_TEMPLATE_CANNOT_BE_CREATED_WITH_EMPTY_DISK_ALIAS
>
> After a lot of tests, i have no idea how to resolve this, and if this
> is related to the change that was made to admin interface that alias
> is required when creating a template (googling have found something
> related to that change). The case is that even sending an "alias" (the
> alias is unique anyway, but is hardcoded in the example because of
> tests... :) )
>
> I don't know where to ask for help on this, if this is my own fault of
> is something that was missing on ovirt engine. We need to be able to
> create machines templates on whatever storage is decided... :(
>
> Thank you very much
>
> Adolfo Gómez
>
> _______________________________________________
> Devel mailing list
> Devel(a)ovirt.org
>
http://lists.ovirt.org/mailman/listinfo/devel
--
*J. Christopher Pereira*
Gerente General
IMATRONIX S.A.
www.imatronix.com
Móvil : (09) 72 188 630
Santiago: (+56) (02) 28 99 44 60 + anexo 800
Valparaíso: (+56) (32) 2 76 80 77 + anexo 800
_______________________________________________
Devel mailing list
Devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel
--
Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
3ºD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.