Wild import of VMware VM with >1 disk = one.image.allocate result FAILURE [one.image.allocate] Error allocating a new image. NAME is already taken by IMAGE 102

Hi,

I’ve recently upgraded from 5.6.1 to 5.8.5 and now run into a problem when I import wild VMware VMs.

This works for VMs with one disk but fails if they have any more with the error:
[Z0][ReM][E]: Req:960 UID:0 one.image.allocate result FAILURE [one.image.allocate] Error allocating a new image. NAME is already taken by IMAGE 102.

Looking at the imported images, I’ve noticed that the image name format has changed from ’ - [VM ]’:
colm-ubuntu1_2 - vfc1_shared1_SYSTEM_SSD_1 [VM colm-ubuntu1]
to ‘’:
colm-ubuntu1
which I would imagine is resulting in a problem when the second disk tries to use the same name.

Do you guys have any suggestions on how to change the image name format which is used for importing wild VMware VMs?

Thanks for your help,

Colm

Hiya,

It looks like this problem is a result of a bug in the vcenter_driver.

Where a VMware VM has disks on multiple datastores, the same VMDK file basename will be used. e.g.

VM: test1
HDD1: [datastore1] test1/test1.vmdk
HDD2: [datastore2] test1/test1.vmdk

However, importing a wild VM like this results in the error:

Wild with ref vm-978 could not be imported Error creating disk from template: [one.image.allocate] Error allocating a new image. NAME is already taken by IMAGE 102.

I guess this is because the datastore is stripped from the image name with the mistaken assumption that the remaining text will be unique.

Looks like this may be happening here to me:

https://github.com/OpenNebula/one/blob/master/src/vmm_mad/remotes/lib/vcenter_driver/datastore.rb#L95

Colm