-
Notifications
You must be signed in to change notification settings - Fork 20
Implement integration tests for azure source #449
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Skeleton outline of the Azure blob Source Connector. * Adds branch protection to the feature branch * Adds basic gradle setup and addition of project to build * Adds basic Common config * Adds basic Azure blob Source Task Signed-off-by: Aindriu Lavelle <[email protected]>
PR Aiven-Open#414 should be closed first. This PR introduces the Azure Config Fragment which handles all the Azure specific configuration required by the Source Connector, it also handles creation of the BlobServiceAsyncClient. The PR also introduces the AzureBlobClient which handles listing all the blobs in a container, and handles downloading the of an individual blob. This is done using an async client, this PR also includes the first Integration tests, by testing the client against the docker container. This PR **does not** include changing the Azure sink connector to use the AzureBlobConfigFragment Signed-off-by: Aindriu Lavelle <[email protected]>
This is the offset manager entry for the Azure blob source. It is similar to the S3 source offset manager entry as the bucket is analogous to the container and blob is analogous to the S3Object. However it is worth noting they are slightly different. Signed-off-by: Aindriu Lavelle <[email protected]>
Update with dependabot changes from main. --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Adds the source record iterator, transformers the blob into source records that are ready to be delivered to Kafka * Adds the AzureBlobSourceRecord which transforms the Azure information to a source record. * Update to Azure Client to ignore any empty files. --------- Signed-off-by: Aindriu Lavelle <[email protected]> Co-authored-by: Claude Warren <[email protected]> Co-authored-by: ¨Claude <¨[email protected]¨> Co-authored-by: Claude Warren <[email protected]>
azure-commons/src/testFixtures/java/io/aiven/kafka/connect/azure/AzureStorage.java
Outdated
Show resolved
Hide resolved
...ns/src/testFixtures/java/io/aiven/kafka/connect/azure/testdata/AzureIntegrationTestData.java
Show resolved
Hide resolved
.../src/integration-test/java/io/aiven/kafka/connect/azure/sink/AvroParquetIntegrationTest.java
Show resolved
Hide resolved
...ource-connector/src/main/java/io/aiven/kafka/connect/azure/source/utils/AzureBlobClient.java
Outdated
Show resolved
Hide resolved
commons/src/main/java/io/aiven/kafka/connect/common/source/AbstractSourceRecord.java
Show resolved
Hide resolved
…ure/source/utils/AzureBlobClient.java Co-authored-by: Aindriú Lavelle <[email protected]>
...ource-connector/src/main/java/io/aiven/kafka/connect/azure/source/utils/AzureBlobClient.java
Show resolved
Hide resolved
commons/src/main/java/io/aiven/kafka/connect/common/source/AbstractSourceRecordIterator.java
Outdated
Show resolved
Hide resolved
commons/src/main/java/io/aiven/kafka/connect/common/utils/CasedString.java
Outdated
Show resolved
Hide resolved
s3-source-connector/src/main/java/io/aiven/kafka/connect/s3/source/config/S3SourceConfig.java
Show resolved
Hide resolved
...ource-connector/src/main/java/io/aiven/kafka/connect/s3/source/config/S3SourceConfigDef.java
Show resolved
Hide resolved
s3-source-connector/src/main/java/io/aiven/kafka/connect/s3/source/utils/S3SourceRecord.java
Outdated
Show resolved
Hide resolved
s3-source-connector/src/test/java/io/aiven/kafka/connect/s3/source/S3SourceTaskTest.java
Show resolved
Hide resolved
.../src/testFixtures/java/io/aiven/kakfa/connect/s3/source/testdata/AWSIntegrationTestData.java
Outdated
Show resolved
Hide resolved
...-connector/src/integration-test/java/io/aiven/kafka/connect/gcs/AbstractIntegrationTest.java
Show resolved
Hide resolved
...-connector/src/integration-test/java/io/aiven/kafka/connect/gcs/AbstractIntegrationTest.java
Show resolved
Hide resolved
commons/src/test/java/io/aiven/kafka/connect/common/source/impl/ExampleSourceRecord.java
Show resolved
Hide resolved
...c/testFixtures/java/io/aiven/kafka/connect/common/integration/ConsumerPropertiesBuilder.java
Show resolved
Hide resolved
commons/src/testFixtures/java/io/aiven/kafka/connect/common/integration/KafkaManager.java
Outdated
Show resolved
Hide resolved
s3-commons/src/main/java/io/aiven/kafka/connect/config/s3/S3ConfigFragment.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok sorry it took quite a while but this looks good, I have a few questions.
I think some statics etc could be added stuff that could easily be done in a follow up PR though. I dont see any of it as blocking.
I think I had one question about validation on the config fragments thats moved/changed that I would like to know the answer to though
…tractSourceRecordIterator.java Co-authored-by: Aindriú Lavelle <[email protected]>
...tor/src/integration-test/java/io/aiven/kafka/connect/azure/sink/AbstractIntegrationTest.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Converted to draft. code will be merged in smaller chunks. |
Implement Azure source integration tests and ensure all integration tests continue to function.