Remove custom tempfile class
This is not actually providing any additional utility and also causes namespace conflicts with people trying to use the real Tempfile class.
This commit is contained in:
parent
f2c769dd4f
commit
7014aa3bab
|
@ -9,7 +9,6 @@ module Vagrant
|
|||
autoload :SafeExec, 'vagrant/util/safe_exec'
|
||||
autoload :StackedProcRunner, 'vagrant/util/stacked_proc_runner'
|
||||
autoload :TemplateRenderer, 'vagrant/util/template_renderer'
|
||||
autoload :Tempfile, 'vagrant/util/tempfile'
|
||||
autoload :Subprocess, 'vagrant/util/subprocess'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
require "tempfile"
|
||||
|
||||
module Vagrant
|
||||
module Util
|
||||
class Tempfile
|
||||
# Utility function for creating a temporary file that will persist for
|
||||
# the duration of the block and then be removed after the block finishes.
|
||||
#
|
||||
# @example
|
||||
#
|
||||
# Tempfile.create("arch-configure-networks") do |f|
|
||||
# f.write("network-1")
|
||||
# f.fsync
|
||||
# f.close
|
||||
# do_something_with_file(f.path)
|
||||
# end
|
||||
#
|
||||
# @example
|
||||
#
|
||||
# Tempfile.create(["runner", "ps1"]) do |f|
|
||||
# # f will have a suffix of ".ps1"
|
||||
# # ...
|
||||
# end
|
||||
#
|
||||
# @param [String, Array] name the prefix of the tempfile to create
|
||||
# @param [Hash] options a list of options
|
||||
# @param [Proc] block the block to yield the file object to
|
||||
#
|
||||
# @yield [File]
|
||||
def self.create(name, options = {})
|
||||
raise "No block given!" if !block_given?
|
||||
|
||||
options = {
|
||||
binmode: true
|
||||
}.merge(options)
|
||||
|
||||
# The user can specify an array where the first parameter is the prefix
|
||||
# and the last parameter is the file suffix. We want to prefix the
|
||||
# "prefix" with `vagrant-`, and this does that
|
||||
if name.is_a?(Array)
|
||||
basename = ["vagrant-#{name[0]}", name[1]]
|
||||
else
|
||||
basename = "vagrant-#{name}"
|
||||
end
|
||||
|
||||
Dir::Tmpname.create(basename) do |path|
|
||||
begin
|
||||
f = File.open(path, "w+")
|
||||
f.binmode if options[:binmode]
|
||||
yield f
|
||||
ensure
|
||||
File.unlink(f.path) if File.file?(f.path)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,11 +1,10 @@
|
|||
require "timeout"
|
||||
|
||||
require "log4r"
|
||||
require "tempfile"
|
||||
require "timeout"
|
||||
|
||||
require_relative "helper"
|
||||
require_relative "shell"
|
||||
require_relative "command_filter"
|
||||
require_relative "../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module CommunicatorWinRM
|
||||
|
@ -205,7 +204,8 @@ module VagrantPlugins
|
|||
interactive: interactive,
|
||||
})
|
||||
guest_script_path = "c:/tmp/vagrant-elevated-shell.ps1"
|
||||
Tempfile.create(["vagrant-elevated-shell", "ps1"]) do |f|
|
||||
Tempfile.open(["vagrant-elevated-shell", "ps1"]) do |f|
|
||||
f.binmode
|
||||
f.write(script)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestArch
|
||||
|
@ -24,7 +25,8 @@ module VagrantPlugins
|
|||
|
||||
remote_path = "/tmp/vagrant-network-#{Time.now.to_i}-#{i}"
|
||||
|
||||
Tempfile.create("arch-configure-networks") do |f|
|
||||
Tempfile.open("arch-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestCoreOS
|
||||
|
@ -53,7 +54,8 @@ module VagrantPlugins
|
|||
})
|
||||
end
|
||||
|
||||
Tempfile.create("coreos-configure-networks") do |f|
|
||||
Tempfile.open("coreos-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require "set"
|
||||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestDebian
|
||||
|
@ -31,7 +31,8 @@ module VagrantPlugins
|
|||
|
||||
# Perform the careful dance necessary to reconfigure the network
|
||||
# interfaces.
|
||||
Tempfile.create("debian-configure-networks") do |f|
|
||||
Tempfile.open("debian-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entries.join("\n"))
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
require "set"
|
||||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/retryable"
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestFedora
|
||||
|
@ -96,7 +96,8 @@ module VagrantPlugins
|
|||
entry = TemplateRenderer.render("guests/fedora/network_#{network[:type]}",
|
||||
options: network)
|
||||
|
||||
Tempfile.create("fedora-configure-networks") do |f|
|
||||
Tempfile.open("fedora-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestFreeBSD
|
||||
|
@ -28,7 +29,8 @@ module VagrantPlugins
|
|||
entry = TemplateRenderer.render("guests/freebsd/network_#{network[:type]}",
|
||||
options: network, ifname: ifname)
|
||||
|
||||
Tempfile.create("freebsd-configure-networks") do |f|
|
||||
Tempfile.open("freebsd-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestFuntoo
|
||||
|
@ -24,7 +25,8 @@ module VagrantPlugins
|
|||
options: network)
|
||||
|
||||
# Upload the entry to a temporary location
|
||||
Tempfile.create("funtoo-configure-networks") do |f|
|
||||
Tempfile.open("funtoo-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestGentoo
|
||||
|
@ -20,7 +21,8 @@ module VagrantPlugins
|
|||
options: network)
|
||||
|
||||
# Upload the entry to a temporary location
|
||||
Tempfile.create("gentoo-configure-networks") do |f|
|
||||
Tempfile.open("gentoo-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestNetBSD
|
||||
|
@ -19,7 +20,8 @@ module VagrantPlugins
|
|||
entry = TemplateRenderer.render("guests/netbsd/network_#{network[:type]}",
|
||||
options: network)
|
||||
|
||||
Tempfile.create("netbsd-configure-networks") do |f|
|
||||
Tempfile.open("netbsd-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestNixos
|
||||
|
@ -17,7 +18,8 @@ module VagrantPlugins
|
|||
def self.upload(machine, content, remote_path)
|
||||
remote_temp = mktemp(machine)
|
||||
|
||||
Tempfile.create("nixos-change-host-name") do |f|
|
||||
Tempfile.open("nixos-change-host-name") do |f|
|
||||
f.binmode
|
||||
f.write(content)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require "ipaddr"
|
||||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestNixos
|
||||
|
@ -67,7 +67,8 @@ module VagrantPlugins
|
|||
def self.upload(machine, content, remote_path)
|
||||
remote_temp = mktemp(machine)
|
||||
|
||||
Tempfile.create("nixos-configure-networks") do |f|
|
||||
Tempfile.open("nixos-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(content)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestOpenBSD
|
||||
|
@ -12,7 +13,8 @@ module VagrantPlugins
|
|||
entry = TemplateRenderer.render("guests/openbsd/network_#{network[:type]}",
|
||||
options: network)
|
||||
|
||||
Tempfile.create("openbsd-configure-networks") do |f|
|
||||
Tempfile.open("openbsd-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
require "set"
|
||||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/retryable"
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestRedHat
|
||||
|
@ -55,7 +55,8 @@ module VagrantPlugins
|
|||
entry = TemplateRenderer.render("guests/redhat/network_#{network[:type]}",
|
||||
options: network)
|
||||
|
||||
Tempfile.create("red-hat-configure-networks") do |f|
|
||||
Tempfile.open("red-hat-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestSlackware
|
||||
|
@ -19,7 +20,8 @@ module VagrantPlugins
|
|||
|
||||
entry = TemplateRenderer.render("guests/slackware/network_#{network[:type]}", options: network)
|
||||
|
||||
Tempfile.create("slackware-configure-networks") do |f|
|
||||
Tempfile.open("slackware-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
require "set"
|
||||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/retryable"
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module GuestSUSE
|
||||
|
@ -33,7 +33,8 @@ module VagrantPlugins
|
|||
entry = TemplateRenderer.render("guests/suse/network_#{network[:type]}",
|
||||
options: network)
|
||||
|
||||
Tempfile.create("suse-configure-networks") do |f|
|
||||
Tempfile.open("suse-configure-networks") do |f|
|
||||
f.binmode
|
||||
f.write(entry)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require "tempfile"
|
||||
|
||||
require_relative "base"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module Ansible
|
||||
|
@ -106,7 +107,8 @@ module VagrantPlugins
|
|||
create_and_chown_remote_folder(inventory_basedir)
|
||||
@machine.communicate.sudo("rm -f #{inventory_path}", error_check: false)
|
||||
|
||||
Tempfile.create("ansible-local-inventory-#{@machine.name}") do |f|
|
||||
Tempfile.open("ansible-local-inventory-#{@machine.name}") do |f|
|
||||
f.binmode
|
||||
f.write(inventory_content)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
require "tempfile"
|
||||
|
||||
require_relative "../../../../lib/vagrant/util/presence"
|
||||
require_relative "../../../../lib/vagrant/util/template_renderer"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
require_relative "../installer"
|
||||
|
||||
|
@ -141,7 +142,8 @@ module VagrantPlugins
|
|||
# Create a temporary file to store the data so we can upload it.
|
||||
remote_file = File.join(guest_provisioning_path, filename)
|
||||
@machine.communicate.sudo(remove_command(remote_file), error_check: false)
|
||||
Tempfile.create("chef-provisioner-config") do |f|
|
||||
Tempfile.open("chef-provisioner-config") do |f|
|
||||
f.binmode
|
||||
f.write(config_file)
|
||||
f.fsync
|
||||
f.close
|
||||
|
@ -161,7 +163,8 @@ module VagrantPlugins
|
|||
# Create a temporary file to store the data so we can upload it.
|
||||
remote_file = File.join(guest_provisioning_path, "dna.json")
|
||||
@machine.communicate.sudo(remove_command(remote_file), error_check: false)
|
||||
Tempfile.create("chef-provisioner-config") do |f|
|
||||
Tempfile.open("chef-provisioner-config") do |f|
|
||||
f.binmode
|
||||
f.write(json)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require "digest/md5"
|
||||
require "tempfile"
|
||||
|
||||
require_relative "base"
|
||||
require_relative "../../../../lib/vagrant/util/tempfile"
|
||||
|
||||
module VagrantPlugins
|
||||
module Chef
|
||||
|
@ -55,7 +55,8 @@ module VagrantPlugins
|
|||
# machine.
|
||||
def upload_recipe
|
||||
# Write the raw recipe contents to a tempfile and upload
|
||||
Tempfile.create(["chef-apply", ".rb"]) do |f|
|
||||
Tempfile.open(["chef-apply", ".rb"]) do |f|
|
||||
f.binmode
|
||||
f.write(config.recipe)
|
||||
f.fsync
|
||||
f.close
|
||||
|
|
|
@ -39,12 +39,8 @@ describe Vagrant::BoxCollection, :skip_windows do
|
|||
end
|
||||
|
||||
it 'does not raise an exception when a file appears in the boxes dir' do
|
||||
t = Tempfile.new('a_file', environment.boxes_dir)
|
||||
t.close
|
||||
begin
|
||||
Tempfile.open('a_file', environment.boxes_dir) do
|
||||
expect { subject.all }.to_not raise_error
|
||||
ensure
|
||||
t.unlink
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -348,8 +344,9 @@ describe Vagrant::BoxCollection, :skip_windows do
|
|||
CHECKSUM_OFFSET = 148
|
||||
CHECKSUM_LENGTH = 8
|
||||
|
||||
f = Tempfile.new(['vagrant_testing', '.tar'])
|
||||
begin
|
||||
Tempfile.open(['vagrant_testing', '.tar']) do |f|
|
||||
f.binmode
|
||||
|
||||
# Corrupt the tar by writing over the checksum field
|
||||
f.seek(CHECKSUM_OFFSET)
|
||||
f.write("\0"*CHECKSUM_LENGTH)
|
||||
|
@ -357,9 +354,6 @@ describe Vagrant::BoxCollection, :skip_windows do
|
|||
|
||||
expect { subject.add(f.path, "foo", "1.0") }.
|
||||
to raise_error(Vagrant::Errors::BoxUnpackageFailure)
|
||||
ensure
|
||||
f.close
|
||||
f.unlink
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue