Class: Chef::Provider::RemoteFile::NetworkFile
- Inherits:
-
Object
- Object
- Chef::Provider::RemoteFile::NetworkFile
- Includes:
- Mixin::UserContext
- Defined in:
- lib/chef/provider/remote_file/network_file.rb
Constant Summary collapse
- TRANSFER_CHUNK_SIZE =
1048576
Instance Attribute Summary collapse
-
#new_resource ⇒ Object
readonly
Returns the value of attribute new_resource.
Instance Method Summary collapse
-
#fetch ⇒ Object
Fetches the file on a network share, returning a Tempfile-like File handle windows only.
-
#initialize(source, new_resource, current_resource) ⇒ NetworkFile
constructor
A new instance of NetworkFile.
Constructor Details
#initialize(source, new_resource, current_resource) ⇒ NetworkFile
Returns a new instance of NetworkFile.
34 35 36 37 |
# File 'lib/chef/provider/remote_file/network_file.rb', line 34 def initialize(source, new_resource, current_resource) @new_resource = new_resource @source = source end |
Instance Attribute Details
#new_resource ⇒ Object (readonly)
Returns the value of attribute new_resource.
30 31 32 |
# File 'lib/chef/provider/remote_file/network_file.rb', line 30 def new_resource @new_resource end |
Instance Method Details
#fetch ⇒ Object
Fetches the file on a network share, returning a Tempfile-like File handle windows only
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/chef/provider/remote_file/network_file.rb', line 41 def fetch begin tempfile = Chef::FileContentManagement::Tempfile.new(new_resource).tempfile Chef::Log.trace("#{new_resource} staging #{@source} to #{tempfile.path}") with_user_context(new_resource.remote_user, new_resource.remote_password, new_resource.remote_domain, new_resource.authentication) do ::File.open(@source, "rb") do |remote_file| while data = remote_file.read(TRANSFER_CHUNK_SIZE) tempfile.write(data) end end end ensure tempfile.close if tempfile end tempfile end |