Skip to content

Commit 22119ca

Browse files
authored
feat: support "automitigate" parameter (#14635)
* add automitigate, tests and help * fix indentation
1 parent 4307ec3 commit 22119ca

File tree

7 files changed

+824
-6
lines changed

7 files changed

+824
-6
lines changed

src/Monitor/Monitor.Test/Alerts/AddAzureRmMetricAlertRuleV2Tests.cs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,57 @@ public void NewMetricAlertRuleV2ByTargetResourceScopeActionGroupAndActionGroupId
136136
It.IsAny<CancellationToken>()), Times.Once);
137137
}
138138

139+
140+
[Fact]
141+
[Trait(Category.AcceptanceType, Category.CheckIn)]
142+
public void NewMetricAlertRuleV2WithFalseAutoMitigateFlag()
143+
{
144+
_cmdlet.AutoMitigate = false;
145+
_cmdlet.ExecuteCmdlet();
146+
147+
Func<MetricAlertResource, bool> verify = metricAlert =>
148+
{
149+
Assert.Equal(false, metricAlert.AutoMitigate);
150+
return true;
151+
};
152+
153+
this._insightsMetricAlertsOperationsMock.Verify(o => o.CreateOrUpdateWithHttpMessagesAsync(It.IsAny<string>(), It.IsAny<string>(), It.Is<MetricAlertResource>(r => verify(r)), It.IsAny<Dictionary<string, List<string>>>(),
154+
It.IsAny<CancellationToken>()), Times.Once);
155+
}
156+
157+
[Fact]
158+
[Trait(Category.AcceptanceType, Category.CheckIn)]
159+
public void NewMetricAlertRuleV2WithTrueAutoMitigateFlag()
160+
{
161+
_cmdlet.AutoMitigate = true; ;
162+
_cmdlet.ExecuteCmdlet();
163+
164+
Func<MetricAlertResource, bool> verify = metricAlert =>
165+
{
166+
Assert.Equal(true, metricAlert.AutoMitigate);
167+
return true;
168+
};
169+
170+
this._insightsMetricAlertsOperationsMock.Verify(o => o.CreateOrUpdateWithHttpMessagesAsync(It.IsAny<string>(), It.IsAny<string>(), It.Is<MetricAlertResource>(r => verify(r)), It.IsAny<Dictionary<string, List<string>>>(),
171+
It.IsAny<CancellationToken>()), Times.Once);
172+
}
173+
174+
[Fact]
175+
[Trait(Category.AcceptanceType, Category.CheckIn)]
176+
public void NewMetricAlertRuleV2WithDefaultAutoMitigateFlag()
177+
{
178+
_cmdlet.ExecuteCmdlet();
179+
180+
Func<MetricAlertResource, bool> verify = metricAlert =>
181+
{
182+
Assert.Equal(true, metricAlert.AutoMitigate);
183+
return true;
184+
};
185+
186+
this._insightsMetricAlertsOperationsMock.Verify(o => o.CreateOrUpdateWithHttpMessagesAsync(It.IsAny<string>(), It.IsAny<string>(), It.Is<MetricAlertResource>(r => verify(r)), It.IsAny<Dictionary<string, List<string>>>(),
187+
It.IsAny<CancellationToken>()), Times.Once);
188+
}
189+
139190
[Fact]
140191
[Trait(Category.AcceptanceType, Category.CheckIn)]
141192
public void NewMetricAlertRuleV2WithWebtestConditionProcessing()

src/Monitor/Monitor.Test/ScenarioTests/AlertsTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,13 @@ public void TestAddAzureRmMetricAlertRuleV2WithSkipMetricValidation()
127127
TestsController.NewInstance.RunPsTest(_logger, "Test-AddAzureRmMetricAlertRuleV2-SkipMetricValidation");
128128
}
129129

130+
[Fact]
131+
[Trait(Category.AcceptanceType, Category.CheckIn)]
132+
public void TestAddAzureRmMetricAlertRuleV2WithAutoMitigate()
133+
{
134+
TestsController.NewInstance.RunPsTest(_logger, "Test-AddAzureRmMetricAlertRuleV2-autoMitigate");
135+
}
136+
130137
[Fact]
131138
[Trait(Category.AcceptanceType, Category.CheckIn)]
132139
public void TestDisableAzureRmMetricAlertRuleV2WithActionGroups()

src/Monitor/Monitor.Test/ScenarioTests/AlertsTests.ps1

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,39 @@ function Test-AddAzureRmMetricAlertRuleV2-skipMetricValidation
440440
}
441441

442442

443+
<#
444+
.SYNOPSIS
445+
Tests adding a GenV2 metric alert rule with AutoMitigate = false
446+
#>
447+
function Test-AddAzureRmMetricAlertRuleV2-autoMitigate
448+
{
449+
# Setup
450+
$sub = Get-AzContext
451+
$subscription = $sub.subscription.subscriptionId
452+
$rgname = Get-ResourceGroupName
453+
$location =Get-ProviderLocation ResourceManagement
454+
$resourceName = Get-ResourceName
455+
$ruleName = Get-ResourceName
456+
$targetResourceId = '/subscriptions/'+$subscription+'/resourceGroups/'+$rgname+'/providers/Microsoft.Storage/storageAccounts/'+$resourceName
457+
New-AzResourceGroup -Name $rgname -Location $location -Force
458+
New-AzStorageAccount -ResourceGroupName $rgname -Name $resourceName -Location $location -Type Standard_GRS
459+
$condition = New-AzMetricAlertRuleV2Criteria -MetricName "UsedCapacity" -Operator GreaterThan -Threshold 8 -TimeAggregation Average
460+
try
461+
{
462+
# Test
463+
$actual = Add-AzMetricAlertRuleV2 -Name $ruleName -ResourceGroupName $rgname -WindowSize 01:00:00 -Frequency 00:01:00 -TargetResourceId $targetResourceId -Condition $condition -Severity 3 -AutoMitigate $false
464+
Assert-AreEqual $actual.Name $ruleName
465+
}
466+
finally
467+
{
468+
# Cleanup
469+
Remove-AzMetricAlertRuleV2 -ResourceGroupName $rgname -Name $ruleName
470+
Remove-AzureRmStorageAccount -ResourceGroupName $rgName -Name $resourceName
471+
Remove-AzResourceGroup -Name $rgname -Force
472+
}
473+
}
474+
475+
443476
<#
444477
.SYNOPSIS
445478
Tests disabling a GenV2 metric alert rule with action groups.

0 commit comments

Comments
 (0)