diff --git a/lib/kadeploy3/client/client.rb b/lib/kadeploy3/client/client.rb index 6a06c7d6118e81dae4af5b3392cb628b32a0a9d4..be11525e84e478f1c4a822339fd0daf0ac96cd66 100644 --- a/lib/kadeploy3/client/client.rb +++ b/lib/kadeploy3/client/client.rb @@ -831,6 +831,7 @@ class Client # Sort nodes from the list by server (if multiserver option is specified) nodes = nil if options[:multi_server] + default_arch = [] options[:servers].each_pair do |server, inf| next if server.downcase == 'default' inf[3] = get_auth_headers_prefix(inf[0], inf[1], inf[2]) unless inf[3] @@ -846,6 +847,7 @@ class Client treated += nodes end $clients << self.new(server, inf[0], inf[1], inf[2], inf[3], nodes) + default_arch += get_nodearch(info[0], info[1], info[2], info[3], nodes).values unless nodes.nil? break if options[:nodes] and treated.sort == options[:nodes].sort end else @@ -863,6 +865,7 @@ class Client end end end + default_arch = get_nodearch(info[0], info[1], info[2], info[3], nodes).values unless nodes.nil? $clients << self.new(nil, info[0], info[1], info[2], info[3], nodes) end options[:server_auth_http_prefix] = options[:servers][options[:chosen_server]][3] @@ -871,7 +874,7 @@ class Client error("The nodes #{(options[:nodes] - treated).join(", ")} does not belongs to any server") if options[:nodes] and treated.sort != options[:nodes].sort unless options[:env_arch] || nodes.nil? - default_arch = get_nodearch(info[0], info[1], info[2], info[3], nodes).values.uniq + default_arch.uniq! error("All nodes do not have a same default architecture. You must give the architecture to use with --env-arch") if default_arch.count != 1 options[:env_arch] = default_arch.first end