aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorudovichenko-r <rvu@ydb.tech>2023-09-26 22:57:27 +0300
committerudovichenko-r <rvu@ydb.tech>2023-09-26 23:15:44 +0300
commita99a9ca804b87eb23184d1a6b2072c01d65b86cf (patch)
tree2f09f6487c7f5d30af9bbf716637f4ce4a99df8b
parentc054ff0a31f330e59b73043e4f5e692de2202386 (diff)
downloadydb-a99a9ca804b87eb23184d1a6b2072c01d65b86cf.tar.gz
[yql] Activation by revision
YQL-16743
-rw-r--r--ydb/library/yql/providers/common/activation/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/library/yql/providers/common/activation/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/library/yql/providers/common/activation/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/library/yql/providers/common/activation/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/library/yql/providers/common/activation/ya.make1
-rw-r--r--ydb/library/yql/providers/common/activation/yql_activation.cpp13
-rw-r--r--ydb/library/yql/providers/common/proto/gateways_config.proto8
7 files changed, 21 insertions, 5 deletions
diff --git a/ydb/library/yql/providers/common/activation/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/activation/CMakeLists.darwin-x86_64.txt
index 0ce97d9f095..d274b16dd53 100644
--- a/ydb/library/yql/providers/common/activation/CMakeLists.darwin-x86_64.txt
+++ b/ydb/library/yql/providers/common/activation/CMakeLists.darwin-x86_64.txt
@@ -12,6 +12,7 @@ target_link_libraries(providers-common-activation PUBLIC
contrib-libs-cxxsupp
yutil
providers-common-proto
+ library-cpp-svnversion
)
target_sources(providers-common-activation PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/activation/yql_activation.cpp
diff --git a/ydb/library/yql/providers/common/activation/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/activation/CMakeLists.linux-aarch64.txt
index 8920b07dc68..32a0ad92fc1 100644
--- a/ydb/library/yql/providers/common/activation/CMakeLists.linux-aarch64.txt
+++ b/ydb/library/yql/providers/common/activation/CMakeLists.linux-aarch64.txt
@@ -13,6 +13,7 @@ target_link_libraries(providers-common-activation PUBLIC
contrib-libs-cxxsupp
yutil
providers-common-proto
+ library-cpp-svnversion
)
target_sources(providers-common-activation PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/activation/yql_activation.cpp
diff --git a/ydb/library/yql/providers/common/activation/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/activation/CMakeLists.linux-x86_64.txt
index 8920b07dc68..32a0ad92fc1 100644
--- a/ydb/library/yql/providers/common/activation/CMakeLists.linux-x86_64.txt
+++ b/ydb/library/yql/providers/common/activation/CMakeLists.linux-x86_64.txt
@@ -13,6 +13,7 @@ target_link_libraries(providers-common-activation PUBLIC
contrib-libs-cxxsupp
yutil
providers-common-proto
+ library-cpp-svnversion
)
target_sources(providers-common-activation PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/activation/yql_activation.cpp
diff --git a/ydb/library/yql/providers/common/activation/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/activation/CMakeLists.windows-x86_64.txt
index 0ce97d9f095..d274b16dd53 100644
--- a/ydb/library/yql/providers/common/activation/CMakeLists.windows-x86_64.txt
+++ b/ydb/library/yql/providers/common/activation/CMakeLists.windows-x86_64.txt
@@ -12,6 +12,7 @@ target_link_libraries(providers-common-activation PUBLIC
contrib-libs-cxxsupp
yutil
providers-common-proto
+ library-cpp-svnversion
)
target_sources(providers-common-activation PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/activation/yql_activation.cpp
diff --git a/ydb/library/yql/providers/common/activation/ya.make b/ydb/library/yql/providers/common/activation/ya.make
index 67807e9ac81..e83b6b5da1b 100644
--- a/ydb/library/yql/providers/common/activation/ya.make
+++ b/ydb/library/yql/providers/common/activation/ya.make
@@ -6,6 +6,7 @@ SRCS(
PEERDIR(
ydb/library/yql/providers/common/proto
+ library/cpp/svnversion
)
END()
diff --git a/ydb/library/yql/providers/common/activation/yql_activation.cpp b/ydb/library/yql/providers/common/activation/yql_activation.cpp
index 34f3c8667cb..2c99f681cfd 100644
--- a/ydb/library/yql/providers/common/activation/yql_activation.cpp
+++ b/ydb/library/yql/providers/common/activation/yql_activation.cpp
@@ -2,6 +2,8 @@
#include <ydb/library/yql/providers/common/proto/gateways_config.pb.h>
+#include <library/cpp/svnversion/svnversion.h>
+
#include <util/random/random.h>
#include <util/generic/algorithm.h>
#include <util/datetime/base.h>
@@ -14,13 +16,20 @@ ui32 GetPercentage(const TActivation& activation, const TString& userName, const
if (AnyOf(activation.GetIncludeUsers(), [&](const auto& user) { return user == userName; })) {
return 100;
}
- if (AnyOf(activation.GetIncludeGroups(), [&](const auto& includeGroup) { return groups.contains(includeGroup); })) {
+ if (!groups.empty() && AnyOf(activation.GetIncludeGroups(), [&](const auto& includeGroup) { return groups.contains(includeGroup); })) {
+ return 100;
+ }
+ const auto currentRev = GetProgramCommitId();
+ if (currentRev && AnyOf(activation.GetIncludeRevisions(), [&](const auto& rev) { return rev == currentRev; })) {
return 100;
}
if (AnyOf(activation.GetExcludeUsers(), [&](const auto& user) { return user == userName; })) {
return 0;
}
- if (AnyOf(activation.GetExcludeGroups(), [&](const auto& excludeGroup) { return groups.contains(excludeGroup); })) {
+ if (!groups.empty() && AnyOf(activation.GetExcludeGroups(), [&](const auto& excludeGroup) { return groups.contains(excludeGroup); })) {
+ return 0;
+ }
+ if (currentRev && AnyOf(activation.GetExcludeRevisions(), [&](const auto& rev) { return rev == currentRev; })) {
return 0;
}
if ((userName.StartsWith("robot-") || userName.StartsWith("zomb-")) && activation.GetExcludeRobots()) {
diff --git a/ydb/library/yql/providers/common/proto/gateways_config.proto b/ydb/library/yql/providers/common/proto/gateways_config.proto
index da85b6cf68e..8624809e4d6 100644
--- a/ydb/library/yql/providers/common/proto/gateways_config.proto
+++ b/ydb/library/yql/providers/common/proto/gateways_config.proto
@@ -22,6 +22,8 @@ message TActivationPercentage {
repeated string Tags = 6;
repeated string IncludeGroups = 7;
repeated string ExcludeGroups = 8;
+ repeated string IncludeRevisions = 9;
+ repeated string ExcludeRevisions = 10;
}
message TAttr {
@@ -559,7 +561,7 @@ message TGenericClusterConfig {
required NYql.NConnector.NApi.TCredentials Credentials = 10;
// Credentials used to access MDB API.
- // When working with data source instances deployed in a cloud,
+ // When working with data source instances deployed in a cloud,
// you should either set (ServiceAccountId, ServiceAccountIdSignature) pair,
// or set IAM Token.
// The names of these fields must satisfy this template function:
@@ -568,7 +570,7 @@ message TGenericClusterConfig {
optional string ServiceAccountIdSignature = 7;
optional string Token = 11;
- // If true, the generic provider will ask connector server to use secure connections
+ // If true, the generic provider will ask connector server to use secure connections
// to access remote data sources.
optional bool UseSsl = 12;
@@ -592,7 +594,7 @@ message TGenericConnectorConfig {
}
message TGenericGatewayConfig {
- // Connector service network endpoint
+ // Connector service network endpoint
// TODO: replace with map<DataSourceKind, TGenericConnectorConfig>
required TGenericConnectorConfig Connector = 5;