class Nifty::TransferMethods::Opennebula::Cp

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

Public Class Methods

backend() click to toggle source

@see Nifty::TransferMethod#backend

# File lib/nifty/transfer_methods/opennebula/cp.rb, line 16
def backend
  Nifty::Backends::Opennebula
end
description() click to toggle source

@see Nifty::TransferMethod#description

# File lib/nifty/transfer_methods/opennebula/cp.rb, line 11
def description
  'Copy transfer method - copies images localy within one host'
end
new(destination, options={}) click to toggle source

@see Nifty::TransferMethod#initialize

Calls superclass method Nifty::TransferMethod::new
# File lib/nifty/transfer_methods/opennebula/cp.rb, line 22
def initialize(destination, options={})
  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
transfer_method?() click to toggle source

@see Nifty::TransferMethod#transfer_method?

# File lib/nifty/transfer_methods/opennebula/cp.rb, line 6
def transfer_method?
  true
end

Public Instance Methods

clean_copy(file) click to toggle source

@see Nifty::TransferMethod#clean_copy

# 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) click to toggle source

@see Nifty::TransferMethod#transfer

Calls superclass method Nifty::TransferMethod#transfer
# 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

Private Instance Methods

destination_file(file) click to toggle source
# File lib/nifty/transfer_methods/opennebula/cp.rb, line 49
def destination_file(file)
  File.join(destination, File.basename(file))
end