oscerd opened a new pull request, #29229: URL: https://github.com/apache/camel/pull/29229
## Description The integration tests of camel-azure-storage-datalake ran only against a real storage account (`-Dazure.instance.type=remote`): Azurite does not implement the Data Lake Storage Gen2 (DFS) API, so `camel-test-infra-azure-storage-datalake` had no local service. [Floci AZ](https://github.com/floci-io/floci-az) is the Azure emulator of the Floci family that the AWS test-infra uses since #23404, and it serves the DFS API on its Blob backend. This PR: - adds `FlociAzContainer` (image `mirror.gcr.io/floci/floci-az:0.16.0`, a wait on `/health`, the well-known `devstoreaccount1` account and key) and the `FlociAzInfraService` base to `camel-test-infra-azure-common`, for the other Azure components to build on (CAMEL-26616 to CAMEL-26621); - adds a local `storage-datalake` service to `camel-test-infra-azure-storage-datalake` (`camel infra run azure storage-datalake`). Floci AZ answers the DFS API only to requests for the host `<account>.dfs.core.windows.net` with no account in the path, so the client that `AzureStorageDataLakeClientUtils` builds sends its requests that way; - runs the four integration tests against it by default, and against a real account when `accountName` and `accountKey` are given. They are skipped on ppc64le and s390x, where the image is not available; - fixes the remote endpoint of `AzureStorageDataLakeClientUtils`, which had the account key in its path. Two tests assumed a shared, long-lived account: - `DataLakeProducerIT` expected the account to have file systems before the test created one; a fresh account has none. - `DataLakeConsumerIT.testPollingToFile` deleted the downloaded file at its start. The consumer, started with the context, can have written it into the (fresh) temporary directory already, and the test then failed. The delete is gone. The Blob and Queue services stay on Azurite for now (CAMEL-26613): Floci AZ 0.16.0 does not cover page blobs, `Content-MD5` on Put Blob, the copy status after Copy Blob, or the order of Get Messages, which their tests use. Their image moves from `azure.container` to `azure.storage.blob.container` and `azure.storage.queue.container`, and `azure.container` holds the Floci AZ image. The test-infra metadata takes the version of a service from the container property whose key matches one of its aliases; Blob, Queue and the Floci AZ services all have the `azure` alias, so the Azurite services get keys that match their implementation aliases. The upgrade guide notes the change. ## Testing - camel-azure-storage-datalake: the 10 integration tests pass against Floci AZ 0.16.0 (they did not run locally before). - camel-azure-storage-blob (48 ITs) and camel-azure-storage-queue (10 ITs, 6 of them remote only) pass against Azurite 3.37.0 with the new property keys. - Full reactor build; the test-infra metadata is regenerated. _Claude Code on behalf of Andrea Cosentino_ 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
