@@ -19,8 +19,8 @@ void ValidateGenericConnectionSetting(
1919 issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " current iam authorization is disabled" ));
2020 }
2121
22- if (!connection.database_id () && !(connection. host () && connection. port ()) ) {
23- auto msg = TStringBuilder () << " content.setting." << dataSourceKind << " _cluster.{ database_id or host,port} field is not specified" ;
22+ if (!connection.database_id ()) {
23+ auto msg = TStringBuilder () << " content.setting." << dataSourceKind << " _cluster.database_id field is not specified" ;
2424 issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST,msg));
2525 }
2626
@@ -75,34 +75,11 @@ NYql::TIssues ValidateConnectionSetting(
7575 break ;
7676 }
7777 case FederatedQuery::ConnectionSetting::kGreenplumCluster : {
78- const FederatedQuery::GreenplumCluster& greenplumCluster = setting.greenplum_cluster ();
79-
80- if (!greenplumCluster.has_auth () || greenplumCluster.auth ().identity_case () == FederatedQuery::IamAuth::IDENTITY_NOT_SET) {
81- issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " content.setting.greenplum_database.auth field is not specified" ));
82- }
83-
84- if (greenplumCluster.auth ().identity_case () == FederatedQuery::IamAuth::kCurrentIam && disableCurrentIam) {
85- issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " current iam authorization is disabled" ));
86- }
87-
88- if (!greenplumCluster.database_id () && !greenplumCluster.database_name ()) {
89- issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " content.setting.greenplum_database.{database_id or database_name} field is not specified" ));
90- }
78+ ValidateGenericConnectionSetting (setting.greenplum_cluster (), " greenplum" , disableCurrentIam, passwordRequired, issues);
9179 break ;
9280 }
9381 case FederatedQuery::ConnectionSetting::kMysqlCluster : {
94- const FederatedQuery::MySQLCluster database = setting.mysql_cluster ();
95- if (!database.has_auth () || database.auth ().identity_case () == FederatedQuery::IamAuth::IDENTITY_NOT_SET) {
96- issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " content.setting.mysql_database.auth field is not specified" ));
97- }
98-
99- if (database.auth ().identity_case () == FederatedQuery::IamAuth::kCurrentIam && disableCurrentIam) {
100- issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " current iam authorization is disabled" ));
101- }
102-
103- if (!database.database_id () && !database.database_name ()) {
104- issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " content.setting.mysql_database.{database_id or database_name} field is not specified" ));
105- }
82+ ValidateGenericConnectionSetting (setting.mysql_cluster (), " mysql" , disableCurrentIam, passwordRequired, issues);
10683 break ;
10784 }
10885 case FederatedQuery::ConnectionSetting::kObjectStorage : {
@@ -154,6 +131,22 @@ NYql::TIssues ValidateConnectionSetting(
154131 }
155132 break ;
156133 }
134+ case FederatedQuery::ConnectionSetting::kLogging : {
135+ const FederatedQuery::Logging logging = setting.logging ();
136+ if (!logging.has_auth () || logging.auth ().identity_case () == FederatedQuery::IamAuth::IDENTITY_NOT_SET) {
137+ issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " content.setting.logging.auth field is not specified" ));
138+ }
139+
140+ if (logging.auth ().identity_case () == FederatedQuery::IamAuth::kCurrentIam && disableCurrentIam) {
141+ issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " current iam authorization is disabled" ));
142+ }
143+
144+ if (!logging.folder_id ()) {
145+ issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " content.setting.logging.folder_id field is not specified" ));
146+ }
147+
148+ break ;
149+ }
157150 case FederatedQuery::ConnectionSetting::CONNECTION_NOT_SET: {
158151 issues.AddIssue (MakeErrorIssue (TIssuesIds::BAD_REQUEST, " connection is not set" ));
159152 break ;
0 commit comments