Skip to content

Commit e78fd91

Browse files
authored
Merge pull request #569 from Azure/dev
huangpf PR: dev <- Azure:dev
2 parents a24f822 + a545e60 commit e78fd91

File tree

4 files changed

+269
-470
lines changed

4 files changed

+269
-470
lines changed

src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/ResourceGroups/SetAzureResourceGroupCmdlet.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,12 @@ public override void ExecuteCmdlet()
5858
ResourceGroupName = Name ?? ResourceIdentifier.FromResourceGroupIdentifier(this.Id).ResourceGroupName,
5959
Tag = Tag,
6060
};
61-
WriteObject(ResourceManagerSdkClient.UpdatePSResourceGroup(parameters));
61+
62+
var resourceGroup = ResourceManagerSdkClient.UpdatePSResourceGroup(parameters);
63+
if (resourceGroup != null)
64+
{
65+
WriteObject(resourceGroup);
66+
}
6267
}
6368
}
6469
}

src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/SdkClient/ResourceManagerSdkClient.cs

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,12 @@ public virtual PSResourceGroup CreatePSResourceGroup(PSCreateResourceGroupParame
551551
/// <param name="parameters">The create parameters</param>
552552
public virtual PSResourceGroup UpdatePSResourceGroup(PSUpdateResourceGroupParameters parameters)
553553
{
554+
if (!ResourceManagementClient.ResourceGroups.CheckExistence(parameters.ResourceGroupName).Value)
555+
{
556+
WriteError(ProjectResources.ResourceGroupDoesntExists);
557+
return null;
558+
}
559+
554560
ResourceGroup resourceGroup = ResourceManagementClient.ResourceGroups.Get(parameters.ResourceGroupName);
555561

556562
resourceGroup = CreateOrUpdateResourceGroup(parameters.ResourceGroupName, resourceGroup.Location, parameters.Tag);
@@ -573,12 +579,15 @@ public virtual List<PSResourceGroup> FilterResourceGroups(string name, Hashtable
573579

574580
if (string.IsNullOrEmpty(name))
575581
{
576-
var response = ResourceManagementClient.ResourceGroups.List(null);
577-
List<ResourceGroup> resourceGroups = ResourceManagementClient.ResourceGroups.List(null).ToList();
582+
List<ResourceGroup> resourceGroups = new List<ResourceGroup>();
583+
584+
var listResult = ResourceManagementClient.ResourceGroups.List(null);
585+
resourceGroups.AddRange(listResult);
578586

579-
while (!string.IsNullOrEmpty(response.NextPageLink))
587+
while (!string.IsNullOrEmpty(listResult.NextPageLink))
580588
{
581-
resourceGroups.AddRange(response);
589+
listResult = ResourceManagementClient.ResourceGroups.ListNext(listResult.NextPageLink);
590+
resourceGroups.AddRange(listResult);
582591
}
583592

584593
resourceGroups = !string.IsNullOrEmpty(location)
@@ -621,7 +630,7 @@ public virtual List<PSResourceGroup> FilterResourceGroups(string name, Hashtable
621630
}
622631
catch (CloudException)
623632
{
624-
throw new ArgumentException(ProjectResources.ResourceGroupDoesntExists);
633+
WriteError(ProjectResources.ResourceGroupDoesntExists);
625634
}
626635
}
627636

@@ -636,10 +645,12 @@ public virtual void DeleteResourceGroup(string name)
636645
{
637646
if (!ResourceManagementClient.ResourceGroups.CheckExistence(name).Value)
638647
{
639-
throw new ArgumentException(ProjectResources.ResourceGroupDoesntExists);
648+
WriteError(ProjectResources.ResourceGroupDoesntExists);
649+
}
650+
else
651+
{
652+
ResourceManagementClient.ResourceGroups.Delete(name);
640653
}
641-
642-
ResourceManagementClient.ResourceGroups.Delete(name);
643654
}
644655

645656
/// <summary>

src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourceGroupTests.ps1

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ function Test-UpdatesExistingResourceGroup
5252
try
5353
{
5454
# Test update without tag
55-
Assert-Throws { Set-AzureRmResourceGroup -Name $rgname -Tags @{"testtag" = "testval"} } "Resource group '$rgname' could not be found."
55+
Set-AzureRmResourceGroup -Name $rgname -Tags @{"testtag" = "testval"} -ErrorAction SilentlyContinue
56+
Assert-True { $Error[0] -like "*Provided resource group does not exist." }
57+
$Error.Clear()
5658

5759
$new = New-AzureRmResourceGroup -Name $rgname -Location $location
5860

@@ -94,8 +96,13 @@ function Test-CreatesAndRemoveResourceGroupViaPiping
9496
Get-AzureRmResourceGroup | where {$_.ResourceGroupName -eq $rgname1 -or $_.ResourceGroupName -eq $rgname2} | Remove-AzureRmResourceGroup -Force
9597

9698
# Assert
97-
Assert-Throws { Get-AzureRmResourceGroup -Name $rgname1 } "Provided resource group does not exist."
98-
Assert-Throws { Get-AzureRmResourceGroup -Name $rgname2 } "Provided resource group does not exist."
99+
Get-AzureRmResourceGroup -Name $rgname1 -ErrorAction SilentlyContinue
100+
Assert-True { $Error[0] -like "*Provided resource group does not exist." }
101+
$Error.Clear()
102+
103+
Get-AzureRmResourceGroup -Name $rgname2 -ErrorAction SilentlyContinue
104+
Assert-True { $Error[0] -like "*Provided resource group does not exist." }
105+
$Error.Clear()
99106
}
100107

101108
<#
@@ -107,7 +114,9 @@ function Test-GetNonExistingResourceGroup
107114
# Setup
108115
$rgname = Get-ResourceGroupName
109116

110-
Assert-Throws { Get-AzureRmResourceGroup -Name $rgname } "Provided resource group does not exist."
117+
Get-AzureRmResourceGroup -Name $rgname -ErrorAction SilentlyContinue
118+
Assert-True { $Error[0] -like "*Provided resource group does not exist." }
119+
$Error.Clear()
111120
}
112121

113122
<#
@@ -131,7 +140,9 @@ function Test-RemoveNonExistingResourceGroup
131140
# Setup
132141
$rgname = Get-ResourceGroupName
133142

134-
Assert-Throws { Remove-AzureRmResourceGroup -Name $rgname -Force } "Provided resource group does not exist."
143+
Remove-AzureRmResourceGroup -Name $rgname -Force -ErrorAction SilentlyContinue
144+
Assert-True { $Error[0] -like "*Provided resource group does not exist." }
145+
$Error.Clear()
135146
}
136147

137148
<#

src/ResourceManager/Resources/Commands.Resources.Test/SessionRecords/Microsoft.Azure.Commands.Resources.Test.ScenarioTests.ResourceGroupTests/TestUpdatesExistingResourceGroup.json

Lines changed: 228 additions & 456 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)