From 1b414d3d9e2a4fdbb8a06fddf4bdeae6a7744ed2 Mon Sep 17 00:00:00 2001 From: Seth Vargo Date: Sun, 29 May 2016 00:18:33 -0400 Subject: [PATCH] That file has to exist --- lib/vagrant/box.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/vagrant/box.rb b/lib/vagrant/box.rb index a6d6aa737..cd839ee91 100644 --- a/lib/vagrant/box.rb +++ b/lib/vagrant/box.rb @@ -118,7 +118,8 @@ module Vagrant # @param [Hash] download_options Options to pass to the downloader. # @return [BoxMetadata] def load_metadata(**download_options) - path = Dir::Tmpname.create("vagrant-load-metadata") {} + tf = Tempfile.new("vagrant-load-metadata") + tf.close url = @metadata_url if File.file?(url) || url !~ /^[a-z0-9]+:.*$/i @@ -128,13 +129,13 @@ module Vagrant end opts = { headers: ["Accept: application/json"] }.merge(download_options) - Util::Downloader.new(url, path, **opts).download! - BoxMetadata.new(File.open(path, "r")) + Util::Downloader.new(url, tf.path, **opts).download! + BoxMetadata.new(File.open(tf.path, "r")) rescue Errors::DownloaderError => e raise Errors::BoxMetadataDownloadError, message: e.extra_data[:message] ensure - File.unlink(path) if File.file?(path) + tf.unlink if tf end # Checks if the box has an update and returns the metadata, version,