29
29
import java .io .IOException ;
30
30
import java .io .UncheckedIOException ;
31
31
import java .net .URI ;
32
+ import java .nio .file .Path ;
33
+ import java .nio .file .Paths ;
34
+ import java .nio .file .attribute .PosixFilePermission ;
35
+ import java .util .EnumSet ;
36
+ import java .util .Set ;
32
37
33
38
import static com .google .common .base .Preconditions .checkState ;
34
39
import static io .airlift .http .client .StaticBodyGenerator .createStaticBodyGenerator ;
35
40
import static io .airlift .http .client .StatusResponseHandler .createStatusResponseHandler ;
36
41
import static io .airlift .http .client .StringResponseHandler .createStringResponseHandler ;
37
- import static io .trino .testing .TestingProperties .getDockerImagesVersion ;
38
42
import static java .nio .charset .StandardCharsets .UTF_8 ;
43
+ import static java .nio .file .Files .setPosixFilePermissions ;
44
+ import static java .nio .file .attribute .PosixFilePermission .GROUP_EXECUTE ;
45
+ import static java .nio .file .attribute .PosixFilePermission .GROUP_READ ;
46
+ import static java .nio .file .attribute .PosixFilePermission .GROUP_WRITE ;
47
+ import static java .nio .file .attribute .PosixFilePermission .OTHERS_EXECUTE ;
48
+ import static java .nio .file .attribute .PosixFilePermission .OTHERS_READ ;
49
+ import static java .nio .file .attribute .PosixFilePermission .OTHERS_WRITE ;
50
+ import static java .nio .file .attribute .PosixFilePermission .OWNER_EXECUTE ;
51
+ import static java .nio .file .attribute .PosixFilePermission .OWNER_READ ;
52
+ import static java .nio .file .attribute .PosixFilePermission .OWNER_WRITE ;
39
53
import static java .util .Objects .requireNonNull ;
40
54
41
55
public final class TestingPolarisCatalog
@@ -55,9 +69,25 @@ public final class TestingPolarisCatalog
55
69
public TestingPolarisCatalog (String warehouseLocation )
56
70
{
57
71
this .warehouseLocation = requireNonNull (warehouseLocation , "warehouseLocation is null" );
72
+ Path warehousePath = Paths .get (warehouseLocation );
73
+ try {
74
+ Set <PosixFilePermission > permissions = EnumSet .of (
75
+ OWNER_READ ,
76
+ OWNER_WRITE ,
77
+ OWNER_EXECUTE ,
78
+ GROUP_READ ,
79
+ GROUP_WRITE ,
80
+ GROUP_EXECUTE ,
81
+ OTHERS_READ ,
82
+ OTHERS_WRITE ,
83
+ OTHERS_EXECUTE );
84
+ setPosixFilePermissions (warehousePath , permissions );
85
+ }
86
+ catch (Exception e ) {
87
+ throw new RuntimeException ("Failed to setup warehouse directory" , e );
88
+ }
58
89
59
- // TODO: Use the official docker image once Polaris community provides it
60
- polarisCatalog = new GenericContainer <>("ghcr.io/trinodb/testing/polaris-catalog:" + getDockerImagesVersion ());
90
+ polarisCatalog = new GenericContainer <>("apache/polaris:1.0.0-incubating" );
61
91
polarisCatalog .addExposedPort (POLARIS_PORT );
62
92
polarisCatalog .withFileSystemBind (warehouseLocation , warehouseLocation , BindMode .READ_WRITE );
63
93
polarisCatalog .waitingFor (new LogMessageWaitStrategy ().withRegEx (".*Apache Polaris Server.* started.*" ));
0 commit comments