Skip to content

Commit f0737d7

Browse files
committed
[#14002] improvement(test): Add TestImages and fixtures for Moto, Ranger and Hive (part 2/6)
- TestImages declares every test image in one place. - BaseContainer subclasses can supply their own container (ready for the official Testcontainers modules). - Moto, Ranger and Hive (version, auth) fixtures. - A container whose start fails is closed instead of leaking.
1 parent 038f6dc commit f0737d7

55 files changed

Lines changed: 1209 additions & 202 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎authorizations/authorization-chain/src/test/java/org/apache/gravitino/authorization/chain/integration/test/TestChainedAuthorizationIT.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public void startIntegrationTest() throws Exception {
8080
registerCustomConfigs(configs);
8181

8282
super.startIntegrationTest();
83-
RangerITEnv.init(RangerBaseE2EIT.metalakeName, false);
83+
RangerITEnv.init(ranger, RangerBaseE2EIT.metalakeName, false);
8484
RangerITEnv.startHiveRangerContainer();
8585

8686
HIVE_METASTORE_URIS =

‎authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerAuthorizationHDFSPluginIT.java‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
import org.apache.gravitino.authorization.common.PathBasedSecurableObject;
4141
import org.apache.gravitino.authorization.ranger.RangerAuthorizationPlugin;
4242
import org.apache.gravitino.catalog.CatalogDispatcher;
43+
import org.apache.gravitino.integration.test.container.RangerContainer;
44+
import org.apache.gravitino.integration.test.container.RangerFixture;
4345
import org.junit.jupiter.api.AfterAll;
4446
import org.junit.jupiter.api.Assertions;
4547
import org.junit.jupiter.api.BeforeAll;
@@ -49,6 +51,7 @@
4951
import org.mockito.Mockito;
5052

5153
@Tag("gravitino-docker-test")
54+
@RangerFixture
5255
public class RangerAuthorizationHDFSPluginIT {
5356

5457
private static RangerAuthorizationPlugin rangerAuthPlugin;
@@ -57,8 +60,8 @@ public class RangerAuthorizationHDFSPluginIT {
5760
private static CatalogDispatcher previousInternalCatalogDispatcher;
5861

5962
@BeforeAll
60-
public static void setup() throws Exception {
61-
RangerITEnv.init(RangerITEnv.currentFunName(), true);
63+
public static void setup(RangerContainer ranger) throws Exception {
64+
RangerITEnv.init(ranger, RangerITEnv.currentFunName(), true);
6265
rangerAuthPlugin = RangerITEnv.rangerAuthHDFSPlugin;
6366
previousCatalogDispatcher =
6467
(CatalogDispatcher)

‎authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerAuthorizationPluginIT.java‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,22 @@
3333
import org.apache.gravitino.authorization.ranger.RangerAuthorizationPlugin;
3434
import org.apache.gravitino.authorization.ranger.RangerHadoopSQLMetadataObject;
3535
import org.apache.gravitino.authorization.ranger.RangerHelper;
36+
import org.apache.gravitino.integration.test.container.RangerContainer;
37+
import org.apache.gravitino.integration.test.container.RangerFixture;
3638
import org.junit.jupiter.api.AfterAll;
3739
import org.junit.jupiter.api.Assertions;
3840
import org.junit.jupiter.api.BeforeAll;
3941
import org.junit.jupiter.api.Tag;
4042
import org.junit.jupiter.api.Test;
4143

4244
@Tag("gravitino-docker-test")
45+
@RangerFixture
4346
public class RangerAuthorizationPluginIT {
4447
private static RangerAuthorizationPlugin rangerAuthPlugin;
4548

4649
@BeforeAll
47-
public static void setup() {
48-
RangerITEnv.init(RangerITEnv.currentFunName(), true);
50+
public static void setup(RangerContainer ranger) {
51+
RangerITEnv.init(ranger, RangerITEnv.currentFunName(), true);
4952
rangerAuthPlugin = RangerITEnv.rangerAuthHivePlugin;
5053
}
5154

‎authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerBaseE2EIT.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@
4242
import org.apache.gravitino.authorization.SecurableObject;
4343
import org.apache.gravitino.authorization.SecurableObjects;
4444
import org.apache.gravitino.client.GravitinoMetalake;
45+
import org.apache.gravitino.integration.test.container.FixtureContainer;
46+
import org.apache.gravitino.integration.test.container.RangerContainer;
47+
import org.apache.gravitino.integration.test.container.RangerFixture;
4548
import org.apache.gravitino.integration.test.util.BaseIT;
4649
import org.apache.gravitino.integration.test.util.GravitinoITUtils;
4750
import org.apache.gravitino.rel.TableChange;
@@ -54,6 +57,7 @@
5457
import org.slf4j.Logger;
5558
import org.slf4j.LoggerFactory;
5659

60+
@RangerFixture
5761
public abstract class RangerBaseE2EIT extends BaseIT {
5862
private static final Logger LOG = LoggerFactory.getLogger(RangerBaseE2EIT.class);
5963
public static final String catalogName = GravitinoITUtils.genRandomName("catalog").toLowerCase();
@@ -105,6 +109,8 @@ public abstract class RangerBaseE2EIT extends BaseIT {
105109

106110
protected static final String SQL_DROP_TABLE = String.format("DROP TABLE %s", tableName);
107111

112+
@FixtureContainer protected RangerContainer ranger;
113+
108114
protected static void generateRangerSparkSecurityXML(String modeName) throws IOException {
109115
String templatePath =
110116
String.join(

‎authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerFilesetIT.java‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,10 @@
5252
import org.apache.gravitino.client.GravitinoMetalake;
5353
import org.apache.gravitino.file.Fileset;
5454
import org.apache.gravitino.file.FilesetChange;
55+
import org.apache.gravitino.integration.test.container.FixtureContainer;
5556
import org.apache.gravitino.integration.test.container.HiveContainer;
5657
import org.apache.gravitino.integration.test.container.RangerContainer;
58+
import org.apache.gravitino.integration.test.container.RangerFixture;
5759
import org.apache.gravitino.integration.test.util.BaseIT;
5860
import org.apache.gravitino.integration.test.util.GravitinoITUtils;
5961
import org.apache.hadoop.conf.Configuration;
@@ -73,6 +75,7 @@
7375
import org.slf4j.LoggerFactory;
7476

7577
@Tag("gravitino-docker-test")
78+
@RangerFixture
7679
public class RangerFilesetIT extends BaseIT {
7780
private static final Logger LOG = LoggerFactory.getLogger(RangerFilesetIT.class);
7881

@@ -85,6 +88,7 @@ public class RangerFilesetIT extends BaseIT {
8588
private FileSystem fileSystem;
8689
private GravitinoMetalake metalake;
8790
private Catalog catalog;
91+
@FixtureContainer private RangerContainer ranger;
8892

8993
@BeforeAll
9094
public void startIntegrationTest() throws Exception {
@@ -100,13 +104,11 @@ public void startIntegrationTest() throws Exception {
100104
registerCustomConfigs(configs);
101105
super.startIntegrationTest();
102106

103-
RangerITEnv.init(metalakeName, false);
107+
RangerITEnv.init(ranger, metalakeName, false);
104108
RangerITEnv.startHiveRangerContainer();
105109

106110
RANGER_ADMIN_URL =
107-
String.format(
108-
"http://%s:%d",
109-
containerSuite.getRangerContainer().getContainerIpAddress(), RANGER_SERVER_PORT);
111+
String.format("http://%s:%d", ranger.getContainerIpAddress(), RANGER_SERVER_PORT);
110112

111113
Configuration conf = new Configuration();
112114
conf.set("fs.defaultFS", defaultBaseLocation());

‎authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerHiveE2EIT.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public void startIntegrationTest() throws Exception {
6565
registerCustomConfigs(configs);
6666
super.startIntegrationTest();
6767

68-
RangerITEnv.init(RangerBaseE2EIT.metalakeName, true);
68+
RangerITEnv.init(ranger, RangerBaseE2EIT.metalakeName, true);
6969
RangerITEnv.startHiveRangerContainer();
7070

7171
HIVE_METASTORE_URIS =

‎authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerHiveHdfsE2EIT.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public void startIntegrationTest() throws Exception {
9494
registerCustomConfigs(configs);
9595

9696
super.startIntegrationTest();
97-
RangerITEnv.init(RangerBaseE2EIT.metalakeName, false);
97+
RangerITEnv.init(ranger, RangerBaseE2EIT.metalakeName, false);
9898
RangerITEnv.startHiveRangerContainer();
9999

100100
DEFAULT_FS =

‎authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerHiveIT.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import org.apache.gravitino.connector.authorization.BaseAuthorization;
6464
import org.apache.gravitino.exceptions.AuthorizationPluginException;
6565
import org.apache.gravitino.integration.test.container.RangerContainer;
66+
import org.apache.gravitino.integration.test.container.RangerFixture;
6667
import org.apache.gravitino.integration.test.util.GravitinoITUtils;
6768
import org.apache.gravitino.meta.AuditInfo;
6869
import org.apache.gravitino.meta.GroupEntity;
@@ -83,6 +84,7 @@
8384
import org.slf4j.LoggerFactory;
8485

8586
@Tag("gravitino-docker-test")
87+
@RangerFixture
8688
public class RangerHiveIT {
8789
private static final Logger LOG = LoggerFactory.getLogger(RangerHiveIT.class);
8890

@@ -92,8 +94,8 @@ public class RangerHiveIT {
9294
AuditInfo.builder().withCreator("test").withCreateTime(Instant.now()).build();
9395

9496
@BeforeAll
95-
public static void setup() {
96-
RangerITEnv.init(RangerITEnv.currentFunName(), true);
97+
public static void setup(RangerContainer ranger) {
98+
RangerITEnv.init(ranger, RangerITEnv.currentFunName(), true);
9799

98100
rangerAuthHivePlugin = RangerITEnv.rangerAuthHivePlugin;
99101
rangerHelper = RangerITEnv.rangerHelper;

‎authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerITEnv.java‎

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,14 @@ public class RangerITEnv {
9292
protected static RangerHelper rangerHelper;
9393
protected static RangerHelper rangerHDFSHelper;
9494
public static String RANGER_ADMIN_URL = null;
95+
private static RangerContainer rangerContainer;
9596

96-
public static void init(String metalakeName, boolean allowAnyoneAccessHDFS) {
97-
containerSuite.startRangerContainer();
97+
public static void init(
98+
RangerContainer ranger, String metalakeName, boolean allowAnyoneAccessHDFS) {
99+
rangerContainer = ranger;
98100
RANGER_ADMIN_URL =
99-
String.format(
100-
"http://%s:%d",
101-
containerSuite.getRangerContainer().getContainerIpAddress(), RANGER_SERVER_PORT);
102-
rangerClient = containerSuite.getRangerContainer().rangerClient;
101+
String.format("http://%s:%d", rangerContainer.getContainerIpAddress(), RANGER_SERVER_PORT);
102+
rangerClient = rangerContainer.rangerClient;
103103

104104
rangerAuthHivePlugin =
105105
new RangerAuthorizationHadoopSQLPlugin(
@@ -108,8 +108,7 @@ public static void init(String metalakeName, boolean allowAnyoneAccessHDFS) {
108108
RangerAuthorizationProperties.RANGER_ADMIN_URL,
109109
String.format(
110110
"http://%s:%d",
111-
containerSuite.getRangerContainer().getContainerIpAddress(),
112-
RangerContainer.RANGER_SERVER_PORT),
111+
rangerContainer.getContainerIpAddress(), RangerContainer.RANGER_SERVER_PORT),
113112
RangerAuthorizationProperties.RANGER_AUTH_TYPE,
114113
RangerContainer.authType,
115114
RangerAuthorizationProperties.RANGER_USERNAME,
@@ -135,7 +134,7 @@ public static void init(String metalakeName, boolean allowAnyoneAccessHDFS) {
135134
RangerAuthorizationProperties.RANGER_ADMIN_URL,
136135
String.format(
137136
"http://%s:%d",
138-
containerSuite.getRangerContainer().getContainerIpAddress(),
137+
rangerContainer.getContainerIpAddress(),
139138
RangerContainer.RANGER_SERVER_PORT),
140139
RangerAuthorizationProperties.RANGER_AUTH_TYPE,
141140
RangerContainer.authType,
@@ -199,8 +198,7 @@ public static void startHiveRangerContainer() {
199198
RangerContainer.DOCKER_ENV_RANGER_SERVER_URL,
200199
String.format(
201200
"http://%s:%d",
202-
containerSuite.getRangerContainer().getContainerIpAddress(),
203-
RangerContainer.RANGER_SERVER_PORT),
201+
rangerContainer.getContainerIpAddress(), RangerContainer.RANGER_SERVER_PORT),
204202
RangerContainer.DOCKER_ENV_RANGER_HIVE_REPOSITORY_NAME,
205203
RangerITEnv.RANGER_HIVE_REPO_NAME,
206204
RangerContainer.DOCKER_ENV_RANGER_HDFS_REPOSITORY_NAME,

‎authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerIcebergE2EIT.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public void startIntegrationTest() throws Exception {
6666
registerCustomConfigs(configs);
6767
super.startIntegrationTest();
6868

69-
RangerITEnv.init(RangerBaseE2EIT.metalakeName, true);
69+
RangerITEnv.init(ranger, RangerBaseE2EIT.metalakeName, true);
7070
RangerITEnv.startHiveRangerContainer();
7171

7272
HIVE_METASTORE_URIS =

0 commit comments

Comments
 (0)