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]

Reply via email to