You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Set file upload at hub creation when certificate management is on - #455
provision-e2e-resources fails when enable-certificate-management and enable-file-upload are both 'true':
ERROR: ADR properties are only supported for Generation2 IoT Hub SKUs.
ERROR: "Updating Azure IoT Hub file upload settings" failed (exit code 1)
After the ADR link the S1 hub reports properties.deviceRegistry. The azure-iot CLI extension's az iot hub update rejects any non-GEN2 hub carrying it, client-side, before sending a request. Latest extension (0.33.0b1) has the same check. The action's --fileupload-notifications true update would fail the same way.
Fix (certificate management only)
Storage account/container created before the hub; storageEndpoints.$default (PT1H SAS TTL) and enableFileUploadNotifications sent in the hub create PUT.
After the ADR link, the hub is read back; provisioning fails unless storage account, container, SAS TTL and notifications all match.
Azure: in Azure/azure-iot-sdk#340 the hub create PUT with storage settings succeeded; that run then hit the transient IH400097 on DPS create, now retried. Full end-to-end validation pending.
Once a hub is linked to an ADR namespace, `az iot hub update` (azure-iot
extension) fails on S1 hubs with "ADR properties are only supported for
Generation2 IoT Hub SKUs.", because the hub then reports
properties.deviceRegistry. This broke provisioning with both
enable-certificate-management and enable-file-upload.
With certificate management:
- create the storage account before the hub and put storageEndpoints.$default
and enableFileUploadNotifications in the hub create PUT;
- after the ADR link, read the hub back and fail if those settings are gone;
- skip both `az iot hub update` calls (module and action).
Without certificate management the az calls are unchanged.
Adds tests/Test-FileUploadProvisioning.ps1 (stubbed az, no Azure) and runs it
in validate-actions.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…create
- Post-link check also compares the storage account (from the connection
string; the hub masks the key) and the PT1H SAS TTL.
- Hub and DPS create PUTs retry IH400097 "Unable to fetch credentials",
returned while the new system-assigned identity is being issued.
- Test: stub masks AccountKey on GET; new scenarios for a changed SAS TTL,
a changed storage account, and a transient IH400097 on DPS create.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This assertion does not require the container-create call to exist: Find-Call returns -1, and -1 -lt $HubPut still passes. A regression that omits container creation could therefore satisfy this ordering check even though the hub points to a nonexistent container. Require $Container -ge 0 as well.
Pins e2e provisioning in `ci-c-e2e`, `ci-c-e2e-csr` and `ci-dotnet` to
Azure/iot-sdks-e2e-fx **v1.0.1** (`b96d2aa`), replacing v1.0.0.
Since v1.0.0:
- Azure/iot-sdks-e2e-fx#454: retries transient ARM failures during
certificate-management provisioning (gateway errors on hub/DPS create;
`409 ResourceProvisioningInProgress` on ADR link re-submit). Fixes the
`setup (provision)` failures in `ci-c-e2e-csr` run 36681736303.
- Azure/iot-sdks-e2e-fx#455: sets file upload at hub creation when
certificate management is on (needed by `ci-dotnet` with certificate
management, #297).
- Azure/iot-sdks-e2e-fx#453: default location `eastus2euap` (already set
explicitly here).
**Validation**
- actionlint 1.7.12: clean. zizmor 1.30.1 (online): no findings; a wrong
version comment is reported, so `ref-version-mismatch` is checked.
- v1.0.1 commit: iot-sdks-e2e-fx module checks and `horton-gate-build`
pass.
- #454 content verified end to end earlier (runs 36683896318,
36689775583).
- PR runs of `ci-c-e2e` / `ci-c-e2e-csr` use the shared environments and
skip provisioning; full-provisioning runs are dispatched on this branch
for both. `ci-dotnet` provisions in its PR run.
Co-authored-by: ewertons <12401690+ewertons@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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
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.
Problem
provision-e2e-resourcesfails whenenable-certificate-managementandenable-file-uploadare both'true':After the ADR link the S1 hub reports
properties.deviceRegistry. The azure-iot CLI extension'saz iot hub updaterejects any non-GEN2 hub carrying it, client-side, before sending a request. Latest extension (0.33.0b1) has the same check. The action's--fileupload-notifications trueupdate would fail the same way.Fix (certificate management only)
storageEndpoints.$default(PT1HSAS TTL) andenableFileUploadNotificationssent in the hub create PUT.az iot hub updatecalls skipped.IH400097("Unable to fetch credentials"), returned while a new system-assigned identity is being issued. Seen on DPS create in [.NET] Pin e2e provisioning action to fix file upload with certificate management azure-iot-sdk#340's first run.Without certificate management the
azcalls are unchanged.Tests
New
tests/Test-FileUploadProvisioning.ps1runs the action script and module with a stubbedaz, now part ofvalidate-actions:azcalls identical to master (24/24).Validate-Module.ps1,validate-actions.mjs, actionlint: pass.Azure: in Azure/azure-iot-sdk#340 the hub create PUT with storage settings succeeded; that run then hit the transient
IH400097on DPS create, now retried. Full end-to-end validation pending.