core: BoxAdd adds the metadata URL

This commit is contained in:
Mitchell Hashimoto 2014-01-24 13:44:50 -08:00
parent bd9f375263
commit b81686e2c9
2 changed files with 35 additions and 16 deletions

View File

@ -100,6 +100,7 @@ module Vagrant
name,
"0",
provider,
nil,
env)
end
@ -201,7 +202,9 @@ module Vagrant
[metadata_provider.url],
metadata.name,
metadata_version.version,
metadata_provider.name, env)
metadata_provider.name,
url,
env)
end
=begin
@ -276,7 +279,7 @@ module Vagrant
# @param [String] provider
# @param [Hash] env
# @return [Box]
def box_add(urls, name, version, provider, env, **opts)
def box_add(urls, name, version, provider, md_url, env, **opts)
env[:ui].output(I18n.t(
"vagrant.box_add_with_version",
name: name,
@ -315,6 +318,7 @@ module Vagrant
box = env[:box_collection].add(
box_url, name, version,
force: env[:box_force],
metadata_url: md_url,
providers: provider)
ensure
# Make sure we delete the temporary file after we add it,

View File

@ -65,10 +65,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
env[:box_name] = "foo"
env[:box_url] = box_path.to_s
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo")
expect(version).to eq("0")
expect(opts[:metadata_url]).to be_nil
true
end.and_return(box)
@ -86,10 +87,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
box_path.to_s,
]
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo")
expect(version).to eq("0")
expect(opts[:metadata_url]).to be_nil
true
end.and_return(box)
@ -104,10 +106,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
env[:box_name] = "foo"
env[:box_url] = "http://127.0.0.1:#{port}/#{box_path.basename}"
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo")
expect(version).to eq("0")
expect(opts[:metadata_url]).to be_nil
true
end.and_return(box)
@ -154,10 +157,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
env[:box_provider] = "virtualbox"
box_collection.stub(find: box)
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo")
expect(version).to eq("0")
expect(opts[:metadata_url]).to be_nil
true
end.and_return(box)
app.should_receive(:call).with(env).once
@ -196,10 +200,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
with_web_server(md_path) do |port|
env[:box_url] = "http://127.0.0.1:#{port}/#{md_path.basename}"
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(name).to eq("foo/bar")
expect(version).to eq("0.7")
expect(checksum(path)).to eq(checksum(box_path))
expect(opts[:metadata_url]).to eq(env[:box_url])
true
end.and_return(box)
@ -237,18 +242,20 @@ describe Vagrant::Action::Builtin::BoxAdd do
end
with_web_server(tf.dirname) do |port|
url = "http://127.0.0.1:#{port}"
env[:box_url] = "mitchellh/precise64.json"
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(name).to eq("mitchellh/precise64")
expect(version).to eq("0.7")
expect(checksum(path)).to eq(checksum(box_path))
expect(opts[:metadata_url]).to eq(
"#{url}/#{env[:box_url]}")
true
end.and_return(box)
app.should_receive(:call).with(env)
url = "http://127.0.0.1:#{port}"
with_temp_env("VAGRANT_SERVER_URL" => url) do
subject.call(env)
end
@ -335,10 +342,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
end
env[:box_url] = tf.path
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo/bar")
expect(version).to eq("0.7")
expect(opts[:metadata_url]).to eq(tf.path)
true
end.and_return(box)
@ -378,10 +386,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
env[:box_url] = tf.path
env[:box_provider] = "vmware"
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo/bar")
expect(version).to eq("0.7")
expect(opts[:metadata_url]).to eq(tf.path)
true
end.and_return(box)
@ -426,10 +435,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
env[:box_url] = tf.path
env[:box_provider] = "vmware"
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo/bar")
expect(version).to eq("0.7")
expect(opts[:metadata_url]).to eq(tf.path)
true
end.and_return(box)
@ -465,10 +475,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
env[:box_url] = tf.path
env[:box_version] = "~> 0.1"
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo/bar")
expect(version).to eq("0.5")
expect(opts[:metadata_url]).to eq(tf.path)
true
end.and_return(box)
@ -509,10 +520,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
env[:box_url] = tf.path
env[:box_provider] = "vmware"
env[:box_version] = "~> 0.1"
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo/bar")
expect(version).to eq("0.5")
expect(opts[:metadata_url]).to eq(tf.path)
true
end.and_return(box)
@ -556,10 +568,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
env[:box_url] = tf.path
env[:box_provider] = ["virtualbox", "vmware"]
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo/bar")
expect(version).to eq("0.7")
expect(opts[:metadata_url]).to eq(tf.path)
true
end.and_return(box)
@ -603,10 +616,11 @@ describe Vagrant::Action::Builtin::BoxAdd do
env[:ui].should_receive(:ask).and_return("1")
box_collection.should_receive(:add).with do |path, name, version|
box_collection.should_receive(:add).with do |path, name, version, **opts|
expect(checksum(path)).to eq(checksum(box_path))
expect(name).to eq("foo/bar")
expect(version).to eq("0.7")
expect(opts[:metadata_url]).to eq(tf.path)
true
end.and_return(box)
@ -783,6 +797,7 @@ describe Vagrant::Action::Builtin::BoxAdd do
expect(name).to eq("foo/bar")
expect(version).to eq("0.7")
expect(opts[:force]).to be_true
expect(opts[:metadata_url]).to eq(tf.path)
true
end.and_return(box)