feat: Add Testcontainers.FlociAz module#1
Closed
thomhurst wants to merge 1 commit into
Closed
Conversation
Adds a module for floci-az (https://floci.io/az/), the floci Azure emulator. Complements the existing Testcontainers.Floci (AWS) module. The emulator serves all REST services on one port (4577), routed by path suffix (/{account}, /{account}-queue, /{account}-table, ...), with Event Hubs and Service Bus AMQP on 5672/5673. The container exposes an Azurite-format storage connection string, a generic GetServiceEndpoint(service) for the path-routed services, a Cosmos connection string, and the AMQP endpoints.
Owner
Author
|
Superseded by upstream PR testcontainers#1729 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds
Testcontainers.FlociAz, a module for floci-az, the floci Azure emulator — complementing the existingTestcontainers.Floci(AWS) module.floci-az serves its 22 Azure services on a single REST port (4577), routed by URL path suffix (
/{account}for blob,/{account}-queue,/{account}-table,/{account}-cosmos, ...), plus Event Hubs (5672) and Service Bus (5673) AMQP endpoints.The container class exposes:
GetConnectionString()— Azurite-format storage connection string (Blob/Queue/Table)GetServiceEndpoint(string service = null)— generic accessor for the path-routed servicesGetCosmosConnectionString()GetEventHubsEndpoint()/GetServiceBusEndpoint()The builder binds 4577/5672/5673 and waits on
GET /_floci/health.Why is it important?
floci-az is a separate image (
floci/floci-az) with a different port, credential model (Azure account name/key), and connection semantics than the AWS emulator, so it warrants its own package per the one-module-one-image convention.Related issues
Tests cover Blob upload/download, Queue send/receive, and Table entity round-trips against
floci/floci-az:0.9.0(pinned by digest). The tests use functional operations instead ofGetPropertiesAsyncdue to upstream emulator bugs filed as floci-io/floci-az#131 and floci-io/floci-az#132.