dimas-b commented on code in PR #1934:
URL: https://github.com/apache/polaris/pull/1934#discussion_r2167876875


##########
runtime/service/README-quarkus.md:
##########
@@ -79,6 +79,30 @@ configuration property).
 
 You can find more details here: https://quarkus.io/guides/config
 
+# Integration tests
+Integration tests from the :polaris-tests module can be run against a local 
Polaris Quarkus instance
+for each supported cloud storage. Set the appropriate environment variables 
for your target cloud,
+then run the tests as shown below.
+
+For S3:
+```shell
+export INTEGRATION_TEST_S3_PATH="s3://bucket/subpath"
+export INTEGRATION_TEST_S3_ROLE_ARN="your-role-arn"
+./gradlew :polaris-runtime-service:intTest

Review Comment:
   I tried this task, but unfortunately I got 5 failures.
   
   `INTEGRATION_TEST_S3_PATH="s3://***/pol-test"`
   `INTEGRATION_TEST_S3_ROLE_ARN=***`
   `AWS_PROFILE=***` (for credentials)
   `./gradlew :polaris-runtime-service:intTest --tests 
org.apache.polaris.service.quarkus.it.QuarkusRestCatalogAwsIT`
   Failures:
   ```
   org.apache.iceberg.exceptions.ServiceFailureException: Server error: 
SdkClientException: Unable to marshall request to JSON: Bucket cannot be empty.
        at 
app//org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.accept(ErrorHandlers.java:241)
        at 
app//org.apache.iceberg.rest.ErrorHandlers$TableErrorHandler.accept(ErrorHandlers.java:123)
        at 
app//org.apache.iceberg.rest.ErrorHandlers$TableErrorHandler.accept(ErrorHandlers.java:107)
        at 
app//org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:215)
        at app//org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:299)
        at 
app//org.apache.iceberg.rest.BaseHTTPClient.post(BaseHTTPClient.java:88)
        at 
app//org.apache.iceberg.rest.RESTSessionCatalog.registerTable(RESTSessionCatalog.java:512)
        at 
app//org.apache.iceberg.catalog.BaseSessionCatalog$AsCatalog.registerTable(BaseSessionCatalog.java:89)
        at 
app//org.apache.iceberg.rest.RESTCatalog.registerTable(RESTCatalog.java:222)
        at 
app//org.apache.polaris.service.it.test.PolarisRestCatalogIntegrationBase.testLoadTableTwiceWithETag(PolarisRestCatalogIntegrationBase.java:710)
        at [email protected]/java.lang.reflect.Method.invoke(Method.java:580)
        at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
        at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
   ```
   ```
   org.apache.iceberg.exceptions.ForbiddenException: Forbidden: Invalid 
locations '[s3://****/external-catalog/ns1/my_table]' for identifier 
'ns1.my_table': s3://****/external-catalog/ns1/my_table is not in the list of 
allowed locations: [s3://****/pol-test, s3://****/path/to/data]
        at 
app//org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.accept(ErrorHandlers.java:236)
        at 
app//org.apache.iceberg.rest.ErrorHandlers$TableErrorHandler.accept(ErrorHandlers.java:123)
        at 
app//org.apache.iceberg.rest.ErrorHandlers$TableErrorHandler.accept(ErrorHandlers.java:107)
        at 
app//org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:215)
        at app//org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:299)
        at 
app//org.apache.iceberg.rest.BaseHTTPClient.post(BaseHTTPClient.java:88)
        at 
app//org.apache.iceberg.rest.RESTSessionCatalog.registerTable(RESTSessionCatalog.java:512)
        at 
app//org.apache.iceberg.catalog.BaseSessionCatalog$AsCatalog.registerTable(BaseSessionCatalog.java:89)
        at 
app//org.apache.iceberg.rest.RESTCatalog.registerTable(RESTCatalog.java:222)
        at 
app//org.apache.polaris.service.it.test.PolarisRestCatalogIntegrationBase.testLoadTableWithAccessDelegationForExternalCatalogWithConfigDisabled(PolarisRestCatalogIntegrationBase.java:613)
        at [email protected]/java.lang.reflect.Method.invoke(Method.java:580)
        at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
        at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
   ```
   ```
   org.apache.iceberg.exceptions.AlreadyExistsException: Location already 
exists: s3://****/external-catalog/ns1/my_table/metadata/v1.metadata.json
        at 
app//org.apache.iceberg.aws.s3.S3OutputFile.create(S3OutputFile.java:83)
        at 
app//org.apache.iceberg.TableMetadataParser.internalWrite(TableMetadataParser.java:127)
        at 
app//org.apache.iceberg.TableMetadataParser.write(TableMetadataParser.java:121)
        at 
app//org.apache.polaris.service.it.test.PolarisRestCatalogIntegrationBase.testLoadTableWithAccessDelegationForExternalCatalogWithConfigEnabledForCatalog(PolarisRestCatalogIntegrationBase.java:681)
        at [email protected]/java.lang.reflect.Method.invoke(Method.java:580)
        at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
        at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
   ```
   ```
   org.apache.iceberg.exceptions.AlreadyExistsException: Location already 
exists: s3://****/external-catalog/ns1/my_table/metadata/v1.metadata.json
        at 
app//org.apache.iceberg.aws.s3.S3OutputFile.create(S3OutputFile.java:83)
        at 
app//org.apache.iceberg.TableMetadataParser.internalWrite(TableMetadataParser.java:127)
        at 
app//org.apache.iceberg.TableMetadataParser.write(TableMetadataParser.java:121)
        at 
app//org.apache.polaris.service.it.test.PolarisRestCatalogIntegrationBase.testLoadTableWithoutAccessDelegationForExternalCatalogWithConfigDisabled(PolarisRestCatalogIntegrationBase.java:647)
        at [email protected]/java.lang.reflect.Method.invoke(Method.java:580)
        at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
        at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1596)
   ```
   ```
   java.lang.AssertionError: 
   Expecting actual:
     {"Content-Type"=["application/json"], "content-length"=["122"]}
   to contain key:
     "ETag"
        at 
org.apache.polaris.service.it.test.PolarisRestCatalogIntegrationBase.testRegisterAndLoadTableWithReturnedETag(PolarisRestCatalogIntegrationBase.java:762)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to