@@ -81,6 +81,17 @@ void FillS3ClusterConfig(NYql::TS3ClusterConfig& clusterConfig,
81
81
FillClusterAuth (clusterConfig, s3.auth (), authToken, accountIdSignatures);
82
82
}
83
83
84
+ std::pair<TString, bool > ParseHttpEndpoint (const TString& endpoint) {
85
+ TStringBuf scheme;
86
+ TStringBuf host;
87
+ TStringBuf uri;
88
+ NHttp::CrackURL (endpoint, scheme, host, uri);
89
+
90
+ // by default useSsl is true
91
+ // explicit "http://" scheme should disable ssl usage
92
+ return std::make_pair (ToString (host), scheme != " http" );
93
+ }
94
+
84
95
std::pair<TString, TIpPort> ParseGrpcEndpoint (const TString& endpoint) {
85
96
TStringBuf scheme;
86
97
TStringBuf address;
@@ -97,21 +108,18 @@ std::pair<TString, TIpPort> ParseGrpcEndpoint(const TString& endpoint) {
97
108
void FillSolomonClusterConfig (NYql::TSolomonClusterConfig& clusterConfig,
98
109
const TString& name,
99
110
const TString& authToken,
100
- const TString& httpEndpoint,
101
- const TString& grpcEndpoint,
111
+ const TString& endpoint,
102
112
const THashMap<TString, TString>& accountIdSignatures,
103
113
const FederatedQuery::Monitoring& monitoring) {
104
114
clusterConfig.SetName (name);
105
115
106
- clusterConfig.SetCluster (httpEndpoint);
116
+ auto [address, useSsl] = ParseHttpEndpoint (endpoint);
117
+
118
+ clusterConfig.SetCluster (address);
107
119
clusterConfig.SetClusterType (TSolomonClusterConfig::SCT_MONITORING);
108
120
clusterConfig.MutablePath ()->SetProject (monitoring.project ());
109
121
clusterConfig.MutablePath ()->SetCluster (monitoring.cluster ());
110
- clusterConfig.SetUseSsl (true );
111
-
112
- auto grpcSetting = clusterConfig.MutableSettings ()->Add ();
113
- grpcSetting->set_name (" grpc_location" );
114
- grpcSetting->set_value (grpcEndpoint);
122
+ clusterConfig.SetUseSsl (useSsl);
115
123
116
124
FillClusterAuth (clusterConfig, monitoring.auth (), authToken, accountIdSignatures);
117
125
}
@@ -215,22 +223,20 @@ NYql::TS3ClusterConfig CreateS3ClusterConfig(const TString& name,
215
223
216
224
NYql::TSolomonClusterConfig CreateSolomonClusterConfig (const TString& name,
217
225
const TString& authToken,
218
- const TString& httpEndpoint,
219
- const TString& grpcEndpoint,
226
+ const TString& monitoringEndpoint,
220
227
const TString& accountSignature,
221
228
const FederatedQuery::Monitoring& monitoring) {
222
229
NYql::TSolomonClusterConfig cluster;
223
230
THashMap<TString, TString> accountIdSignatures;
224
231
accountIdSignatures[monitoring.auth ().service_account ().id ()] = accountSignature;
225
- FillSolomonClusterConfig (cluster, name, authToken, httpEndpoint, grpcEndpoint , accountIdSignatures, monitoring);
232
+ FillSolomonClusterConfig (cluster, name, authToken, monitoringEndpoint , accountIdSignatures, monitoring);
226
233
return cluster;
227
234
}
228
235
229
236
void AddClustersFromConnections (
230
237
const NConfig::TCommonConfig& common,
231
238
const THashMap<TString, FederatedQuery::Connection>& connections,
232
- const TString& monitoringHttpEndpoint,
233
- const TString& monitoringGrpcEndpoint,
239
+ const TString& monitoringEndpoint,
234
240
const TString& authToken,
235
241
const THashMap<TString, TString>& accountIdSignatures,
236
242
TGatewaysConfig& gatewaysConfig,
@@ -290,7 +296,7 @@ void AddClustersFromConnections(
290
296
case FederatedQuery::ConnectionSetting::kMonitoring : {
291
297
const auto & monitoring = conn.content ().setting ().monitoring ();
292
298
auto * clusterCfg = gatewaysConfig.MutableSolomon ()->AddClusterMapping ();
293
- FillSolomonClusterConfig (*clusterCfg, connectionName, authToken, monitoringHttpEndpoint, monitoringGrpcEndpoint , accountIdSignatures, monitoring);
299
+ FillSolomonClusterConfig (*clusterCfg, connectionName, authToken, monitoringEndpoint , accountIdSignatures, monitoring);
294
300
clusters.emplace (connectionName, SolomonProviderName);
295
301
break ;
296
302
}
0 commit comments