Skip to content

Commit 976a1bc

Browse files
committed
[Storage] Update perreview feedback
1 parent 1256742 commit 976a1bc

File tree

6 files changed

+58
-35
lines changed

6 files changed

+58
-35
lines changed

src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,32 +137,39 @@ function Test-Blob
137137
$objectName2 = "blobtest2.txt"
138138
$ContentType = "image/jpeg"
139139
$ContentMD5 = "i727sP7HigloQDsqadNLHw=="
140+
$StandardBlobTier = "Cool"
141+
$StandardBlobTier2 = "Hot"
140142

141143
# Create Container for blob
142144
New-AzStorageContainer $containerName -Context $storageContext
143145

144146
# Upload local file to Azure Storage Blob.
145-
$t = Set-AzStorageBlobContent -File $localSrcFile -Container $containerName -Blob $objectName1 -Force -Properties @{"ContentType" = $ContentType; "ContentMD5" = $ContentMD5} -Context $storageContext -asjob
146-
$t | wait-job
147-
Assert-AreEqual $t.State "Completed"
148-
Assert-AreEqual $t.Error $null
147+
$t = Set-AzStorageBlobContent -File $localSrcFile -Container $containerName -Blob $objectName1 -StandardBlobTier $StandardBlobTier -Force -Properties @{"ContentType" = $ContentType; "ContentMD5" = $ContentMD5} -Context $storageContext -asjob
148+
$t | wait-job
149+
Assert-AreEqual $t.State "Completed"
150+
Assert-AreEqual $t.Error $null
149151
$blob = Get-AzStorageContainer -Name $containerName -Context $storageContext | Get-AzStorageBlob
150152
Assert-AreEqual $blob.Count 1
151153
Assert-AreEqual $blob.Name $objectName1
152154
Assert-AreEqual $blob.ICloudBlob.Properties.ContentType $ContentType
153155
Assert-AreEqual $blob.ICloudBlob.Properties.ContentMD5 $ContentMD5
154-
Set-AzStorageBlobContent -File $localSrcFile -Container $containerName -Blob $objectName2 -Force -Properties @{"ContentType" = $ContentType; "ContentMD5" = $ContentMD5} -Context $storageContext
156+
Assert-AreEqual $blob.ICloudBlob.Properties.StandardBlobTier $StandardBlobTier
157+
$blob.ICloudBlob.SetStandardBlobTier($StandardBlobTier2, "High")
158+
$blob.ICloudBlob.FetchAttributes()
159+
Assert-AreEqual $blob.ICloudBlob.Properties.StandardBlobTier $StandardBlobTier2
160+
Set-AzStorageBlobContent -File $localSrcFile -Container $containerName -Blob $objectName2 -Force -Properties @{"ContentType" = $ContentType; "ContentMD5" = $ContentMD5} -Context $storageContext
155161
$blob = Get-AzStorageContainer -Name $containerName -Context $storageContext | Get-AzStorageBlob
156162
Assert-AreEqual $blob.Count 2
157163
Get-AzStorageBlob -Container $containerName -Blob $objectName2 -Context $storageContext | Remove-AzStorageBlob -Force
158164

159165
# Copy blob to the same container, but with a different name.
160-
Start-AzStorageBlobCopy -srcContainer $containerName -SrcBlob $objectName1 -DestContainer $containerName -DestBlob $objectName2 -Context $storageContext -DestContext $storageContext
166+
Start-AzStorageBlobCopy -srcContainer $containerName -SrcBlob $objectName1 -DestContainer $containerName -DestBlob $objectName2 -StandardBlobTier $StandardBlobTier -RehydratePriority High -Context $storageContext -DestContext $storageContext
161167
Get-AzStorageBlobCopyState -Container $containerName -Blob $objectName2 -Context $storageContext
162168
$blob = Get-AzStorageBlob -Container $containerName -Context $storageContext
163169
Assert-AreEqual $blob.Count 2
164170
Assert-AreEqual $blob[0].Name $objectName1
165171
Assert-AreEqual $blob[1].Name $objectName2
172+
Assert-AreEqual $blob[1].ICloudBlob.Properties.StandardBlobTier $StandardBlobTier
166173

167174
# Download storage blob to compare with the local file.
168175
Get-AzStorageBlobContent -Container $containerName -Blob $objectName2 -Destination $localDestFile -Force -Context $storageContext

src/Storage/Storage.Management/help/Set-AzStorageBlobContent.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,16 @@ Uploads a local file to an Azure Storage blob.
1717
```
1818
Set-AzStorageBlobContent [-File] <String> [-Container] <String> [-Blob <String>] [-BlobType <String>]
1919
[-Properties <Hashtable>] [-Metadata <Hashtable>] [-PremiumPageBlobTier <PremiumPageBlobTier>]
20-
[-StandardBlobTier <StandardBlobTier>] [-Force] [-AsJob] [-Context <IStorageContext>]
21-
[-ServerTimeoutPerRequest <Int32>] [-ClientTimeoutPerRequest <Int32>]
22-
[-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>] [-WhatIf] [-Confirm]
23-
[<CommonParameters>]
20+
[-StandardBlobTier <String>] [-Force] [-AsJob] [-Context <IStorageContext>] [-ServerTimeoutPerRequest <Int32>]
21+
[-ClientTimeoutPerRequest <Int32>] [-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>]
22+
[-WhatIf] [-Confirm] [<CommonParameters>]
2423
```
2524

2625
### ContainerPipeline
2726
```
2827
Set-AzStorageBlobContent [-File] <String> [-Blob <String>] -CloudBlobContainer <CloudBlobContainer>
2928
[-BlobType <String>] [-Properties <Hashtable>] [-Metadata <Hashtable>]
30-
[-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <StandardBlobTier>] [-Force] [-AsJob]
29+
[-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <String>] [-Force] [-AsJob]
3130
[-Context <IStorageContext>] [-ServerTimeoutPerRequest <Int32>] [-ClientTimeoutPerRequest <Int32>]
3231
[-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>] [-WhatIf] [-Confirm]
3332
[<CommonParameters>]
@@ -36,10 +35,10 @@ Set-AzStorageBlobContent [-File] <String> [-Blob <String>] -CloudBlobContainer <
3635
### BlobPipeline
3736
```
3837
Set-AzStorageBlobContent [-File] <String> -CloudBlob <CloudBlob> [-BlobType <String>] [-Properties <Hashtable>]
39-
[-Metadata <Hashtable>] [-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <StandardBlobTier>]
40-
[-Force] [-AsJob] [-Context <IStorageContext>] [-ServerTimeoutPerRequest <Int32>]
41-
[-ClientTimeoutPerRequest <Int32>] [-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>]
42-
[-WhatIf] [-Confirm] [<CommonParameters>]
38+
[-Metadata <Hashtable>] [-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <String>] [-Force]
39+
[-AsJob] [-Context <IStorageContext>] [-ServerTimeoutPerRequest <Int32>] [-ClientTimeoutPerRequest <Int32>]
40+
[-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>] [-WhatIf] [-Confirm]
41+
[<CommonParameters>]
4342
```
4443

4544
## DESCRIPTION
@@ -378,7 +377,7 @@ Block Blob Tier, valid values are Hot/Cool/Archive.
378377
See detail in https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers
379378
380379
```yaml
381-
Type: Microsoft.Azure.Storage.Blob.StandardBlobTier
380+
Type: System.String
382381
Parameter Sets: (All)
383382
Aliases:
384383

src/Storage/Storage.Management/help/Start-AzStorageBlobCopy.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Starts to copy a blob.
1616
### ContainerName (Default)
1717
```
1818
Start-AzStorageBlobCopy [-SrcBlob] <String> -SrcContainer <String> -DestContainer <String> [-DestBlob <String>]
19-
[-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <StandardBlobTier>]
19+
[-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <String>]
2020
[-RehydratePriority <RehydratePriority>] [-Context <IStorageContext>] [-DestContext <IStorageContext>]
2121
[-Force] [-ServerTimeoutPerRequest <Int32>] [-ClientTimeoutPerRequest <Int32>]
2222
[-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>] [-WhatIf] [-Confirm]
@@ -26,7 +26,7 @@ Start-AzStorageBlobCopy [-SrcBlob] <String> -SrcContainer <String> -DestContaine
2626
### BlobInstance
2727
```
2828
Start-AzStorageBlobCopy -CloudBlob <CloudBlob> -DestContainer <String> [-DestBlob <String>]
29-
[-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <StandardBlobTier>]
29+
[-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <String>]
3030
[-RehydratePriority <RehydratePriority>] [-Context <IStorageContext>] [-DestContext <IStorageContext>]
3131
[-Force] [-ServerTimeoutPerRequest <Int32>] [-ClientTimeoutPerRequest <Int32>]
3232
[-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>] [-WhatIf] [-Confirm]
@@ -36,7 +36,7 @@ Start-AzStorageBlobCopy -CloudBlob <CloudBlob> -DestContainer <String> [-DestBlo
3636
### BlobInstanceToBlobInstance
3737
```
3838
Start-AzStorageBlobCopy -CloudBlob <CloudBlob> -DestCloudBlob <CloudBlob>
39-
[-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <StandardBlobTier>]
39+
[-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <String>]
4040
[-RehydratePriority <RehydratePriority>] [-Context <IStorageContext>] [-DestContext <IStorageContext>]
4141
[-Force] [-ServerTimeoutPerRequest <Int32>] [-ClientTimeoutPerRequest <Int32>]
4242
[-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>] [-WhatIf] [-Confirm]
@@ -46,7 +46,7 @@ Start-AzStorageBlobCopy -CloudBlob <CloudBlob> -DestCloudBlob <CloudBlob>
4646
### ContainerInstance
4747
```
4848
Start-AzStorageBlobCopy -CloudBlobContainer <CloudBlobContainer> [-SrcBlob] <String> -DestContainer <String>
49-
[-DestBlob <String>] [-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <StandardBlobTier>]
49+
[-DestBlob <String>] [-PremiumPageBlobTier <PremiumPageBlobTier>] [-StandardBlobTier <String>]
5050
[-RehydratePriority <RehydratePriority>] [-Context <IStorageContext>] [-DestContext <IStorageContext>]
5151
[-Force] [-ServerTimeoutPerRequest <Int32>] [-ClientTimeoutPerRequest <Int32>]
5252
[-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>] [-WhatIf] [-Confirm]
@@ -56,7 +56,7 @@ Start-AzStorageBlobCopy -CloudBlobContainer <CloudBlobContainer> [-SrcBlob] <Str
5656
### ShareName
5757
```
5858
Start-AzStorageBlobCopy -SrcShareName <String> -SrcFilePath <String> -DestContainer <String>
59-
[-DestBlob <String>] [-StandardBlobTier <StandardBlobTier>] [-RehydratePriority <RehydratePriority>]
59+
[-DestBlob <String>] [-StandardBlobTier <String>] [-RehydratePriority <RehydratePriority>]
6060
[-Context <IStorageContext>] [-DestContext <IStorageContext>] [-Force] [-ServerTimeoutPerRequest <Int32>]
6161
[-ClientTimeoutPerRequest <Int32>] [-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>]
6262
[-WhatIf] [-Confirm] [<CommonParameters>]
@@ -65,7 +65,7 @@ Start-AzStorageBlobCopy -SrcShareName <String> -SrcFilePath <String> -DestContai
6565
### ShareInstance
6666
```
6767
Start-AzStorageBlobCopy -SrcShare <CloudFileShare> -SrcFilePath <String> -DestContainer <String>
68-
[-DestBlob <String>] [-StandardBlobTier <StandardBlobTier>] [-RehydratePriority <RehydratePriority>]
68+
[-DestBlob <String>] [-StandardBlobTier <String>] [-RehydratePriority <RehydratePriority>]
6969
[-Context <IStorageContext>] [-DestContext <IStorageContext>] [-Force] [-ServerTimeoutPerRequest <Int32>]
7070
[-ClientTimeoutPerRequest <Int32>] [-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>]
7171
[-WhatIf] [-Confirm] [<CommonParameters>]
@@ -74,7 +74,7 @@ Start-AzStorageBlobCopy -SrcShare <CloudFileShare> -SrcFilePath <String> -DestCo
7474
### DirInstance
7575
```
7676
Start-AzStorageBlobCopy -SrcDir <CloudFileDirectory> -SrcFilePath <String> -DestContainer <String>
77-
[-DestBlob <String>] [-StandardBlobTier <StandardBlobTier>] [-RehydratePriority <RehydratePriority>]
77+
[-DestBlob <String>] [-StandardBlobTier <String>] [-RehydratePriority <RehydratePriority>]
7878
[-Context <IStorageContext>] [-DestContext <IStorageContext>] [-Force] [-ServerTimeoutPerRequest <Int32>]
7979
[-ClientTimeoutPerRequest <Int32>] [-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>]
8080
[-WhatIf] [-Confirm] [<CommonParameters>]
@@ -83,15 +83,15 @@ Start-AzStorageBlobCopy -SrcDir <CloudFileDirectory> -SrcFilePath <String> -Dest
8383
### FileInstance
8484
```
8585
Start-AzStorageBlobCopy -SrcFile <CloudFile> -DestContainer <String> [-DestBlob <String>]
86-
[-StandardBlobTier <StandardBlobTier>] [-RehydratePriority <RehydratePriority>] [-Context <IStorageContext>]
86+
[-StandardBlobTier <String>] [-RehydratePriority <RehydratePriority>] [-Context <IStorageContext>]
8787
[-DestContext <IStorageContext>] [-Force] [-ServerTimeoutPerRequest <Int32>]
8888
[-ClientTimeoutPerRequest <Int32>] [-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>]
8989
[-WhatIf] [-Confirm] [<CommonParameters>]
9090
```
9191

9292
### FileInstanceToBlobInstance
9393
```
94-
Start-AzStorageBlobCopy -SrcFile <CloudFile> -DestCloudBlob <CloudBlob> [-StandardBlobTier <StandardBlobTier>]
94+
Start-AzStorageBlobCopy -SrcFile <CloudFile> -DestCloudBlob <CloudBlob> [-StandardBlobTier <String>]
9595
[-RehydratePriority <RehydratePriority>] [-Context <IStorageContext>] [-DestContext <IStorageContext>]
9696
[-Force] [-ServerTimeoutPerRequest <Int32>] [-ClientTimeoutPerRequest <Int32>]
9797
[-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>] [-WhatIf] [-Confirm]
@@ -101,7 +101,7 @@ Start-AzStorageBlobCopy -SrcFile <CloudFile> -DestCloudBlob <CloudBlob> [-Standa
101101
### UriPipeline
102102
```
103103
Start-AzStorageBlobCopy -AbsoluteUri <String> -DestContainer <String> -DestBlob <String>
104-
[-StandardBlobTier <StandardBlobTier>] [-RehydratePriority <RehydratePriority>] [-Context <IStorageContext>]
104+
[-StandardBlobTier <String>] [-RehydratePriority <RehydratePriority>] [-Context <IStorageContext>]
105105
[-DestContext <IStorageContext>] [-Force] [-ServerTimeoutPerRequest <Int32>]
106106
[-ClientTimeoutPerRequest <Int32>] [-DefaultProfile <IAzureContextContainer>] [-ConcurrentTaskCount <Int32>]
107107
[-WhatIf] [-Confirm] [<CommonParameters>]
@@ -544,7 +544,7 @@ Block Blob Tier, valid values are Hot/Cool/Archive.
544544
See detail in https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers
545545
546546
```yaml
547-
Type: Microsoft.Azure.Storage.Blob.StandardBlobTier
547+
Type: System.String
548548
Parameter Sets: (All)
549549
Aliases:
550550

src/Storage/Storage/Blob/Cmdlet/SetAzureStorageBlobContent.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
using StorageBlob = Microsoft.Azure.Storage.Blob;
2929
using Microsoft.WindowsAzure.Commands.Utilities.Common;
3030
using Microsoft.WindowsAzure.Commands.Common;
31+
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
3132

3233
namespace Microsoft.WindowsAzure.Commands.Storage.Blob
3334
{
@@ -171,17 +172,25 @@ public PremiumPageBlobTier PremiumPageBlobTier
171172
private PremiumPageBlobTier? pageBlobTier = null;
172173

173174
[Parameter(HelpMessage = "Block Blob Tier, valid values are Hot/Cool/Archive. See detail in https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers", Mandatory = false)]
175+
[PSArgumentCompleter("Hot", "Cool", "Archive")]
174176
[ValidateSet("Hot", "Cool", "Archive", IgnoreCase = true)]
175-
public StandardBlobTier StandardBlobTier
177+
public string StandardBlobTier
176178
{
177179
get
178180
{
179-
return standardBlobTier.Value;
181+
return standardBlobTier is null ? null : standardBlobTier.Value.ToString();
180182
}
181183

182184
set
183185
{
184-
standardBlobTier = value;
186+
if (value != null)
187+
{
188+
standardBlobTier = ((StandardBlobTier)Enum.Parse(typeof(StandardBlobTier), value, true));
189+
}
190+
else
191+
{
192+
standardBlobTier = null;
193+
}
185194
}
186195
}
187196
private StandardBlobTier? standardBlobTier = null;
@@ -548,7 +557,6 @@ public override void ExecuteCmdlet()
548557
DoBeginProcessing();
549558
}
550559

551-
552560
// Validate the Blob Tier matches with blob Type
553561
StorageBlob.BlobType type = StorageBlob.BlobType.BlockBlob;
554562
if (string.Equals(blobType, BlockBlobType, StringComparison.InvariantCultureIgnoreCase))

src/Storage/Storage/Blob/Cmdlet/StartAzureStorageBlobCopy.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet
3333
using System.Reflection;
3434
using System.Security.Permissions;
3535
using System.Threading.Tasks;
36+
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
3637

3738
[Cmdlet("Start", Azure.Commands.ResourceManager.Common.AzureRMConstants.AzurePrefix + "StorageBlobCopy", SupportsShouldProcess = true, DefaultParameterSetName = ContainerNameParameterSet),OutputType(typeof(AzureStorageBlob))]
3839
[Alias("Start-CopyAzureStorageBlob")]
@@ -198,17 +199,25 @@ public PremiumPageBlobTier PremiumPageBlobTier
198199
private PremiumPageBlobTier? pageBlobTier = null;
199200

200201
[Parameter(HelpMessage = "Block Blob Tier, valid values are Hot/Cool/Archive. See detail in https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers", Mandatory = false)]
202+
[PSArgumentCompleter("Hot", "Cool", "Archive")]
201203
[ValidateSet("Hot", "Cool", "Archive", IgnoreCase = true)]
202-
public StandardBlobTier StandardBlobTier
204+
public string StandardBlobTier
203205
{
204206
get
205207
{
206-
return standardBlobTier.Value;
208+
return standardBlobTier is null ? null : standardBlobTier.Value.ToString();
207209
}
208210

209211
set
210212
{
211-
standardBlobTier = value;
213+
if (value != null)
214+
{
215+
standardBlobTier = ((StandardBlobTier)Enum.Parse(typeof(StandardBlobTier), value, true));
216+
}
217+
else
218+
{
219+
standardBlobTier = null;
220+
}
212221
}
213222
}
214223
private StandardBlobTier? standardBlobTier = null;

src/Storage/Storage/Blob/StorageCloudBlobCmdletBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ protected void ValidateBlobTier(BlobType type, PremiumPageBlobTier? pageBlobTier
250250
{
251251
throw new ArgumentOutOfRangeException("BlobType, PageBlobTier", String.Format("PremiumPageBlobTier can only be set to Page Blob. The Current BlobType is: {0}", type));
252252
}
253-
if (((standardBlobTier != null || rehydratePriority != null))
253+
if ((standardBlobTier != null || rehydratePriority != null)
254254
&& (type != BlobType.BlockBlob))
255255
{
256256
throw new ArgumentOutOfRangeException("BlobType, StandardBlobTier/RehydratePriority", String.Format("StandardBlobTier and RehydratePriority can only be set to Block Blob. The Current BlobType is: {0}", type));

0 commit comments

Comments
 (0)