Class: RbVmomi::VIM::Datastore
- Inherits:
-
Object
- Object
- RbVmomi::VIM::Datastore
- Defined in:
- lib/rbvmomi/vim/Datastore.rb
Overview
TODO:
Use an HTTP library instead of executing curl
.
Note:
download
and upload
require curl
. If curl
is not in your PATH
then set the CURL
environment variable to point to it.
Constant Summary collapse
- CURLBIN =
ENV['CURL'] || 'curl'
Instance Method Summary collapse
-
#download(remote_path, local_path) ⇒ void
Download a file from this datastore.
-
#exists?(path) ⇒ Boolean
Check whether a file exists on this datastore.
-
#upload(remote_path, local_path) ⇒ void
Upload a file to this datastore.
Instance Method Details
#download(remote_path, local_path) ⇒ void
This method returns an undefined value.
Download a file from this datastore.
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/rbvmomi/vim/Datastore.rb', line 31 def download remote_path, local_path url = "http#{_connection.http.use_ssl? ? 's' : ''}://#{_connection.http.address}:#{_connection.http.port}#{mkuripath(remote_path)}" pid = spawn CURLBIN, '-k', '--noproxy', '*', '-f', '-o', local_path, '-b', _connection., url, out: '/dev/null' Process.waitpid(pid, 0) raise 'download failed' unless $?.success? end |
#exists?(path) ⇒ Boolean
Check whether a file exists on this datastore.
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/rbvmomi/vim/Datastore.rb', line 13 def exists? path req = Net::HTTP::Head.new mkuripath(path) req.initialize_http_header 'cookie' => _connection. resp = _connection.http.request req case resp when Net::HTTPSuccess true when Net::HTTPNotFound false else raise resp.inspect end end |
#upload(remote_path, local_path) ⇒ void
This method returns an undefined value.
Upload a file to this datastore.
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/rbvmomi/vim/Datastore.rb', line 46 def upload remote_path, local_path url = "http#{_connection.http.use_ssl? ? 's' : ''}://#{_connection.http.address}:#{_connection.http.port}#{mkuripath(remote_path)}" pid = spawn CURLBIN, '-k', '--noproxy', '*', '-f', '-T', local_path, '-b', _connection., url, out: '/dev/null' Process.waitpid(pid, 0) raise 'upload failed' unless $?.success? end |