Class: Bolt::Transport::SSH::Connection::RemoteTempdir

Inherits:
Object
  • Object
show all
Defined in:
lib/bolt/transport/ssh/connection.rb

Instance Method Summary collapse

Constructor Details

#initialize(node, path) ⇒ RemoteTempdir

Returns a new instance of RemoteTempdir.



11
12
13
14
15
16
# File 'lib/bolt/transport/ssh/connection.rb', line 11

def initialize(node, path)
  @node = node
  @owner = node.user
  @path = path
  @logger = node.logger
end

Instance Method Details

#chown(owner) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/bolt/transport/ssh/connection.rb', line 22

def chown(owner)
  return if owner.nil? || owner == @owner

  @owner = owner
  result = @node.execute(['chown', '-R', "#{@owner}:", @path], sudoable: true, run_as: 'root')
  if result.exit_code != 0
    message = "Could not change owner of '#{@path}' to #{@owner}: #{result.stderr.string}"
    raise Bolt::Node::FileError.new(message, 'CHOWN_ERROR')
  end
end

#deleteObject



33
34
35
36
37
38
# File 'lib/bolt/transport/ssh/connection.rb', line 33

def delete
  result = @node.execute(['rm', '-rf', @path], sudoable: true, run_as: @owner)
  if result.exit_code != 0
    @logger.warn("Failed to clean up tempdir '#{@path}': #{result.stderr.string}")
  end
end

#to_sObject



18
19
20
# File 'lib/bolt/transport/ssh/connection.rb', line 18

def to_s
  @path
end