Fix SMB information generation when using net share

Adds the final line of output to tests and properly simulates
failure. Fix with type casting to prevent calling methods on
nil and drop the final entry as it's not valid.

Fixes #9806
This commit is contained in:
Chris Roberts 2018-06-11 12:58:35 -07:00
parent 4efec92643
commit ef5eca16d2
2 changed files with 4 additions and 2 deletions

View File

@ -38,7 +38,7 @@ module VagrantPlugins
m_id = machine_id(machine) m_id = machine_id(machine)
prune_shares = existing_shares.map do |share_name, share_info| prune_shares = existing_shares.map do |share_name, share_info|
if share_info["Description"].start_with?("vgt-#{m_id}-") if share_info["Description"].to_s.start_with?("vgt-#{m_id}-")
@@logger.info("removing smb share name=#{share_name} id=#{m_id}") @@logger.info("removing smb share name=#{share_name} id=#{m_id}")
share_name share_name
else else
@ -159,6 +159,8 @@ module VagrantPlugins
share_names = result.strip.split("\n").map do |line| share_names = result.strip.split("\n").map do |line|
line.strip.split(/\s+/).first line.strip.split(/\s+/).first
end end
# Last item is command completion notification so remove it
share_names.pop
shares = {} shares = {}
share_names.each do |share_name| share_names.each do |share_name|
shares[share_name] = {} shares[share_name] = {}

View File

@ -31,7 +31,7 @@ Share name Resource Remark
vgt-CUSTOM_ID-1 /a/path vgt-CUSTOM_ID-1 vgt-CUSTOM_ID-1 /a/path vgt-CUSTOM_ID-1
vgt-CUSTOM_ID-2 /other/path vgt-CUSTOM_ID-2 vgt-CUSTOM_ID-2 /other/path vgt-CUSTOM_ID-2
my-share /my/path Not Vagran... my-share /my/path Not Vagran...
The command completed successfully.
EOF EOF
} }
let(:netshare1){ <<-EOF let(:netshare1){ <<-EOF