Yes, but to place it in the storage domain, first I need to create a disk on 
the storage domain and replace the disk image with my disk image. That seems a 
little hacky.

If registering a disk image isn't possible today, should I file a bug/rfe to 
put it on the roadmap?

-----Original Message-----
From: Itamar Heim [mailto:ih...@redhat.com] 
Sent: Monday, January 20, 2014 1:46 PM
To: Satya Vempati; Juan Hernandez; users@ovirt.org
Subject: Re: [Users] Register a disk image via oVirt REST api

On 01/20/2014 11:39 PM, Satya Vempati wrote:
> It is a disk image (could be raw/cow, preallocated/thin provisioned). But is 
> just a file. The REST API doesn't take a file path to convert the disk image 
> into a system disk.

you need to place it in the storage domain according to the naming convention 
the storage domain has, then you can simply register it.

>
> -----Original Message-----
> From: Itamar Heim [mailto:ih...@redhat.com]
> Sent: Monday, January 20, 2014 1:37 PM
> To: Satya Vempati; Juan Hernandez; users@ovirt.org
> Subject: Re: [Users] Register a disk image via oVirt REST api
>
> On 01/20/2014 11:36 PM, Satya Vempati wrote:
>> Well, the crux of the problem is that there doesn't seem to be a way to 
>> convert the disk image I have into a disk that the system will recognize.
>
> why, which format is it?
>
>>
>> -----Original Message-----
>> From: Itamar Heim [mailto:ih...@redhat.com]
>> Sent: Monday, January 20, 2014 1:32 PM
>> To: Satya Vempati; Juan Hernandez; users@ovirt.org
>> Subject: Re: [Users] Register a disk image via oVirt REST api
>>
>> On 01/20/2014 11:30 PM, Satya Vempati wrote:
>>> Thanks Juan and Itamar.
>>>
>>> As Juan said, I am trying take a file that I have that contains the 
>>> image of a disk and create a disk in the system with the same 
>>> content
>>>
>>>     I am taking a similar approach to the one Juan described. I am creating 
>>> a VM and then creating a new disk with the same size and attributes as my 
>>> disk image. Then I am replacing the disk image of the new disk with the 
>>> file that contains the image of the disk I want.  That seems to work but 
>>> seemed too hacky/clumsy. I was hoping there is a more straightforward/clean 
>>> way to do this.
>>
>> you can just place the disk on the storage, register the disk, and attach it 
>> to a VM?
>>
>>>
>>> -----Original Message-----
>>> From: Juan Hernandez [mailto:jhern...@redhat.com]
>>> Sent: Saturday, January 18, 2014 8:27 AM
>>> To: Satya Vempati; users@ovirt.org
>>> Cc: Itamar Heim
>>> Subject: Re: [Users] Register a disk image via oVirt REST api
>>>
>>> On 01/17/2014 11:28 PM, Itamar Heim wrote:
>>>> On 01/16/2014 07:21 PM, Satya Vempati wrote:
>>>>> I have a disk image (i.e. a file) that I want to register as a 
>>>>> disk using the REST API.
>>>>>
>>>>> The REST API works with existing disks, but does the API work with 
>>>>> disk images?
>>>>
>>>> can you pleas explain what do you mean by an image compared to a disk?
>>>>
>>>
>>> I think that what you want is to take a file that you have that contains 
>>> the image of a disk and create a disk in the system with the same content.
>>>
>>> As far as I know we don't have any direct way to do this. You will need to 
>>> create an empty disk in oVirt, and then attach it to a virtual machine. 
>>> Once it is attached to that virtual machine then you can write to it, but 
>>> always via the virtual machine. For example, you can use the API as follows 
>>> to create a new disk that isn't attached to any VM:
>>>
>>> curl \
>>> -k \
>>> -X POST \
>>> -H "Accept: application/xml" \
>>> -H "Content-Type: application/xml" \ -d "
>>> <disk>
>>>      <name>newdisk</name>
>>>      <size>1073741824</size>
>>>      <format>raw</format>
>>>      <interface>virtio</interface>
>>> </disk>
>>> " \
>>> -u admin@internal:****** \
>>> https://rhel.example.com/api/storagedomains/the_id_of_the_storage_do
>>> m
>>> a
>>> in/disks
>>>
>>> Then prepare a VM that you will use to copy the contents of your file to 
>>> the new disk, and use the API to attach the new disk to this VM (you can 
>>> preserve this VM, and use multiple times for this purpose):
>>>
>>> curl \
>>> -k \
>>> -X POST \
>>> -H "Accept: application/xml" \
>>> -H "Content-Type: application/xml" \ -d "
>>> <disk id='the_id_of_the_disk'/>
>>> " \
>>> -u admin@internal:****** \
>>> https://rhel.example.com/api/vms/the_id_of_the_vm/disks
>>>
>>> (Note that in order to attach the disk you have to provide the disk 
>>> id returned by the API when you created it.)
>>>
>>> Then activate the disk, so that the VM can see it:
>>>
>>> curl \
>>> -k \
>>> -X POST \
>>> -H "Accept: application/xml" \
>>> -H "Content-Type: application/xml" \ -d "
>>> <action/>
>>> " \
>>> -u admin@internal:****** \
>>> https://rhel.example.com/api/vms/the_id_of_the_vm/disks/the_id_of_th
>>> e
>>> _
>>> disk/activate
>>>
>>> Now you will have to copy the contents of the file to the disk via the VM. 
>>> For example, assuming that you have SSH enabled on that VM and that the 
>>> disk device inside the VM is /dev/vdb (it won't allways be this, depends on 
>>> the number and order of attached disks) you can do something like this:
>>>
>>> ssh root@myvm 'cat > /dev/vdb' < myfile.img ssh root@myvm 'sync'
>>>
>>> Once the contents of the file have been copied you can deactivate the disk 
>>> and detach it from this intermediate VM, and maybe attach it to another one.
>>>
>>> Take into account that all these operations are lengthy ones, specially the 
>>> operation to create the disk, and that the RESTAPI will usually return once 
>>> the operation is initiated, so you will need to wait till they are 
>>> finished. For example, when creating the disk you should poll the state of 
>>> the VM till it is "ok".
>>>
>>> --
>>> 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.
>>>
>>
>

_______________________________________________
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users

Reply via email to