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.
-----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_doma > 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_the_ > 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