Write meta-data as yaml

This commit is contained in:
Jeff Bonhag 2020-07-31 11:40:45 -04:00
parent c60d1f8565
commit db57af5bca
No known key found for this signature in database
GPG Key ID: 32966F3FB5AC1129
2 changed files with 11 additions and 5 deletions

View File

@ -20,7 +20,7 @@ module Vagrant
if !user_data_configs.empty?
user_data = setup_user_data(machine, env, user_data_configs)
meta_data = { "instance-id": "i-#{machine.id.split('-').join}" }
meta_data = { "instance-id" => "i-#{machine.id.split('-').join}" }
write_cfg_iso(machine, env, user_data, meta_data)
end
@ -97,7 +97,7 @@ module Vagrant
source_dir = Pathname.new(Dir.mktmpdir(TEMP_PREFIX))
File.open("#{source_dir}/user-data", 'w') { |file| file.write(user_data.to_s) }
File.open("#{source_dir}/meta-data", 'w') { |file| file.write(meta_data.to_s) }
File.open("#{source_dir}/meta-data", 'w') { |file| file.write(meta_data.to_yaml) }
iso_path = env[:env].host.capability(:create_iso,
source_dir, volume_id: "cidata")

View File

@ -25,7 +25,7 @@ describe Vagrant::Action::Builtin::CloudInitSetup do
let(:text_cfgs) { [MIME::Text.new("data: true", "cloud-config"),
MIME::Text.new("data: false", "cloud-config") ] }
let(:meta_data) { { "instance-id": "i-123456789" } }
let(:meta_data) { { "instance-id" => "i-123456789" } }
let(:subject) { described_class.new(app, env) }
@ -96,6 +96,11 @@ describe Vagrant::Action::Builtin::CloudInitSetup do
describe "#write_cfg_iso" do
let(:iso_path) { Pathname.new("fake/iso/path") }
let(:source_dir) { Pathname.new("fake/source/path") }
let(:meta_data_file) { double("meta_data_file") }
before do
allow(meta_data_file).to receive(:write).and_return(true)
end
it "raises an error if the host capability is not supported" do
message = subject.generate_cfg_msg(machine, text_cfgs)
@ -109,12 +114,13 @@ describe Vagrant::Action::Builtin::CloudInitSetup do
allow(host).to receive(:capability?).with(:create_iso).and_return(true)
allow(Dir).to receive(:mktmpdir).and_return(source_dir)
expect(File).to receive(:open).with("#{source_dir}/user-data", 'w').and_return(true)
expect(File).to receive(:open).with("#{source_dir}/meta-data", 'w').and_return(true)
expect(File).to receive(:open).with("#{source_dir}/meta-data", 'w').and_yield(meta_data_file)
expect(FileUtils).to receive(:remove_entry).with(source_dir).and_return(true)
allow(host).to receive(:capability).with(:create_iso, source_dir, volume_id: "cidata").and_return(iso_path)
expect(vm.disks).to receive(:each)
expect(meta_data).to receive(:to_yaml)
subject.write_cfg_iso(machine, env, message, {})
subject.write_cfg_iso(machine, env, message, meta_data)
end
end