-
Notifications
You must be signed in to change notification settings - Fork 4k
[Storage] File cmdlet Track2, listblob track2 #19573
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
c6b7c44
to
e02d84e
Compare
/azp run |
Azure Pipelines successfully started running 3 pipeline(s). |
Hi @blueww, @wyunchi-ms, we recently had a production outage that I think I am able to track back to this change (in case you have access to it, we had opened Azure support case #2301120040007569). I am just looking for confirmation for our customer-facing root cause analysis that this change would have caused the following behavior change: If you load blobs with I confirmed that the behavior changed in version 4.10.0 of the Az.Storage powershell module through testing and I think this change had the unintended side effect that I described. This caused us an issue particularly because it meant that scripts which set properties on Blobs would actually remove properties that were set by other scripts since none of the scripts were calling
Prior to these changes it was not required to call |
Thanks for raising the issue! On Az.Storage 5.0.0 (released on 2022-10-17), the The change is caused to implement new storage features, we need to migrate Powershell cmdlets from v11 .net SDK to v12 .net SDK. The "ICloudBlob.Properties.ContentType" matches to "ListBlobProperties.Properties.ContentType" (only for list blob) or "ListBlobProperties.Properties.ContentType". The "ICloudBlob.Properties.CacheControl" matches to "ListBlobProperties.Properties.CacheControl" (only for list blob) or "ListBlobProperties.Properties.CacheControl". If you still want to use properties in "ICloudBlob.Properties", please run "ICloudBlob.FetchAttributes()" before use it. This is a breaking change, so we have followed the breaking change process: the breaking change happens on a major release.
|
@blueww thank you for the response! Just FYI I actually think this broke in 4.10.0 based on my findings. Here is a screenshot showing the change: The top-left is old AzureRM, top-right is 4.9.0, bottom-right is 4.10.0 where the behavior changed. |
It looks Az.Storage 4.10.0 is released just 5 days before 5.0.0, and the breaking change PR is already merged in when it's released. @chandlerkent |
@blueww thank you for confirmation! We already applied the fix and can confirm it is working. Since this caused our customers a production outage, we needed to provide a root cause, which you have helped us confirm. Thanks again! |
Description
Migrate file cmdlets to Track2 SDK, and list blob cmdlet to track2 SDK.
No cmdlet interface change, so no design doc needed
Add a static analysis breaking exception, since the "Get-AzStorageFileCopyState" cmdlet old return type "CopyState" and the new return type "PSCopyState" has exactly same child properties, so it should not be taken as breaking.
Checklist
CONTRIBUTING.md
and reviewed the following information:generation
branch.ChangeLog.md
file(s) appropriatelyChangeLog.md
file can be found atsrc/{{SERVICE}}/{{SERVICE}}/ChangeLog.md
## Upcoming Release
header in the past tense. Add changelog in description section if PR goes intogeneration
branch.ChangeLog.md
if no new release is required, such as fixing test case only.