class Kitchen::Driver::SSHBase
Public Instance Methods
converge(state)
click to toggle source
ChefZeroNodes needs to access to legacy_ssh_base_converge method used by some drivers like kithen-vz. This method add additional command after chef_client run complete.
@param state [Hash] mutable instance state @raise [ActionFailed] if the action could not be completed
# File lib/kitchen/provisioner/chef_zero_nodes.rb, line 41 def converge(state) provisioner = instance.provisioner provisioner.create_sandbox sandbox_dirs = Util.list_directory(provisioner.sandbox_path) instance.transport.connection(backcompat_merged_state(state)) do |conn| conn.execute(env_cmd(provisioner.install_command)) conn.execute(env_cmd(provisioner.init_command)) info("Transferring files to #{instance.to_str}") conn.upload(sandbox_dirs, provisioner[:root_path]) debug('Transfer complete') conn.execute(env_cmd(provisioner.prepare_command)) conn.execute(env_cmd(provisioner.run_command)) # Change perms for node json object, by default it has 600 perms int_node_file = windows_os? ? provisioner.win_int_node_file : provisioner.unix_int_node_file info("Change permissions for #{int_node_file}") conn.execute(env_cmd("sudo chmod +r #{int_node_file}")) # Download node json object generated by chef_client info("Transferring #{int_node_file} " \ "from instance to #{provisioner.ext_node_file}") conn.execute(env_cmd(conn.download(int_node_file, provisioner.ext_node_file))) debug('Transfer complete') end rescue Kitchen::Transport::TransportFailed => ex raise ActionFailed, ex.message ensure instance.provisioner.cleanup_sandbox end