lib/chef_metal/machine/basic_machine.rb in chef-metal-0.14.2 vs lib/chef_metal/machine/basic_machine.rb in chef-metal-0.15
- old
+ new
@@ -1,82 +2 @@
-require 'chef_metal/machine'
-
-module ChefMetal
- class Machine
- class BasicMachine < Machine
- def initialize(machine_spec, transport, convergence_strategy)
- super(machine_spec)
- @transport = transport
- @convergence_strategy = convergence_strategy
- end
-
- attr_reader :transport
- attr_reader :convergence_strategy
-
- def setup_convergence(action_handler)
- convergence_strategy.setup_convergence(action_handler, self)
- end
-
- def converge(action_handler)
- convergence_strategy.converge(action_handler, self)
- end
-
- def cleanup_convergence(action_handler)
- convergence_strategy.cleanup_convergence(action_handler, machine_spec)
- end
-
- def execute(action_handler, command, options = {})
- action_handler.perform_action "run '#{command}' on #{machine_spec.name}" do
- result = transport.execute(command, options)
- result.error!
- result
- end
- end
-
- def execute_always(command, options = {})
- transport.execute(command, options)
- end
-
- def read_file(path)
- transport.read_file(path)
- end
-
- def download_file(action_handler, path, local_path)
- if files_different?(path, local_path)
- action_handler.perform_action "download file #{path} on #{machine_spec.name} to #{local_path}" do
- transport.download_file(path, local_path)
- end
- end
- end
-
- def write_file(action_handler, path, content, options = {})
- if files_different?(path, nil, content)
- if options[:ensure_dir]
- create_dir(action_handler, dirname_on_machine(path))
- end
- action_handler.perform_action "write file #{path} on #{machine_spec.name}" do
- transport.write_file(path, content)
- end
- end
- end
-
- def upload_file(action_handler, local_path, path, options = {})
- if files_different?(path, local_path)
- if options[:ensure_dir]
- create_dir(action_handler, dirname_on_machine(path))
- end
- action_handler.perform_action "upload file #{local_path} to #{path} on #{machine_spec.name}" do
- transport.upload_file(local_path, path)
- end
- end
- end
-
- def make_url_available_to_remote(local_url)
- transport.make_url_available_to_remote(local_url)
- end
-
- def disconnect
- transport.disconnect
- end
- end
- end
-end
+require "chef/provisioning/machine/basic_machine"