You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2011/07/27 14:16:42 UTC
svn commit: r1151441 -
/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/vsphere/vsphere_filemanager.rb
Author: mfojtik
Date: Wed Jul 27 12:16:42 2011
New Revision: 1151441
URL: http://svn.apache.org/viewvc?rev=1151441&view=rev
Log:
Add user_data! method and add the exception if datastore is not defined
Signed-off-by: Francesco Vollero <fv...@redhat.com>
Modified:
incubator/deltacloud/trunk/server/lib/deltacloud/drivers/vsphere/vsphere_filemanager.rb
Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/vsphere/vsphere_filemanager.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/vsphere/vsphere_filemanager.rb?rev=1151441&r1=1151440&r2=1151441&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/vsphere/vsphere_filemanager.rb (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/vsphere/vsphere_filemanager.rb Wed Jul 27 12:16:42 2011
@@ -5,6 +5,13 @@ module VSphere
DIRECTORY_PATH="deltacloud"
+ MKISOFS_EXECUTABLE="mkisofs"
+ # This value is setted in this way because
+ # mkisofs man said, less than this amount
+ # he have to pad the content of the iso file
+ # that mean a limit of 400 kb file since
+ # 1 sector of iso file = 2048 bytes
+ ISO_SECTORS=200
RbVmomi::VIM::Datastore::class_eval do
def soap
@@ -19,6 +26,18 @@ module VSphere
uploadFile(datastore, file, file_name)
end
+ def user_data!(datastore,base64_content,file_name="deltacloud")
+ command="#{MKISOFS_EXECUTABLE} -stream-file-name #{file_name}.txt -stream-media-size #{ISO_SECTORS}"
+ iso_file=''
+ Open3::popen3(command) do |stdin, stdout, stderr|
+ stdin.write(base64_content.unpack("m"))
+ stdin.close()
+ iso_file=StringIO::new(stdout.read)
+ end
+ uploadFile(datastore,iso_file,[file_name,"iso"].join("."))
+ end
+
+
def delete_iso!(datastore,file_name)
deleteFile(datastore, file_name)
end
@@ -109,6 +128,7 @@ module VSphere
end
def uploadFile(datastore,file,file_name)
+ raise "You need to set the realm_id" if datastore.nil?
make_directory!(datastore,DIRECTORY_PATH) unless _exist?(datastore)
@uri = buildUrl(datastore,file_name)
http=Net::HTTP.new(@uri.host, @uri.port)