This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 11d2f14b29a [feature](Cloud) Only cloud mode and instance with
enable_storage_vault can use storage vault stmt (#33561)
11d2f14b29a is described below
commit 11d2f14b29a20de89295f170ad33bfda01256c60
Author: AlexYue <[email protected]>
AuthorDate: Sat Apr 13 10:50:17 2024 +0800
[feature](Cloud) Only cloud mode and instance with enable_storage_vault can
use storage vault stmt (#33561)
---
.../doris/analysis/CreateStorageVaultStmt.java | 12 ++++++++++++
.../doris/analysis/SetDefaultStorageVaultStmt.java | 21 +++++++++++++++++++++
.../doris/analysis/CreateStorageVaultStmtTest.java | 7 +++++++
3 files changed, 40 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateStorageVaultStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateStorageVaultStmt.java
index a606ed48336..652c15d4b8e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateStorageVaultStmt.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateStorageVaultStmt.java
@@ -19,9 +19,12 @@ package org.apache.doris.analysis;
import org.apache.doris.catalog.Env;
import org.apache.doris.catalog.StorageVault;
+import org.apache.doris.cloud.catalog.CloudEnv;
import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.Config;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.FeNameFormat;
import org.apache.doris.common.UserException;
import org.apache.doris.common.util.PrintableMap;
@@ -72,6 +75,15 @@ public class CreateStorageVaultStmt extends DdlStmt {
@Override
public void analyze(Analyzer analyzer) throws UserException {
+ if (Config.isNotCloudMode()) {
+ throw new AnalysisException("Storage Vault is only supported for
cloud mode");
+ }
+ if (!FeConstants.runningUnitTest) {
+ // In legacy cloud mode, some s3 back-ended storage does need to
use storage vault.
+ if (!((CloudEnv) Env.getCurrentEnv()).getEnableStorageVault()) {
+ throw new AnalysisException("Your cloud instance doesn't
support storage vault");
+ }
+ }
super.analyze(analyzer);
// check auth
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/SetDefaultStorageVaultStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SetDefaultStorageVaultStmt.java
index eec693bb40d..b9facec56a5 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/SetDefaultStorageVaultStmt.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SetDefaultStorageVaultStmt.java
@@ -17,6 +17,13 @@
package org.apache.doris.analysis;
+import org.apache.doris.catalog.Env;
+import org.apache.doris.cloud.catalog.CloudEnv;
+import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.Config;
+import org.apache.doris.common.FeConstants;
+import org.apache.doris.common.UserException;
+
// SET vault_name DEFAULT STORAGE VAULT
public class SetDefaultStorageVaultStmt extends DdlStmt {
public final String vaultName;
@@ -29,6 +36,20 @@ public class SetDefaultStorageVaultStmt extends DdlStmt {
return vaultName;
}
+ @Override
+ public void analyze(Analyzer analyzer) throws UserException {
+ if (Config.isNotCloudMode()) {
+ throw new AnalysisException("Storage Vault is only supported for
cloud mode");
+ }
+ if (!FeConstants.runningUnitTest) {
+ // In legacy cloud mode, some s3 back-ended storage does need to
use storage vault.
+ if (!((CloudEnv) Env.getCurrentEnv()).getEnableStorageVault()) {
+ throw new AnalysisException("Your cloud instance doesn't
support storage vault");
+ }
+ }
+ super.analyze(analyzer);
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateStorageVaultStmtTest.java
b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateStorageVaultStmtTest.java
index 7064ef7b661..0479c82d25d 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateStorageVaultStmtTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateStorageVaultStmtTest.java
@@ -20,6 +20,8 @@ package org.apache.doris.analysis;
import org.apache.doris.catalog.Env;
import org.apache.doris.catalog.StorageVault.StorageVaultType;
import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.Config;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.UserException;
import org.apache.doris.mysql.privilege.AccessControllerManager;
import org.apache.doris.mysql.privilege.PrivPredicate;
@@ -43,6 +45,7 @@ public class CreateStorageVaultStmtTest {
public void setUp() {
analyzer = AccessTestUtil.fetchAdminAnalyzer(true);
vaultName = "hdfs";
+ FeConstants.runningUnitTest = true;
}
@Test
@@ -57,6 +60,7 @@ public class CreateStorageVaultStmtTest {
}
};
+ Config.cloud_unique_id = "not_empty";
Map<String, String> properties = Maps.newHashMap();
properties.put("type", "hdfs");
CreateStorageVaultStmt stmt = new CreateStorageVaultStmt(true,
vaultName, properties);
@@ -64,6 +68,7 @@ public class CreateStorageVaultStmtTest {
Assert.assertEquals(vaultName, stmt.getStorageVaultName());
Assert.assertEquals(StorageVaultType.HDFS, stmt.getStorageVaultType());
Assert.assertEquals("CREATE STORAGE VAULT 'hdfs' PROPERTIES(\"type\"
= \"hdfs\")", stmt.toSql());
+ Config.cloud_unique_id = "";
}
@@ -79,9 +84,11 @@ public class CreateStorageVaultStmtTest {
}
};
+ Config.cloud_unique_id = "not_empty";
Map<String, String> properties = Maps.newHashMap();
properties.put("type", "hadoop");
CreateStorageVaultStmt stmt = new CreateStorageVaultStmt(true,
vaultName, properties);
stmt.analyze(analyzer);
+ Config.cloud_unique_id = "";
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]