Skip to content

Commit 2309d69

Browse files
authored
Merge pull request Azure#7021 from markcowl/diagSettings
[Insights] Using SDK 20.1-preview with some fixes. Fixing reported issues with the Diagnostic Settings cmdlets Azure#6998
2 parents 522c59b + d639550 commit 2309d69

25 files changed

+579
-330
lines changed

src/ResourceManager/Insights/Commands.Insights.Test/ActionGroups/GetAzureRmActionGroupCommandTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ public void GetActionGroupCommandParametersProcessing()
109109
// Error
110110
cmdlet.ResourceGroupName = " ";
111111
cmdlet.Name = Utilities.Name;
112-
Assert.Throws<PSArgumentException>(() => cmdlet.ExecuteCmdlet());
112+
var argException = Assert.Throws<PSInvalidOperationException>(() => cmdlet.ExecuteCmdlet());
113+
Assert.Contains("PSArgumentException", argException.ToString());
113114
}
114115
}
115116
}

src/ResourceManager/Insights/Commands.Insights.Test/Commands.Insights.Test.Netcore.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
</PropertyGroup>
2525

2626
<ItemGroup>
27-
<PackageReference Include="Microsoft.Azure.Management.Monitor" Version="0.19.1-preview" />
27+
<PackageReference Include="Microsoft.Azure.Management.Monitor" Version="0.20.1-preview" />
2828
</ItemGroup>
2929

3030
<ItemGroup>

src/ResourceManager/Insights/Commands.Insights.Test/Commands.Insights.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
</PropertyGroup>
5555
<ItemGroup>
5656
<Reference Include="Microsoft.Azure.Management.Monitor">
57-
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Monitor.0.19.1-preview\lib\net452\Microsoft.Azure.Management.Monitor.dll</HintPath>
57+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Monitor.0.20.1-preview\lib\net452\Microsoft.Azure.Management.Monitor.dll</HintPath>
5858
</Reference>
5959
</ItemGroup>
6060
<ItemGroup>

src/ResourceManager/Insights/Commands.Insights.Test/Diagnostics/GetDiagnosticSettingCommandTests.cs

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ public class GetDiagnosticSettingCommandTests
3333
private readonly Mock<IDiagnosticSettingsOperations> insightsDiagnosticsOperationsMock;
3434
private Mock<ICommandRuntime> commandRuntimeMock;
3535
private Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResource> response;
36+
private Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResourceCollection> multipleResponse;
3637
private const string resourceId = "/subscriptions/123/resourcegroups/rg/providers/rp/resource/myresource";
3738
private string calledResourceId;
3839
private string diagnosticSettingName;
40+
private bool singleResult;
3941

4042
public GetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper output)
4143
{
@@ -49,15 +51,15 @@ public GetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper out
4951
MonitorManagementClient = insightsManagementClientMock.Object
5052
};
5153

52-
response = new Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResource>()
54+
singleResult = true;
55+
56+
DiagnosticSettingsResource resource = new DiagnosticSettingsResource
5357
{
54-
Body = new DiagnosticSettingsResource
55-
{
56-
EventHubName = "",
57-
EventHubAuthorizationRuleId = "",
58-
StorageAccountId = "/subscriptions/123/resourcegroups/rg/providers/microsoft.storage/accounts/myaccount",
59-
WorkspaceId = "",
60-
Logs = new List<LogSettings>
58+
EventHubName = "",
59+
EventHubAuthorizationRuleId = "",
60+
StorageAccountId = "/subscriptions/123/resourcegroups/rg/providers/microsoft.storage/accounts/myaccount",
61+
WorkspaceId = "",
62+
Logs = new List<LogSettings>
6163
{
6264
new LogSettings
6365
{
@@ -80,7 +82,7 @@ public GetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper out
8082
Enabled = false
8183
}
8284
},
83-
Metrics = new List<MetricSettings>
85+
Metrics = new List<MetricSettings>
8486
{
8587
new MetricSettings
8688
{
@@ -104,7 +106,11 @@ public GetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper out
104106
TimeGrain = TimeSpan.FromHours(1)
105107
}
106108
}
107-
}
109+
};
110+
111+
response = new Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResource>()
112+
{
113+
Body = resource
108114
};
109115

110116
insightsDiagnosticsOperationsMock.Setup(f => f.GetWithHttpMessagesAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<Dictionary<string, List<string>>>(), It.IsAny<CancellationToken>()))
@@ -113,6 +119,22 @@ public GetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper out
113119
{
114120
this.calledResourceId = resourceId;
115121
this.diagnosticSettingName = name;
122+
this.singleResult = true;
123+
});
124+
125+
multipleResponse = new Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResourceCollection>()
126+
{
127+
Body = new DiagnosticSettingsResourceCollection(
128+
value: new List<DiagnosticSettingsResource>() { resource })
129+
};
130+
131+
insightsDiagnosticsOperationsMock.Setup(f => f.ListWithHttpMessagesAsync(It.IsAny<string>(), It.IsAny<Dictionary<string, List<string>>>(), It.IsAny<CancellationToken>()))
132+
.Returns(Task.FromResult(multipleResponse))
133+
.Callback((string resourceId, Dictionary<string, List<string>> headers, CancellationToken cancellationToken) =>
134+
{
135+
this.calledResourceId = resourceId;
136+
this.diagnosticSettingName = "service";
137+
this.singleResult = false;
116138
});
117139

118140
insightsManagementClientMock.SetupGet(f => f.DiagnosticSettings).Returns(this.insightsDiagnosticsOperationsMock.Object);
@@ -127,6 +149,15 @@ public void GetDiagnosticSettingCommandParametersProcessing()
127149

128150
Assert.Equal(resourceId, this.calledResourceId);
129151
Assert.Equal("service", this.diagnosticSettingName);
152+
Assert.False(singleResult, "Single result is not false");
153+
154+
cmdlet.ResourceId = resourceId;
155+
cmdlet.Name = "service";
156+
cmdlet.ExecuteCmdlet();
157+
158+
Assert.Equal(resourceId, this.calledResourceId);
159+
Assert.Equal("service", this.diagnosticSettingName);
160+
Assert.True(singleResult, "Single result is not true");
130161
}
131162
}
132163
}

src/ResourceManager/Insights/Commands.Insights.Test/Diagnostics/RemoveDiagnosticSettingCommandTests.cs

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public class RemoveDiagnosticSettingCommandTests
3434
private Mock<ICommandRuntime> commandRuntimeMock;
3535
private const string ResourceId = "/subscriptions/123/resourcegroups/rg/providers/rp/resource/myresource";
3636
private Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResource> response;
37+
private Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResourceCollection> multipleResponse;
3738
DiagnosticSettingsResource calledSettings = null;
3839

3940
private string resourceIdIn;
@@ -51,20 +52,14 @@ public RemoveDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper
5152
MonitorManagementClient = insightsManagementClientMock.Object
5253
};
5354

54-
response = new Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResource>()
55+
var resource = new DiagnosticSettingsResource(name: "service")
5556
{
56-
RequestId = Guid.NewGuid().ToString(),
57-
Response = new System.Net.Http.HttpResponseMessage
58-
{
59-
StatusCode = System.Net.HttpStatusCode.OK
60-
},
61-
Body = new DiagnosticSettingsResource
62-
{
63-
EventHubName = "",
64-
EventHubAuthorizationRuleId = "",
65-
StorageAccountId = "/subscriptions/123/resourcegroups/rg/providers/microsoft.storage/accounts/myaccount",
66-
WorkspaceId = "",
67-
Logs = new List<LogSettings>
57+
58+
EventHubName = "",
59+
EventHubAuthorizationRuleId = "",
60+
StorageAccountId = "/subscriptions/123/resourcegroups/rg/providers/microsoft.storage/accounts/myaccount",
61+
WorkspaceId = "",
62+
Logs = new List<LogSettings>
6863
{
6964
new LogSettings
7065
{
@@ -87,7 +82,7 @@ public RemoveDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper
8782
Enabled = false
8883
}
8984
},
90-
Metrics = new List<MetricSettings>
85+
Metrics = new List<MetricSettings>
9186
{
9287
new MetricSettings
9388
{
@@ -111,7 +106,16 @@ public RemoveDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper
111106
TimeGrain = TimeSpan.FromHours(1)
112107
}
113108
}
114-
}
109+
};
110+
111+
response = new Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResource>()
112+
{
113+
RequestId = Guid.NewGuid().ToString(),
114+
Response = new System.Net.Http.HttpResponseMessage
115+
{
116+
StatusCode = System.Net.HttpStatusCode.OK
117+
},
118+
Body = resource
115119
};
116120

117121
insightsDiagnosticsOperationsMock.Setup(f => f.DeleteWithHttpMessagesAsync(
@@ -165,6 +169,20 @@ public RemoveDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper
165169
this.settingName = name;
166170
});
167171

172+
multipleResponse = new Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResourceCollection>()
173+
{
174+
Body = new DiagnosticSettingsResourceCollection(
175+
value: new List<DiagnosticSettingsResource>() { resource })
176+
};
177+
178+
insightsDiagnosticsOperationsMock.Setup(f => f.ListWithHttpMessagesAsync(It.IsAny<string>(), It.IsAny<Dictionary<string, List<string>>>(), It.IsAny<CancellationToken>()))
179+
.Returns(Task.FromResult(multipleResponse))
180+
.Callback((string resourceId, Dictionary<string, List<string>> headers, CancellationToken cancellationToken) =>
181+
{
182+
resourceIdIn = resourceId;
183+
this.settingName = "service";
184+
});
185+
168186
insightsManagementClientMock.SetupGet(f => f.DiagnosticSettings).Returns(this.insightsDiagnosticsOperationsMock.Object);
169187

170188
cmdlet.ResourceId = ResourceId;

src/ResourceManager/Insights/Commands.Insights.Test/Diagnostics/SetDiagnosticSettingCommandTests.cs

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public class SetDiagnosticSettingCommandTests
4242
DiagnosticSettingsResource ExistingSetting;
4343
DiagnosticSettingsResource calledSettings = null;
4444

45+
private Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResourceCollection> multipleResponse;
46+
4547
public SetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper output)
4648
{
4749
ServiceManagemenet.Common.Models.XunitTracingInterceptor.AddToContext(new ServiceManagemenet.Common.Models.XunitTracingInterceptor(output));
@@ -54,7 +56,7 @@ public SetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper out
5456
MonitorManagementClient = insightsManagementClientMock.Object
5557
};
5658

57-
this.ExistingSetting = GetDefaultSetting();
59+
this.ExistingSetting = GetDefaultSetting(name: "service");
5860

5961
insightsDiagnosticsOperationsMock.Setup(f => f.GetWithHttpMessagesAsync(
6062
It.IsAny<string>(),
@@ -81,14 +83,30 @@ public SetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper out
8183
Logs = x.Logs,
8284
Metrics = x.Metrics,
8385
StorageAccountId = x.StorageAccountId,
84-
WorkspaceId = x.WorkspaceId
86+
WorkspaceId = x.WorkspaceId,
87+
ServiceBusRuleId = x.ServiceBusRuleId
8588
};
8689
return Task.FromResult(new AzureOperationResponse<DiagnosticSettingsResource>
8790
{
8891
Body = x
8992
});
9093
});
9194

95+
multipleResponse = new Microsoft.Rest.Azure.AzureOperationResponse<DiagnosticSettingsResourceCollection>()
96+
{
97+
Body = new DiagnosticSettingsResourceCollection(
98+
value: new List<DiagnosticSettingsResource>() { this.ExistingSetting })
99+
};
100+
101+
insightsDiagnosticsOperationsMock.Setup(f => f.ListWithHttpMessagesAsync(It.IsAny<string>(), It.IsAny<Dictionary<string, List<string>>>(), It.IsAny<CancellationToken>()))
102+
.Returns((string rsId, Dictionary<string, List<string>> head, CancellationToken token) =>
103+
{
104+
// this.calledResourceId = resourceId;
105+
// this.diagnosticSettingName = "service";
106+
this.calledSettings = multipleResponse.Body.Value[0];
107+
return Task.FromResult(multipleResponse);
108+
});
109+
92110
insightsManagementClientMock.SetupGet(f => f.DiagnosticSettings).Returns(this.insightsDiagnosticsOperationsMock.Object);
93111

94112
cmdlet.ResourceId = resourceId;
@@ -140,7 +158,7 @@ public void SetServiceBus()
140158
cmdlet.ExecuteCmdlet();
141159

142160
DiagnosticSettingsResource expectedSettings = GetDefaultSetting();
143-
expectedSettings.EventHubName = newServiceBusId;
161+
expectedSettings.ServiceBusRuleId = newServiceBusId;
144162

145163
VerifyCalledOnce();
146164
VerifySettings(expectedSettings, this.calledSettings);
@@ -150,6 +168,8 @@ public void SetServiceBus()
150168
cmdlet.EventHubName = newServiceBusId;
151169
cmdlet.MyInvocation.BoundParameters[SetAzureRmDiagnosticSettingCommand.EventHubNameParamName] = newServiceBusId;
152170
cmdlet.ExecuteCmdlet();
171+
expectedSettings.EventHubName = newServiceBusId;
172+
expectedSettings.ServiceBusRuleId = null;
153173

154174
VerifySettings(expectedSettings, this.calledSettings);
155175
}
@@ -174,7 +194,7 @@ public void SetWorkspace()
174194
[Trait(Category.AcceptanceType, Category.CheckIn)]
175195
public void SetSomeCategories()
176196
{
177-
cmdlet.Categories = new List<string> { "TestCategory1"};
197+
cmdlet.Categories = new List<string> { "TestCategory1" };
178198
cmdlet.Enabled = false;
179199
cmdlet.MyInvocation.BoundParameters[SetAzureRmDiagnosticSettingCommand.EnabledParamName] = false;
180200
cmdlet.ExecuteCmdlet();
@@ -189,7 +209,8 @@ public void SetSomeCategories()
189209
cmdlet.Categories = new List<string> { "TestCategory3" };
190210
cmdlet.Enabled = false;
191211
cmdlet.MyInvocation.BoundParameters[SetAzureRmDiagnosticSettingCommand.EnabledParamName] = false;
192-
Assert.Throws<ArgumentException>(() => cmdlet.ExecuteCmdlet());
212+
var argException = Assert.Throws<PSInvalidOperationException>(() => cmdlet.ExecuteCmdlet());
213+
Assert.Contains("ArgumentException", argException.ToString());
193214

194215
// Testing the new metric categories must be known before the cmdlet can add them
195216
expectedSettings.Metrics[0].Enabled = false;
@@ -205,7 +226,8 @@ public void SetSomeCategories()
205226
cmdlet.MetricCategory = new List<string> { "MetricCat3" };
206227
cmdlet.Enabled = false;
207228
cmdlet.MyInvocation.BoundParameters[SetAzureRmDiagnosticSettingCommand.EnabledParamName] = false;
208-
Assert.Throws<ArgumentException>(() => cmdlet.ExecuteCmdlet());
229+
argException = Assert.Throws<PSInvalidOperationException>(() => cmdlet.ExecuteCmdlet());
230+
Assert.Contains("ArgumentException", argException.ToString());
209231
}
210232

211233
[Fact]
@@ -299,7 +321,7 @@ private void VerifySettings(
299321
}
300322
else
301323
{
302-
Assert.Equal(expectedSettings.Logs.Count, actualSettings.Logs.Count);
324+
Assert.True(expectedSettings.Logs.Count == actualSettings.Logs.Count, string.Format("Expected: {0}, Actual: {1}, no the same number of Log settings", expectedSettings.Logs.Count, actualSettings.Logs.Count));
303325
for (int i = 0; i < expectedSettings.Logs.Count; i++)
304326
{
305327
var expected = expectedSettings.Logs[i];
@@ -316,7 +338,7 @@ private void VerifySettings(
316338
}
317339
else
318340
{
319-
Assert.Equal(expectedSettings.Metrics.Count, actualSettings.Metrics.Count);
341+
Assert.True(expectedSettings.Metrics.Count == actualSettings.Metrics.Count, string.Format("Expected: {0}, Actual: {1}, no the same number of Metric settings", expectedSettings.Metrics.Count, actualSettings.Metrics.Count));
320342
for (int i = 0; i < expectedSettings.Metrics.Count; i++)
321343
{
322344
var expected = expectedSettings.Metrics[i];

src/ResourceManager/Insights/Commands.Insights.Test/ScenarioTests/ActionGroupsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public ActionGroupsTests(Xunit.Abstractions.ITestOutputHelper output)
3030
XunitTracingInterceptor.AddToContext(_logger);
3131
}
3232

33-
[Fact]
33+
[Fact(Skip = "TODO: #7024: Needs to be recorded again")]
3434
[Trait(Category.AcceptanceType, Category.CheckIn)]
3535
public void TestAddGetListSetRemoveActionGroup()
3636
{

0 commit comments

Comments
 (0)