diff --git a/generators/input-validators/schema-site.yaml b/generators/input-validators/schema-site.yaml index 3c58fd8e575080e286063672100265174c6391de..789dcd07c4ebed05f93aba661d10ac985f9bd42a 100644 --- a/generators/input-validators/schema-site.yaml +++ b/generators/input-validators/schema-site.yaml @@ -1,6 +1,6 @@ --- -clusters: required_hash -networks: required_hash +clusters: optional_hash +networks: optional_hash servers: <optional_hash>: <multi>: diff --git a/generators/puppet/bindg5k.rb b/generators/puppet/bindg5k.rb index 5aa027f05bb1c9d3b36e08d2da301afb14c05b6e..de8172161b8a2a04f22751bc732c30e0eb0a3c98 100644 --- a/generators/puppet/bindg5k.rb +++ b/generators/puppet/bindg5k.rb @@ -21,7 +21,7 @@ input_data_dir = "../../input/grid5000/" refapi = load_yaml_file_hierarchy(File.expand_path(input_data_dir, File.dirname(__FILE__))) $options = {} -$options[:sites] = %w{grenoble lille luxembourg lyon nancy nantes rennes sophia} +$options[:sites] = %w{grenoble lille luxembourg lyon nancy nantes rennes sophia toulouse} $options[:output_dir] = "/tmp/puppet" $options[:verbose] = false @@ -388,7 +388,7 @@ def set_zone_header_records(zone, site) zone.mx = DNS::Zone::RR::MX.new zone.mx.priority = 10 zone.mx.exchange = "mail.#{zone.site_uid}.grid5000.fr." - if (File.basename(zone.file_path) == "#{zone.site_uid}.db") + if (File.basename(zone.file_path) == "#{zone.site_uid}.db" && site['frontend_ip']) zone.at = DNS::Zone::RR::A.new zone.at.address = site['frontend_ip'] end @@ -494,7 +494,7 @@ refapi["sites"].each { |site_uid, site| site_records['networks'] = get_networks_records(site, 'networks') unless site['networks'].nil? site_records['laptops'] = get_networks_records(site, 'laptops') unless site['laptops'].nil? - site.fetch("clusters").sort.each { |cluster_uid, cluster| + site.fetch("clusters", []).sort.each { |cluster_uid, cluster| cluster.fetch('nodes').select { |node_uid, node| node != nil && node["status"] != "retired" && node.has_key?('network_adapters') diff --git a/generators/puppet/templates/kavlan-dhcp.conf.erb b/generators/puppet/templates/kavlan-dhcp.conf.erb index 927c48c97406c68ad1bd26c41e91f73fffcda76c..ca8fddf9de3251db84a5fab9079fdb99c14a5a18 100644 --- a/generators/puppet/templates/kavlan-dhcp.conf.erb +++ b/generators/puppet/templates/kavlan-dhcp.conf.erb @@ -30,7 +30,7 @@ subnet <%= kavlan_ip.network.to_addr %> netmask <%= kavlan_ip.netmask.to_addr %> <% refapi['sites'].sort.to_h.each_key do |site| next if kavlan_id.to_i.between?(1, 9) and site != site_uid - refapi['sites'][site]['clusters'].sort.to_h.each do |cluster_uid, cluster| + refapi['sites'][site].fetch('clusters', []).sort.to_h.each do |cluster_uid, cluster| cluster['nodes'].sort.to_h.each do |node_uid, node| next if node['status'] and node['status'] == 'retired' node['network_adapters'].each do |interface_uid, interface| diff --git a/generators/reference-api/reference-api.rb b/generators/reference-api/reference-api.rb index f6c9fe864184e145585bab5e9dbef07120e34240..291e81a00dd21a0fab720bc839610793b653a610 100644 --- a/generators/reference-api/reference-api.rb +++ b/generators/reference-api/reference-api.rb @@ -185,11 +185,11 @@ global_hash["sites"].each do |site_uid, site| # Write network info # - site["networks"].sort.each do |network_uid, network| + site.fetch("networks", []).sort.each do |network_uid, network| create_network_equipment(network_uid, network, refapi_path, site_uid) end - site["clusters"].sort.each do |cluster_uid, cluster| + site.fetch("clusters", []).sort.each do |cluster_uid, cluster| puts " #{cluster_uid}" #