35
35
import org .elasticsearch .cluster .metadata .RepositoryMetaData ;
36
36
import org .elasticsearch .common .Strings ;
37
37
import org .elasticsearch .common .collect .MapBuilder ;
38
- import org .elasticsearch .common .collect .Tuple ;
39
38
import org .elasticsearch .common .settings .Settings ;
40
39
41
40
import java .io .Closeable ;
@@ -60,7 +59,7 @@ class S3Service implements Closeable {
60
59
* Client settings derived from those in {@link #staticClientSettings} by combining them with settings
61
60
* in the {@link RepositoryMetaData} and {@link Settings} from the clusterstate.
62
61
*/
63
- private volatile Map <S3ClientSettings , Map <Tuple < RepositoryMetaData , Settings > , S3ClientSettings >> derivedClientSettings = emptyMap ();
62
+ private volatile Map <S3ClientSettings , Map <RepositoryMetaData , S3ClientSettings >> derivedClientSettings = emptyMap ();
64
63
65
64
/**
66
65
* Refreshes the settings for the AmazonS3 clients and clears the cache of
@@ -82,8 +81,8 @@ public synchronized void refreshAndClearCache(Map<String, S3ClientSettings> clie
82
81
* Attempts to retrieve a client by its repository metadata and settings from the cache.
83
82
* If the client does not exist it will be created.
84
83
*/
85
- public AmazonS3Reference client (Tuple < RepositoryMetaData , Settings > settings ) {
86
- final S3ClientSettings clientSettings = settings (settings );
84
+ public AmazonS3Reference client (RepositoryMetaData repositoryMetaData ) {
85
+ final S3ClientSettings clientSettings = settings (repositoryMetaData );
87
86
{
88
87
final AmazonS3Reference clientReference = clientsCache .get (clientSettings );
89
88
if (clientReference != null && clientReference .tryIncRef ()) {
@@ -103,34 +102,31 @@ public AmazonS3Reference client(Tuple<RepositoryMetaData, Settings> settings) {
103
102
}
104
103
105
104
/**
106
- * Either fetches {@link S3ClientSettings} for a given combination of {@link RepositoryMetaData} and {@link Settings}
107
- * from cached settings or creates them by overriding static client settings from {@link #staticClientSettings}
108
- * with settings found in repository metadata and the settings.
109
- * @param coordinates Tuple of {@link RepositoryMetaData} and {@link Settings}
105
+ * Either fetches {@link S3ClientSettings} for a givne {@link RepositoryMetaData} from cached settings or creates them
106
+ * by overriding static client settings from {@link #staticClientSettings} with settings found in the repository metadata.
107
+ * @param repositoryMetaData Repository Metadata
110
108
* @return S3ClientSettings
111
109
*/
112
- private S3ClientSettings settings (Tuple <RepositoryMetaData , Settings > coordinates ) {
113
- final RepositoryMetaData repositoryMetaData = coordinates .v1 ();
110
+ private S3ClientSettings settings (RepositoryMetaData repositoryMetaData ) {
114
111
final String clientName = S3Repository .CLIENT_NAME .get (repositoryMetaData .settings ());
115
112
final S3ClientSettings staticSettings = staticClientSettings .get (clientName );
116
113
if (staticSettings != null ) {
117
114
{
118
- final S3ClientSettings existing = derivedClientSettings .getOrDefault (staticSettings , emptyMap ()).get (coordinates );
115
+ final S3ClientSettings existing = derivedClientSettings .getOrDefault (staticSettings , emptyMap ()).get (repositoryMetaData );
119
116
if (existing != null ) {
120
117
return existing ;
121
118
}
122
119
}
123
- final Settings settings = coordinates .v2 ();
124
120
synchronized (this ) {
125
- final Map <Tuple < RepositoryMetaData , Settings > , S3ClientSettings > derivedSettings =
121
+ final Map <RepositoryMetaData , S3ClientSettings > derivedSettings =
126
122
derivedClientSettings .getOrDefault (staticSettings , emptyMap ());
127
- final S3ClientSettings existing = derivedSettings .get (coordinates );
123
+ final S3ClientSettings existing = derivedSettings .get (repositoryMetaData );
128
124
if (existing != null ) {
129
125
return existing ;
130
126
}
131
- final S3ClientSettings newSettings = staticSettings .refine (repositoryMetaData , settings );
127
+ final S3ClientSettings newSettings = staticSettings .refine (repositoryMetaData );
132
128
derivedClientSettings = MapBuilder .newMapBuilder (derivedClientSettings ).put (
133
- staticSettings , MapBuilder .newMapBuilder (derivedSettings ).put (coordinates , newSettings ).immutableMap ()
129
+ staticSettings , MapBuilder .newMapBuilder (derivedSettings ).put (repositoryMetaData , newSettings ).immutableMap ()
134
130
).immutableMap ();
135
131
return newSettings ;
136
132
}
0 commit comments