oscerd opened a new pull request, #29238: URL: https://github.com/apache/camel/pull/29238
**Depends on #29229** (CAMEL-26615), which adds the Floci AZ container to the Azure test-infra: until #29229 is merged, this PR also shows its commit. It stays a draft until then. ## Description The integration tests of camel-azure-functions (`FunctionsProducerInvokeIT`, `FunctionsProducerManagementIT`) ran only against a real function app and subscription. [Floci AZ](https://github.com/floci-io/floci-az) emulates function apps as `Microsoft.Web/sites` resources of its Azure Resource Manager endpoint. Its 0.16.0 release serves only a small part of them, so this PR covers what it can: - adds a `camel-test-infra-azure-functions` module: a local service on Floci AZ with its Functions service in mocked mode (no Docker socket and no function runtime image needed; `camel infra run azure functions`), a remote one with the subscription and resource group the ITs already take, and `AzureFunctionsClientUtils`, which builds an `AppServiceManager` for Floci AZ. The Azure SDK sets its token on HTTPS requests only, while Floci AZ serves plain HTTP: the manager is built for the HTTPS address and a policy sends its requests over HTTP once the token is set; - runs `FunctionsProducerManagementIT` against Floci AZ by default, on a function app it creates there, through the `appServiceManager` option, and against Azure, as before, when a subscription is given. Locally, `testListFunctionApps` and a new `testDeleteFunctionApp` run; - skips the integration tests on ppc64le and s390x, where the Floci AZ image is not available. Remote only, with the reason in their `disabledReason`: - `testGetFunctionApp`, `testListFunctions`, `testGetFunctionAppConfiguration` and `testListTags`: to get a function app, the Azure SDK also reads the `config/logs` of the site, which Floci AZ 0.16.0 does not serve (`GET .../sites/{name}/config/logs` answers 404 `ResourceNotFound`); nor does it serve the functions or the app settings of a site, keep its tags, or give its `defaultHostName`; - `FunctionsProducerInvokeIT`: the component invokes `https://<functionApp>.azurewebsites.net/api/<functionName>`, and has no option to invoke the functions of Floci AZ, which are served on `<address>/devstoreaccount1-functions/api/<functionApp>/<functionName>`. ## Testing - `FunctionsProducerManagementIT`: 2 tests pass against Floci AZ 0.16.0, 4 are remote only; `FunctionsProducerInvokeIT` is remote only; the unit tests pass. - With a subscription given, the tests go to Azure through the component's own credential path, and no container starts. - 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]
