@@ -54,7 +54,7 @@ def resolve(session, name, ssl_context: nil, canceled_handler: nil)
54
54
end
55
55
56
56
# Return the first simple service status endpoint we can connect to
57
- @server_list_setting . value . each do |server |
57
+ @server_list_setting . value . each_with_index do |server , index |
58
58
host = server [ 0 ]
59
59
port = server [ 1 ] || @default_port
60
60
@@ -64,10 +64,21 @@ def resolve(session, name, ssl_context: nil, canceled_handler: nil)
64
64
@resolved_url = service . url
65
65
return Puppet ::HTTP ::Service . create_service ( @client , session , name , @resolved_url . host , @resolved_url . port )
66
66
rescue Puppet ::HTTP ::ResponseError => detail
67
- Puppet . log_exception ( detail , _ ( "Puppet server %{host}:%{port} is unavailable: %{code} %{reason}" ) %
68
- { host : service . url . host , port : service . url . port , code : detail . response . code , reason : detail . response . reason } )
67
+ if index < @server_list_setting . value . length - 1
68
+ Puppet . warning ( _ ( "Puppet server %{host}:%{port} is unavailable: %{code} %{reason}" ) %
69
+ { host : service . url . host , port : service . url . port , code : detail . response . code , reason : detail . response . reason } +
70
+ ' ' + _ ( "Trying with next server from server_list." ) )
71
+ else
72
+ Puppet . log_exception ( detail , _ ( "Puppet server %{host}:%{port} is unavailable: %{code} %{reason}" ) %
73
+ { host : service . url . host , port : service . url . port , code : detail . response . code , reason : detail . response . reason } )
74
+ end
69
75
rescue Puppet ::HTTP ::HTTPError => detail
70
- Puppet . log_exception ( detail , _ ( "Unable to connect to server from server_list setting: %{detail}" ) % { detail : detail } )
76
+ if index < @server_list_setting . value . length - 1
77
+ Puppet . warning ( _ ( "Unable to connect to server from server_list setting: %{detail}" ) % { detail : detail } +
78
+ ' ' + _ ( "Trying with next server from server_list." ) )
79
+ else
80
+ Puppet . log_exception ( detail , _ ( "Unable to connect to server from server_list setting: %{detail}" ) % { detail : detail } )
81
+ end
71
82
end
72
83
end
73
84
0 commit comments