Skip to content

Commit 9d4221f

Browse files
committed
Use commands in Unity Catalog docker image
1 parent 2644357 commit 9d4221f

File tree

1 file changed

+18
-20
lines changed

1 file changed

+18
-20
lines changed

plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/containers/UnityCatalogContainer.java

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@
2323
import io.trino.testing.QueryRunner;
2424
import io.trino.tpch.TpchTable;
2525
import org.intellij.lang.annotations.Language;
26+
import org.testcontainers.containers.Container;
2627
import org.testcontainers.containers.GenericContainer;
2728
import org.testcontainers.containers.Network;
2829
import org.testcontainers.containers.PostgreSQLContainer;
2930
import org.testcontainers.utility.DockerImageName;
3031
import org.testcontainers.utility.MountableFile;
3132

3233
import java.io.File;
34+
import java.io.IOException;
3335
import java.net.URI;
3436
import java.nio.file.Files;
3537
import java.nio.file.Path;
@@ -38,7 +40,9 @@
3840
import java.sql.DriverManager;
3941
import java.sql.SQLException;
4042
import java.sql.Statement;
43+
import java.util.Arrays;
4144

45+
import static com.google.common.base.Preconditions.checkState;
4246
import static com.google.common.base.Verify.verify;
4347
import static io.airlift.http.client.StaticBodyGenerator.createStaticBodyGenerator;
4448
import static io.airlift.http.client.StringResponseHandler.createStringResponseHandler;
@@ -114,34 +118,28 @@ public String uri()
114118

115119
private void createCatalog()
116120
{
117-
@Language("JSON")
118-
String body = "{\"name\": \"" + catalogName + "\"}";
119-
Request request = Request.Builder.preparePost()
120-
.setUri(URI.create(uri() + "/catalogs"))
121-
.setHeader("Content-Type", "application/json")
122-
.setBodyGenerator(createStaticBodyGenerator(body, UTF_8))
123-
.build();
124-
execute(request);
121+
execInContainer("bin/uc", "catalog", "create", "--name", catalogName);
125122
}
126123

127124
public void createSchema(String schemaName)
128125
{
129-
@Language("JSON")
130-
String body = "{\"name\": \"" + schemaName + "\", \"catalog_name\": \"" + catalogName + "\"}";
131-
Request request = Request.Builder.preparePost()
132-
.setUri(URI.create(uri() + "/schemas"))
133-
.setHeader("Content-Type", "application/json")
134-
.setBodyGenerator(createStaticBodyGenerator(body, UTF_8))
135-
.build();
136-
execute(request);
126+
execInContainer("bin/uc", "schema", "create", "--catalog", catalogName, "--name", schemaName);
137127
}
138128

139129
public void dropSchema(String schema)
140130
{
141-
Request request = Request.Builder.prepareDelete()
142-
.setUri(URI.create(uri() + "/schemas/%s.%s?catalog_name=%s".formatted(catalogName, schema, schema)))
143-
.build();
144-
execute(request);
131+
execInContainer("bin/uc", "schema", "delete", "--full_name", "%s.%s".formatted(catalogName, schema));
132+
}
133+
134+
private void execInContainer(String... command)
135+
{
136+
try {
137+
Container.ExecResult result = unityCatalog.execInContainer(command);
138+
checkState(result.getExitCode() == 0, "Command %s failed: %s", Arrays.toString(command), result.getStdout());
139+
}
140+
catch (IOException | InterruptedException e) {
141+
throw new RuntimeException(e);
142+
}
145143
}
146144

147145
public void copyTpchTables(Iterable<TpchTable<?>> tpchTables)

0 commit comments

Comments
 (0)