From: Michal Fojtik <[email protected]>
Signed-off-by: Michal fojtik <[email protected]> --- .../deltacloud/drivers/vsphere/vsphere_driver.rb | 34 ++++++++++++++++++- 1 files changed, 32 insertions(+), 2 deletions(-) diff --git a/server/lib/deltacloud/drivers/vsphere/vsphere_driver.rb b/server/lib/deltacloud/drivers/vsphere/vsphere_driver.rb index daf34f1..75221b9 100644 --- a/server/lib/deltacloud/drivers/vsphere/vsphere_driver.rb +++ b/server/lib/deltacloud/drivers/vsphere/vsphere_driver.rb @@ -21,6 +21,8 @@ module Deltacloud::Drivers::VSphere class VSphereDriver < Deltacloud::BaseDriver + feature :instances, :user_data + # Set of predefined hardware profiles define_hardware_profile('small') do cpu 1 @@ -213,9 +215,37 @@ module Deltacloud::Drivers::VSphere :numCPUs => instance_profile.cpu.value, :extraConfig => [ { :key => 'template_id', :value => image_id } - ] - ) + ]) ) + if opts[:user_data] + # + # ** TODO ** + # + # Pick up user_data and save it to the temporary file. + # User data should be base64 encoded floppy image. + # Then upload this file to the datastore. + # Code below will attach this floppy to the VM. + # + # NOTE: You need to do 'modprobe floppy' on Vm in order to + # access /dev/fd0 + # + spec[:config].merge!({ + :deviceChange => [{ + :operation => :add, + :device => RbVmomi::VIM.VirtualFloppy({ + :key => 0, + :backing => RbVmomi::VIM.VirtualFloppyImageBackingInfo({ + :fileName => "[datastore1] floppy.img" # 'datastore1' is the datastore name, floppy.img is the filename in datastore + }), + :connectable => RbVmomi::VIM.VirtualDeviceConnectInfo({ + :connected => true, + :allowGuestControl => true, + :startConnected => true + }) + }) + }] + }) + end # # WARNING: This operation may take a very long time (about 1m) to complete # -- 1.7.4.1
