From 3b4901a5b58cafb758b70947a2d18828145dc1fd Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Mon, 31 Jul 2017 14:23:50 -0700 Subject: [PATCH] Split compose links if string values --- plugins/providers/docker/driver/compose.rb | 9 ++++++++- .../plugins/providers/docker/driver_compose_test.rb | 13 ++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/plugins/providers/docker/driver/compose.rb b/plugins/providers/docker/driver/compose.rb index 506188765..deb77034e 100644 --- a/plugins/providers/docker/driver/compose.rb +++ b/plugins/providers/docker/driver/compose.rb @@ -83,7 +83,14 @@ module VagrantPlugins # need to worry about uniqueness with compose name = machine.name.to_s image = params.fetch(:image) - links = params.fetch(:links) + links = Array(params.fetch(:links, [])).map do |link| + case link + when Array + link + else + link.to_s.split(":") + end + end ports = Array(params[:ports]) volumes = Array(params[:volumes]).map do |v| v = v.to_s diff --git a/test/unit/plugins/providers/docker/driver_compose_test.rb b/test/unit/plugins/providers/docker/driver_compose_test.rb index fa1cada06..cb70ffc71 100644 --- a/test/unit/plugins/providers/docker/driver_compose_test.rb +++ b/test/unit/plugins/providers/docker/driver_compose_test.rb @@ -82,11 +82,22 @@ describe VagrantPlugins::DockerProvider::Driver::Compose do expect(docker_yml).to receive(:write).with(/#{params[:volumes]}/) end + context 'when links are provided as strings' do + before{ params[:links] = ["linkl1:linkr1", "linkl2:linkr2"] } + + it 'links containers' do + params[:links].flatten.map{|l| l.split(':')}.each do |link| + expect(docker_yml).to receive(:write).with(/#{link}/) + end + subject.create(params) + end + end + it 'links containers' do params[:links].each do |link| expect(docker_yml).to receive(:write).with(/#{link}/) - subject.create(params) end + subject.create(params) end it 'sets environmental variables' do