diff --git a/Rakefile b/Rakefile
index ca601027e8f239a13c5da3478cc30a6f34e92d90..974567ef287de1e00eec6b9254aa081f7bfb1e7e 100644
--- a/Rakefile
+++ b/Rakefile
@@ -229,7 +229,8 @@ namespace :gen do
 
   namespace :puppet do
 
-    all_puppet_tasks = [:bindg5k, :conmang5k, :dhcpg5k, :kadeployg5k, :lanpowerg5k, :kavlang5k, :kwollectg5k, :network_monitoring, :'refapi-subset', :oxidizedg5k, :'oarsub-simplifier-aliases', :kavlanngg5k, :stitcherg5k, :clusters, :webfish]
+    base_puppet_tasks = [:bindg5k, :conmang5k, :dhcpg5k, :kadeployg5k, :lanpowerg5k, :'refapi-subset', :'oarsub-simplifier-aliases', :clusters ]
+    all_puppet_tasks = base_puppet_tasks + [ :kavlang5k, :kwollectg5k, :network_monitoring, :oxidizedg5k, :kavlanngg5k, :stitcherg5k, :webfish]
 
     all_puppet_tasks.each { |t|
       generated_desc = (t == :'refapi-subset') ? 'description' : 'configuration'
@@ -255,6 +256,9 @@ namespace :gen do
       end
     }
 
+    desc "Launch base puppet generators (#{base_puppet_tasks.map { |e| e.to_s }.join(',')})"
+    task :base => base_puppet_tasks
+
     desc "Launch all puppet generators"
     task :all => all_puppet_tasks
 
diff --git a/lib/refrepo/input_loader.rb b/lib/refrepo/input_loader.rb
index 9bece2da4aab1517fa51049b5bf178ed2e27ddb9..3d6906a964aa5c70c109d5ec533e7bde02e095d3 100644
--- a/lib/refrepo/input_loader.rb
+++ b/lib/refrepo/input_loader.rb
@@ -388,6 +388,7 @@ def add_switch_port(h)
     site.fetch('clusters', {}).each_pair do |_cluster_uid, hc|
       hc['nodes'].each_pair do |node_uid, hn|
         next if hn['status'] == 'retired'
+        raise "#{node_uid} has no network interfaces!" if hn['network_adapters'].nil?
         hn['network_adapters'].each_pair do |iface_uid, iface|
           if (iface['mounted'] or iface['mountable']) and not iface['management'] and iface['interface'] =~ /(fpga|Ethernet)/
             switch, swport = net_switch_port_lookup(site, node_uid, iface_uid) || net_switch_port_lookup(site, node_uid)