Class: Nifty::TransferMethods::Opennebula::Cp

Inherits:
Nifty::TransferMethod show all
Defined in:
lib/nifty/transfer_methods/opennebula/cp.rb

Overview

Copy transfer method Copies file to the destination and clens it after the event is processed

Instance Attribute Summary

Attributes inherited from Nifty::TransferMethod

#destination

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Nifty::TransferMethod

#clean_original

Constructor Details

#initialize(destination) ⇒ Cp

Returns a new instance of Cp.



22
23
24
25
26
27
# File 'lib/nifty/transfer_methods/opennebula/cp.rb', line 22

def initialize(destination)
  fail Nifty::Errors::TransferMethods::DestinationNotDirectoryError, "Destination #{destination.inspect} is not a directory" unless (destination && File.directory?(destination))
  fail Nifty::Errors::TransferMethods::DestinationNotWritableError, "Destination directory #{destination.inspect} is not writable" unless File.writable?(destination)

  super(destination)
end

Class Method Details

.backendObject

See Also:

  • Nifty::TransferMethod#backend


16
17
18
# File 'lib/nifty/transfer_methods/opennebula/cp.rb', line 16

def backend
  Nifty::Backends::Opennebula
end

.descriptionObject

See Also:

  • Nifty::TransferMethod#description


11
12
13
# File 'lib/nifty/transfer_methods/opennebula/cp.rb', line 11

def description
  'Copy transfer method - copies images localy within one host'
end

.transfer_method?Boolean

Returns:

  • (Boolean)

See Also:

  • Nifty::TransferMethod#transfer_method?


6
7
8
# File 'lib/nifty/transfer_methods/opennebula/cp.rb', line 6

def transfer_method?
  true
end

Instance Method Details

#clean_copy(file) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/nifty/transfer_methods/opennebula/cp.rb', line 39

def clean_copy(file)
  df = destination_file file
  logger.debug("Deleting files #{df.inspect}")
  FileUtils.rm df
rescue SystemCallError => ex
  logger.warn("Cannot delete file #{df.inspect}, #{ex.message}")
end

#transfer(file) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/nifty/transfer_methods/opennebula/cp.rb', line 30

def transfer(file)
  super(file)

  logger.debug("Copying file #{file.inspect} to destination #{destination.inspect}")
  FileUtils.cp file, destination
  destination_file file
end