From 2d1a82bcf08ca598fa087949c4f05400b0ad77b3 Mon Sep 17 00:00:00 2001 From: Tobias dpausp Date: Sun, 24 Jan 2021 23:59:00 +0000 Subject: [PATCH] Fix network config for recent NixOS releases The old config style doesn't build anymore on the current release NixOS 20.09. It stopped working some releases ago. --- templates/guests/nixos/network.erb | 11 ++++---- .../templates/guests/nixos/network_test.rb | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 test/unit/templates/guests/nixos/network_test.rb diff --git a/templates/guests/nixos/network.erb b/templates/guests/nixos/network.erb index f919fab90..9fb88b308 100644 --- a/templates/guests/nixos/network.erb +++ b/templates/guests/nixos/network.erb @@ -1,16 +1,15 @@ { config, pkgs, ... }: { - networking.interfaces = [ + networking.interfaces = { <% networks.select {|n| n[:device]}.each do |network| %> - { - name = "<%= network[:device] %>"; + <%= network[:device] %>.ipv4.addresses = [{ <% if network[:type] == :static %> - ipAddress = "<%= network[:ip] %>"; + address = "<%= network[:ip] %>"; <% end %> <% if network[:prefix_length] %> prefixLength = <%= network[:prefix_length] %>; <% end %> - } + }]; <% end %> - ]; + }; } diff --git a/test/unit/templates/guests/nixos/network_test.rb b/test/unit/templates/guests/nixos/network_test.rb new file mode 100644 index 000000000..f2536f900 --- /dev/null +++ b/test/unit/templates/guests/nixos/network_test.rb @@ -0,0 +1,27 @@ +require_relative "../../../base" + +require "vagrant/util/template_renderer" + +describe "templates/guests/nixos/network" do + let(:template) { "guests/nixos/network" } + + it "renders the template" do + result = Vagrant::Util::TemplateRenderer.render(template, networks: [{ + device: "en0", + ip: "1.1.1.1", + prefix_length: "24", + type: :static, + }]) + expect(result).to eq <<-EOH.gsub(/^ {6}/, "") + { config, pkgs, ... }: + { + networking.interfaces = { + en0.ipv4.addresses = [{ + address = "1.1.1.1"; + prefixLength = 24; + }]; + }; + } + EOH + end +end