X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/76e42f169c6e278c1d8cefe9fb7c03cc70892bac..27daf08f38eec505c224e7776678b32d50241e13:/services/api/app/models/node.rb diff --git a/services/api/app/models/node.rb b/services/api/app/models/node.rb index 1cd6387cff..abb46fdc66 100644 --- a/services/api/app/models/node.rb +++ b/services/api/app/models/node.rb @@ -94,7 +94,7 @@ class Node < ArvadosModel end end - # Assign hostname + # Assign slot_number if self.slot_number.nil? try_slot = 0 begin @@ -107,6 +107,10 @@ class Node < ArvadosModel end raise "No available node slots" if try_slot == Rails.configuration.max_compute_nodes end while true + end + + # Assign hostname + if self.hostname.nil? and Rails.configuration.assign_node_hostname self.hostname = self.class.hostname_for_slot(self.slot_number) end @@ -205,12 +209,16 @@ class Node < ArvadosModel end def self.hostname_for_slot(slot_number) - "compute#{slot_number}" + config = Rails.configuration.assign_node_hostname + + return nil if !config + + sprintf(config, {:slot_number => slot_number}) end # At startup, make sure all DNS entries exist. Otherwise, slurmctld # will refuse to start. - if Rails.configuration.dns_server_conf_dir and Rails.configuration.dns_server_conf_template + if Rails.configuration.dns_server_conf_dir and Rails.configuration.dns_server_conf_template and Rails.configuration.assign_node_hostname (0..Rails.configuration.max_compute_nodes-1).each do |slot_number| hostname = hostname_for_slot(slot_number) hostfile = File.join Rails.configuration.dns_server_conf_dir, "#{hostname}.conf"