Luckily I am on NFS, so it is relatively easy to copy the file over. Which, by the way, is what I am doing now.
But that means I rely on the internal knowledge of how the storage domain and the disks are laid out on the file system. Relying on the internals of the oVirt implementation is what I consider to be hacky/clumsy. That is why I was searching for a clean solution although the hacky way seems to be working. -----Original Message----- From: Itamar Heim [mailto:[email protected]] Sent: Monday, January 20, 2014 2:02 PM To: Satya Vempati; Juan Hernandez; [email protected] Subject: Re: [Users] Register a disk image via oVirt REST api On 01/20/2014 11:56 PM, Satya Vempati wrote: > 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. for block storage, true. for NFS, you can just copy the file over? > > If registering a disk image isn't possible today, should I file a bug/rfe to > put it on the roadmap? for nfs, should be easy. for block storage, yes, to create a disk/LV not via the engine. > > -----Original Message----- > From: Itamar Heim [mailto:[email protected]] > Sent: Monday, January 20, 2014 1:46 PM > To: Satya Vempati; Juan Hernandez; [email protected] > 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:[email protected]] >> Sent: Monday, January 20, 2014 1:37 PM >> To: Satya Vempati; Juan Hernandez; [email protected] >> 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:[email protected]] >>> Sent: Monday, January 20, 2014 1:32 PM >>> To: Satya Vempati; Juan Hernandez; [email protected] >>> 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:[email protected]] >>>> Sent: Saturday, January 18, 2014 8:27 AM >>>> To: Satya Vempati; [email protected] >>>> 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_d >>>> o >>>> 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_t >>>> h >>>> 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 [email protected] http://lists.ovirt.org/mailman/listinfo/users

