This is an automated email from the ASF dual-hosted git repository.

laiyingchun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new ebcd29575 [multi-tenancy] standardize the use of tenant's api
ebcd29575 is described below

commit ebcd295752a52f35744302fd1081edd705e35fc0
Author: kedeng <[email protected]>
AuthorDate: Tue Jul 4 17:32:05 2023 +0800

    [multi-tenancy] standardize the use of tenant's api
    
    In order to standardize the use of tenants, in this patch,
    I changed the defining parameter of multiple tenant-related
    APIs from the tenant name to the tenant ID. In the future,
    the update of tenant names will be supported and modification
    of tenant IDs will be prohibited.
    
    Since there are no logical changes involved, no new unit tests
    have been added.
    
    Change-Id: I5d8c09668456bc1147d8e269ecaa8e616798d2c7
    Reviewed-on: http://gerrit.cloudera.org:8080/20157
    Reviewed-by: Yingchun Lai <[email protected]>
    Tested-by: Yingchun Lai <[email protected]>
---
 src/kudu/fs/fs_manager.cc                      | 48 +++++++++++++-------------
 src/kudu/fs/fs_manager.h                       | 28 +++++++--------
 src/kudu/mini-cluster/external_mini_cluster.cc |  4 +--
 src/kudu/mini-cluster/external_mini_cluster.h  |  4 +--
 src/kudu/tools/kudu-tool-test.cc               | 18 +++++-----
 src/kudu/tools/tool_action_common.cc           |  4 ++-
 src/kudu/tools/tool_action_fs.cc               |  5 ++-
 7 files changed, 56 insertions(+), 55 deletions(-)

diff --git a/src/kudu/fs/fs_manager.cc b/src/kudu/fs/fs_manager.cc
index 1efe2ce43..7a8ef5983 100644
--- a/src/kudu/fs/fs_manager.cc
+++ b/src/kudu/fs/fs_manager.cc
@@ -943,15 +943,15 @@ bool FsManager::is_tenants_exist() const {
   return metadata_->tenants_size() > 0;
 }
 
-bool FsManager::is_tenant_exist(const string& tenant_name) const {
-  return GetTenant(tenant_name) != nullptr;
+bool FsManager::is_tenant_exist(const string& tenant_id) const {
+  return GetTenant(tenant_id) != nullptr;
 }
 
 const InstanceMetadataPB_TenantMetadataPB* FsManager::GetTenantUnlock(
-    const string& tenant_name) const {
+    const string& tenant_id) const {
   const InstanceMetadataPB::TenantMetadataPB* tenant = nullptr;
   for (const auto& tdata : metadata_->tenants()) {
-    if (tdata.tenant_name() == tenant_name) {
+    if (tdata.tenant_id() == tenant_id) {
       tenant = &tdata;
       break;
     }
@@ -961,48 +961,48 @@ const InstanceMetadataPB_TenantMetadataPB* 
FsManager::GetTenantUnlock(
 }
 
 const InstanceMetadataPB_TenantMetadataPB* FsManager::GetTenant(
-    const string& tenant_name) const {
+    const string& tenant_id) const {
   shared_lock<rw_spinlock> md_lock(metadata_rwlock_.get_lock());
-  return GetTenantUnlock(tenant_name);
+  return GetTenantUnlock(tenant_id);
 }
 
-string FsManager::tenant_id_unlock(const string& tenant_name) const {
-  const InstanceMetadataPB::TenantMetadataPB* tenant = 
GetTenantUnlock(tenant_name);
-  return tenant ? tenant->tenant_id() : string("");
+string FsManager::tenant_name_unlock(const string& tenant_id) const {
+  const InstanceMetadataPB::TenantMetadataPB* tenant = 
GetTenantUnlock(tenant_id);
+  return tenant ? tenant->tenant_name() : string("");
 }
 
-string FsManager::tenant_id(const string& tenant_name) const {
-  const InstanceMetadataPB::TenantMetadataPB* tenant = GetTenant(tenant_name);
-  return tenant ? tenant->tenant_id() : string("");
+string FsManager::tenant_name(const string& tenant_id) const {
+  const InstanceMetadataPB::TenantMetadataPB* tenant = GetTenant(tenant_id);
+  return tenant ? tenant->tenant_name() : string("");
 }
 
-string FsManager::tenant_key_unlock(const string& tenant_name) const {
-  const InstanceMetadataPB::TenantMetadataPB* tenant = 
GetTenantUnlock(tenant_name);
+string FsManager::tenant_key_unlock(const string& tenant_id) const {
+  const InstanceMetadataPB::TenantMetadataPB* tenant = 
GetTenantUnlock(tenant_id);
   return tenant ? tenant->tenant_key() : string("");
 }
 
-string FsManager::tenant_key(const string& tenant_name) const {
-  const InstanceMetadataPB::TenantMetadataPB* tenant = GetTenant(tenant_name);
+string FsManager::tenant_key(const string& tenant_id) const {
+  const InstanceMetadataPB::TenantMetadataPB* tenant = GetTenant(tenant_id);
   return tenant ? tenant->tenant_key() : string("");
 }
 
-string FsManager::tenant_key_iv_unlock(const string& tenant_name) const {
-  const InstanceMetadataPB::TenantMetadataPB* tenant = 
GetTenantUnlock(tenant_name);
+string FsManager::tenant_key_iv_unlock(const string& tenant_id) const {
+  const InstanceMetadataPB::TenantMetadataPB* tenant = 
GetTenantUnlock(tenant_id);
   return tenant ? tenant->tenant_key_iv() : string("");
 }
 
-string FsManager::tenant_key_iv(const string& tenant_name) const {
-  const InstanceMetadataPB::TenantMetadataPB* tenant = GetTenant(tenant_name);
+string FsManager::tenant_key_iv(const string& tenant_id) const {
+  const InstanceMetadataPB::TenantMetadataPB* tenant = GetTenant(tenant_id);
   return tenant ? tenant->tenant_key_iv() : string("");
 }
 
-string FsManager::tenant_key_version_unlock(const string& tenant_name) const {
-  const InstanceMetadataPB::TenantMetadataPB* tenant = 
GetTenantUnlock(tenant_name);
+string FsManager::tenant_key_version_unlock(const string& tenant_id) const {
+  const InstanceMetadataPB::TenantMetadataPB* tenant = 
GetTenantUnlock(tenant_id);
   return tenant ? tenant->tenant_key_version() : string("");
 }
 
-string FsManager::tenant_key_version(const string& tenant_name) const {
-  const InstanceMetadataPB::TenantMetadataPB* tenant = GetTenant(tenant_name);
+string FsManager::tenant_key_version(const string& tenant_id) const {
+  const InstanceMetadataPB::TenantMetadataPB* tenant = GetTenant(tenant_id);
   return tenant ? tenant->tenant_key_version() : string("");
 }
 
diff --git a/src/kudu/fs/fs_manager.h b/src/kudu/fs/fs_manager.h
index 3313d7d19..40dd40c95 100644
--- a/src/kudu/fs/fs_manager.h
+++ b/src/kudu/fs/fs_manager.h
@@ -326,29 +326,29 @@ class FsManager {
   bool is_tenants_exist() const;
 
   // Use to get the existence of the specific tenant.
-  bool is_tenant_exist(const std::string& tenant_name) const;
+  bool is_tenant_exist(const std::string& tenant_id) const;
 
-  // Return the initialization uuid for the tenant.
+  // Return the initialization name for the tenant.
   // If PartialOpen() or Open() have not been called, this will
   // crash. If the tenant does not exist, it returns an empty string.
-  std::string tenant_id(const std::string& tenant_name = 
fs::kDefaultTenantName) const;
+  std::string tenant_name(const std::string& tenant_id = fs::kDefaultTenantID) 
const;
 
   // Return the tenant key persisted on the local filesystem corresponding to 
the
-  // tenant_name. After the tenant key is decrypted, it can be used to 
encrypt/decrypt
+  // tenant_id. After the tenant key is decrypted, it can be used to 
encrypt/decrypt
   // file keys on the filesystem. If PartialOpen() or Open() have not been 
called, this
   // will crash. If the tenant does not exist, it returns an empty string.
-  std::string tenant_key(const std::string& tenant_name = 
fs::kDefaultTenantName) const;
+  std::string tenant_key(const std::string& tenant_id = fs::kDefaultTenantID) 
const;
 
   // Return the initialization vector for the tenant key.
   // If PartialOpen() or Open() have not been called, this will
   // crash. If the tenant does not exist, it returns an empty string.
-  std::string tenant_key_iv(const std::string& tenant_name = 
fs::kDefaultTenantName) const;
+  std::string tenant_key_iv(const std::string& tenant_id = 
fs::kDefaultTenantID) const;
 
   // Return the version of the tenant key.
   // If PartialOpen() or Open() have not been called, this will
   // crash. If the tenant does not exist, it returns an empty string.
   std::string tenant_key_version(
-      const std::string& tenant_name = fs::kDefaultTenantName) const;
+      const std::string& tenant_id = fs::kDefaultTenantID) const;
 
   // Return the server key persisted on the local filesystem.
   //
@@ -442,28 +442,28 @@ class FsManager {
   Status UpdateMetadata(
     std::unique_ptr<InstanceMetadataPB> metadata);
 
-  // Search tenant for metadata by tenant name.
-  const InstanceMetadataPB_TenantMetadataPB* GetTenant(const std::string& 
tenant_name) const;
+  // Search tenant for metadata by tenant id.
+  const InstanceMetadataPB_TenantMetadataPB* GetTenant(const std::string& 
tenant_id) const;
   // Except that the caller must hold metadata_rwlock_.
-  const InstanceMetadataPB_TenantMetadataPB* GetTenantUnlock(const 
std::string& tenant_name) const;
+  const InstanceMetadataPB_TenantMetadataPB* GetTenantUnlock(const 
std::string& tenant_id) const;
 
   // Return the tenant id persisted on the local filesystem.
   // Except that the caller must hold metadata_rwlock_.
-  std::string tenant_id_unlock(const std::string& tenant_name = 
fs::kDefaultTenantName) const;
+  std::string tenant_name_unlock(const std::string& tenant_id = 
fs::kDefaultTenantID) const;
 
   // Return the tenant key persisted on the local filesystem.
   // Except that the caller must hold metadata_rwlock_.
-  std::string tenant_key_unlock(const std::string& tenant_name = 
fs::kDefaultTenantName) const;
+  std::string tenant_key_unlock(const std::string& tenant_id = 
fs::kDefaultTenantID) const;
 
   // Return the initialization vector for the tenant key unlock.
   // Except that the caller must hold metadata_rwlock_.
   std::string tenant_key_iv_unlock(
-      const std::string& tenant_name = fs::kDefaultTenantName) const;
+      const std::string& tenant_id = fs::kDefaultTenantID) const;
 
   // Return the version of the tenant key unlock.
   // Except that the caller must hold metadata_rwlock_.
   std::string tenant_key_version_unlock(
-      const std::string& tenant_name = fs::kDefaultTenantName) const;
+      const std::string& tenant_id = fs::kDefaultTenantID) const;
 
   // Use for update the format and the stamp in the metadata.
   // If you need to ensure call security, you must lock it by yourself.
diff --git a/src/kudu/mini-cluster/external_mini_cluster.cc 
b/src/kudu/mini-cluster/external_mini_cluster.cc
index b863ff7e6..19e4efd58 100644
--- a/src/kudu/mini-cluster/external_mini_cluster.cc
+++ b/src/kudu/mini-cluster/external_mini_cluster.cc
@@ -1374,7 +1374,7 @@ Env* ExternalDaemon::env() const {
   return Env::Default();
 }
 
-Status ExternalDaemon::SetEncryptionKey(const string& tenant_name) {
+Status ExternalDaemon::SetEncryptionKey(const string& tenant_id) {
   string path = JoinPathSegments(this->wal_dir(), "instance");;
   LOG(INFO) << "Reading " << path;
   InstanceMetadataPB instance;
@@ -1383,7 +1383,7 @@ Status ExternalDaemon::SetEncryptionKey(const string& 
tenant_name) {
   if (!instance.tenants().empty()) {
     const InstanceMetadataPB::TenantMetadataPB* tenant = nullptr;
     for (const auto& tdata : instance.tenants()) {
-      if (tdata.tenant_name() == tenant_name) {
+      if (tdata.tenant_id() == tenant_id) {
         tenant = &tdata;
         break;
       }
diff --git a/src/kudu/mini-cluster/external_mini_cluster.h 
b/src/kudu/mini-cluster/external_mini_cluster.h
index 90dcccafe..73020e1a9 100644
--- a/src/kudu/mini-cluster/external_mini_cluster.h
+++ b/src/kudu/mini-cluster/external_mini_cluster.h
@@ -667,7 +667,7 @@ struct ExternalDaemonOptions {
   std::string ranger_cluster_key;
 };
 
-static const std::string kDefaultTenantName = "default_tenant_kudu";
+static const std::string kDefaultTenantID = "00000000000000000000000000000000";
 
 class ExternalDaemon : public RefCountedThreadSafe<ExternalDaemon> {
  public:
@@ -724,7 +724,7 @@ class ExternalDaemon : public 
RefCountedThreadSafe<ExternalDaemon> {
                         const std::string& principal_base,
                         const std::string& bind_host);
 
-  Status SetEncryptionKey(const std::string& tenant_name = kDefaultTenantName);
+  Status SetEncryptionKey(const std::string& tenant_id = kDefaultTenantID);
 
   // Sends a SIGSTOP signal to the daemon.
   Status Pause() WARN_UNUSED_RESULT;
diff --git a/src/kudu/tools/kudu-tool-test.cc b/src/kudu/tools/kudu-tool-test.cc
index ddcac9dbe..03a3541f7 100644
--- a/src/kudu/tools/kudu-tool-test.cc
+++ b/src/kudu/tools/kudu-tool-test.cc
@@ -8133,17 +8133,17 @@ TEST_F(ToolTest, 
TestFsUpgradeEncryptionKeyFromServerKeyInfoAndFromTenantKeyInfo
     FsManager* fs_manager = mts->server()->fs_manager();
     // The default tenant key info corresponds to the previous server key 
information.
     ASSERT_TRUE(fs_manager->is_tenants_exist());
-    ASSERT_TRUE(fs_manager->is_tenant_exist(fs::kDefaultTenantName));
+    ASSERT_TRUE(fs_manager->is_tenant_exist(fs::kDefaultTenantID));
     // Make sure there is only one tenant exist.
     ASSERT_EQ(1, fs_manager->tenants_count());
-    ASSERT_FALSE(fs_manager->tenant_id(fs::kDefaultTenantName).empty());
-    ASSERT_EQ(fs::kDefaultTenantID, 
fs_manager->tenant_id(fs::kDefaultTenantName));
-    ASSERT_FALSE(fs_manager->tenant_key(fs::kDefaultTenantName).empty());
-    ASSERT_EQ(source_key, fs_manager->tenant_key(fs::kDefaultTenantName));
-    ASSERT_FALSE(fs_manager->tenant_key_iv(fs::kDefaultTenantName).empty());
-    ASSERT_EQ(source_key_iv, 
fs_manager->tenant_key_iv(fs::kDefaultTenantName));
-    
ASSERT_FALSE(fs_manager->tenant_key_version(fs::kDefaultTenantName).empty());
-    ASSERT_EQ(source_key_version, 
fs_manager->tenant_key_version(fs::kDefaultTenantName));
+    ASSERT_FALSE(fs_manager->tenant_name(fs::kDefaultTenantID).empty());
+    ASSERT_EQ(fs::kDefaultTenantName, 
fs_manager->tenant_name(fs::kDefaultTenantID));
+    ASSERT_FALSE(fs_manager->tenant_key(fs::kDefaultTenantID).empty());
+    ASSERT_EQ(source_key, fs_manager->tenant_key(fs::kDefaultTenantID));
+    ASSERT_FALSE(fs_manager->tenant_key_iv(fs::kDefaultTenantID).empty());
+    ASSERT_EQ(source_key_iv, fs_manager->tenant_key_iv(fs::kDefaultTenantID));
+    ASSERT_FALSE(fs_manager->tenant_key_version(fs::kDefaultTenantID).empty());
+    ASSERT_EQ(source_key_version, 
fs_manager->tenant_key_version(fs::kDefaultTenantID));
 
     // There is no server key in the metadata.
     ASSERT_TRUE(fs_manager->server_key().empty());
diff --git a/src/kudu/tools/tool_action_common.cc 
b/src/kudu/tools/tool_action_common.cc
index de08344ed..31d39f3c4 100644
--- a/src/kudu/tools/tool_action_common.cc
+++ b/src/kudu/tools/tool_action_common.cc
@@ -194,6 +194,8 @@ DECLARE_string(encryption_cluster_key_name);
 
 DEFINE_string(tenant_name, "",
               "The encrypted tenant name to use in the filesystem.");
+DEFINE_string(tenant_id, "",
+              "The encrypted tenant id to use in the filesystem.");
 
 bool ValidateTimeoutSettings() {
   if (FLAGS_timeout_ms < FLAGS_negotiation_timeout_ms) {
@@ -1006,7 +1008,7 @@ Status SetEncryptionKey() {
   } else {
     InstanceMetadataPB::TenantMetadataPB tenant;
     for (const auto& tdata : instance.tenants()) {
-      if (tdata.tenant_name() == FLAGS_tenant_name) {
+      if (tdata.tenant_id() == FLAGS_tenant_id) {
         tenant.CopyFrom(tdata);
         break;
       }
diff --git a/src/kudu/tools/tool_action_fs.cc b/src/kudu/tools/tool_action_fs.cc
index b0900ec85..bc500848e 100644
--- a/src/kudu/tools/tool_action_fs.cc
+++ b/src/kudu/tools/tool_action_fs.cc
@@ -108,9 +108,8 @@ GROUP_FLAG_VALIDATOR(server_key_set_together, 
ServerKeySetTogether);
 
 DECLARE_string(encryption_key_type);
 DECLARE_string(tenant_name);
+DECLARE_string(tenant_id);
 
-DEFINE_string(tenant_id, "",
-              "The encrypted tenant id to use in the filesystem.");
 DEFINE_string(tenant_key, "",
               "The encrypted tenant key to use in the filesystem.");
 DEFINE_string(tenant_key_iv, "",
@@ -332,7 +331,7 @@ Status Format(const RunnerContext& /*context*/) {
       encryption_key_version = FLAGS_server_key_version;
     }
   } else {
-    if (!FLAGS_tenant_name.empty()) {
+    if (!FLAGS_tenant_id.empty()) {
       tenant_name = FLAGS_tenant_name;
       tenant_id = FLAGS_tenant_id;
       encryption_key = FLAGS_tenant_key;

Reply via email to