class Nucleon::Action::Node::Upload

Public Class Methods

describe() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/upload.rb
10 def self.describe
11   super(:node, :upload, 500)
12 end

Public Instance Methods

arguments() click to toggle source
   # File lib/nucleon/action/node/upload.rb
53 def arguments
54   [ :local_path, :remote_path, :upload_nodes ]
55 end
configure() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/upload.rb
17 def configure
18   super do
19     register_str :local_path, nil
20     register_str :remote_path, nil
21     register_str :file_mode, '0755'
22 
23     register_bool :progress, true
24 
25     register_array :upload_nodes, nil do |values|
26       if values.nil?
27         warn('upload_nodes_empty')
28         next false
29       end
30 
31       node_plugins = CORL.loaded_plugins(:CORL, :node)
32       success      = true
33 
34       values.each do |value|
35         if info = CORL.plugin_class(:CORL, :node).translate_reference(value)
36           if ! node_plugins.keys.include?(info[:provider].to_sym) || info[:name].empty?
37             warn('upload_nodes', { :value => value, :node_provider => info[:provider],  :name => info[:name] })
38             success = false
39           end
40         end
41       end
42       success
43     end
44   end
45 end
execute() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/upload.rb
60 def execute
61   super do |local_node|
62     ensure_network do
63       batch_success = network.batch(settings[:upload_nodes], settings[:node_provider], settings[:parallel]) do |node|
64         render_options = { :id => node.id, :hostname => node.hostname, :local_path => settings[:local_path], :remote_path => settings[:remote_path] }
65 
66         info('start', render_options)
67         success = node.send_files(settings[:local_path], settings[:remote_path], nil, settings[:file_mode], { :progress => settings[:progress] })
68 
69         if success
70           success('complete', render_options)
71         else
72           error('failure', render_options)
73         end
74         success
75       end
76       myself.status = code.batch_error unless batch_success
77     end
78   end
79 end
ignore() click to toggle source
   # File lib/nucleon/action/node/upload.rb
49 def ignore
50   [ :nodes ]
51 end