Skip to content

Commit ed9adc3

Browse files
committed
iceberg-fix-tests
1 parent b17df3f commit ed9adc3

24 files changed

+419
-321
lines changed

airbyte-integrations/connectors/destination-iceberg/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
airbyteJavaConnector {
7-
cdkVersionRequired = '0.2.0'
7+
cdkVersionRequired = '0.44.23'
88
features = ['db-destinations']
99
useLocalCdk = false
1010
}

airbyte-integrations/connectors/destination-iceberg/iceberg.svg

-1
This file was deleted.
Loading

airbyte-integrations/connectors/destination-iceberg/metadata.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ data:
22
connectorSubtype: database
33
connectorType: destination
44
definitionId: df65a8f3-9908-451b-aa9b-445462803560
5-
dockerImageTag: 0.1.7
5+
dockerImageTag: 0.1.8
66
dockerRepository: airbyte/destination-iceberg
77
githubIssueLabel: destination-iceberg
8+
icon: iceberg.svg
89
license: MIT
910
name: Apache Iceberg
1011
registryOverrides:

airbyte-integrations/connectors/destination-iceberg/src/main/java/io/airbyte/integrations/destination/iceberg/IcebergConstants.java

+5
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,9 @@ public class IcebergConstants {
5757
public static final String CATALOG_NAME = "iceberg";
5858
public static final String DEFAULT_DATABASE = "default";
5959

60+
/**
61+
* constant for QA checks to ignore http endpoint
62+
*/
63+
public static final String HTTP_PREFIX = "http://"; // # ignore-https-check
64+
6065
}

airbyte-integrations/connectors/destination-iceberg/src/main/java/io/airbyte/integrations/destination/iceberg/IcebergDestination.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import lombok.extern.slf4j.Slf4j;
2323
import org.apache.spark.sql.SparkSession;
2424
import org.apache.spark.sql.SparkSession.Builder;
25+
import org.jetbrains.annotations.NotNull;
2526

2627
@Slf4j
2728
public class IcebergDestination extends BaseConnector implements Destination {
@@ -43,7 +44,7 @@ public static void main(String[] args) throws Exception {
4344
}
4445

4546
@Override
46-
public AirbyteConnectionStatus check(JsonNode config) {
47+
public AirbyteConnectionStatus check(@NotNull JsonNode config) {
4748
try {
4849
IcebergCatalogConfig icebergCatalogConfig = icebergCatalogConfigFactory.fromJsonNodeConfig(config);
4950
icebergCatalogConfig.check();

airbyte-integrations/connectors/destination-iceberg/src/main/java/io/airbyte/integrations/destination/iceberg/config/storage/S3Config.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
package io.airbyte.integrations.destination.iceberg.config.storage;
66

7+
import static io.airbyte.integrations.destination.iceberg.IcebergConstants.HTTP_PREFIX;
78
import static io.airbyte.integrations.destination.iceberg.IcebergConstants.S3_ACCESS_KEY_ID_CONFIG_KEY;
89
import static io.airbyte.integrations.destination.iceberg.IcebergConstants.S3_BUCKET_REGION_CONFIG_KEY;
910
import static io.airbyte.integrations.destination.iceberg.IcebergConstants.S3_ENDPOINT_CONFIG_KEY;
@@ -84,14 +85,14 @@ public static S3Config fromDestinationConfig(@Nonnull final JsonNode config) {
8485
// use Amazon S3
8586
builder.sslEnabled(true);
8687
} else {
87-
boolean sslEnabled = !endpointStr.startsWith("http://");
88+
boolean sslEnabled = !endpointStr.startsWith(HTTP_PREFIX);
8889
String pureEndpoint = removeSchemaSuffix(endpointStr);
8990
builder.sslEnabled(sslEnabled);
9091
builder.endpoint(pureEndpoint);
9192
if (sslEnabled) {
9293
builder.endpointWithSchema("https://" + pureEndpoint);
9394
} else {
94-
builder.endpointWithSchema("http://" + pureEndpoint);
95+
builder.endpointWithSchema(HTTP_PREFIX + pureEndpoint);
9596
}
9697
}
9798

airbyte-integrations/connectors/destination-iceberg/src/test-integration/java/io/airbyte/integrations/destination/iceberg/IcebergIntegrationTestUtil.java

-28
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,25 @@
44

55
package io.airbyte.integrations.destination.iceberg;
66

7-
import static io.airbyte.integrations.destination.iceberg.container.MinioContainer.DEFAULT_ACCESS_KEY;
8-
import static io.airbyte.integrations.destination.iceberg.container.MinioContainer.DEFAULT_SECRET_KEY;
97
import static org.sparkproject.jetty.util.StringUtil.isNotBlank;
108

119
import com.amazonaws.services.s3.AmazonS3;
1210
import com.amazonaws.services.s3.model.Bucket;
1311
import com.fasterxml.jackson.databind.JsonNode;
14-
import com.github.dockerjava.api.model.ContainerNetwork;
1512
import io.airbyte.cdk.integrations.base.JavaBaseConstants;
1613
import io.airbyte.cdk.integrations.destination.NamingConventionTransformer;
1714
import io.airbyte.cdk.integrations.destination.StandardNameTransformer;
1815
import io.airbyte.commons.json.Jsons;
1916
import io.airbyte.integrations.destination.iceberg.config.catalog.IcebergCatalogConfig;
2017
import io.airbyte.integrations.destination.iceberg.config.catalog.IcebergCatalogConfigFactory;
2118
import io.airbyte.integrations.destination.iceberg.config.storage.S3Config;
22-
import io.airbyte.integrations.destination.iceberg.container.MinioContainer;
23-
import io.airbyte.integrations.destination.iceberg.container.MinioContainer.CredentialsProvider;
2419
import java.io.IOException;
2520
import java.sql.Timestamp;
2621
import java.time.OffsetDateTime;
2722
import java.time.ZoneOffset;
2823
import java.util.ArrayList;
2924
import java.util.Comparator;
3025
import java.util.List;
31-
import java.util.Map.Entry;
3226
import java.util.stream.Collectors;
3327
import org.apache.iceberg.Table;
3428
import org.apache.iceberg.catalog.Catalog;
@@ -39,7 +33,6 @@
3933
import org.glassfish.jersey.internal.guava.Lists;
4034
import org.slf4j.Logger;
4135
import org.slf4j.LoggerFactory;
42-
import org.testcontainers.containers.GenericContainer;
4336
import org.testcontainers.lifecycle.Startable;
4437

4538
/**
@@ -48,22 +41,11 @@
4841
public class IcebergIntegrationTestUtil {
4942

5043
private static final Logger LOGGER = LoggerFactory.getLogger(IcebergIntegrationTestUtil.class);
51-
5244
public static final String ICEBERG_IMAGE_NAME = "airbyte/destination-iceberg:dev";
53-
5445
public static final String WAREHOUSE_BUCKET_NAME = "warehouse";
5546
private static final NamingConventionTransformer namingResolver = new StandardNameTransformer();
5647
private static final IcebergCatalogConfigFactory icebergCatalogConfigFactory = new IcebergCatalogConfigFactory();
5748

58-
public static MinioContainer createAndStartMinioContainer(Integer bindPort) {
59-
CredentialsProvider credentialsProvider = new CredentialsProvider(DEFAULT_ACCESS_KEY, DEFAULT_SECRET_KEY);
60-
String minioImage = "minio/minio:RELEASE.2022-10-29T06-21-33Z.fips";
61-
MinioContainer container = new MinioContainer(minioImage, credentialsProvider, bindPort);
62-
container.start();
63-
LOGGER.info("==> Started Minio docker container...");
64-
return container;
65-
}
66-
6749
public static void stopAndCloseContainer(Startable container, String name) {
6850
container.stop();
6951
container.close();
@@ -102,14 +84,4 @@ private static long offsetDataTimeToTimestamp(OffsetDateTime offsetDateTime) {
10284
return Timestamp.valueOf(offsetDateTime.atZoneSameInstant(ZoneOffset.UTC).toLocalDateTime()).getTime();
10385
}
10486

105-
public static String getContainerIpAddr(GenericContainer<?> container) {
106-
for (Entry<String, ContainerNetwork> entry : container.getContainerInfo()
107-
.getNetworkSettings()
108-
.getNetworks()
109-
.entrySet()) {
110-
return entry.getValue().getIpAddress();
111-
}
112-
return container.getContainerIpAddress();
113-
}
114-
11587
}

0 commit comments

Comments
 (0)