Skip to content

Commit d77071e

Browse files
authored
Merge pull request #1 from markcowl/fixopindata
Update common code changes for new operational insights endpoint
2 parents 489af88 + d21e254 commit d77071e

File tree

10 files changed

+209
-196
lines changed

10 files changed

+209
-196
lines changed

src/Common/Commands.Common.Authentication.Abstractions/AzureEnvironment.cs

Lines changed: 123 additions & 124 deletions
Large diffs are not rendered by default.

src/Common/Commands.Common.Authentication.Abstractions/AzureEnvironmentConstants.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,12 @@ public static class AzureEnvironmentConstants
118118
/// <summary>
119119
/// The token audience for Log Analytics Queries
120120
/// </summary>
121-
public const string AzureOperationalInsightsServiceEndpointResourceId = "https://api.loganalytics.io";
121+
public const string AzureOperationalInsightsEndpointResourceId = "https://api.loganalytics.io";
122122

123123
/// <summary>
124124
/// The endpoint URI for Log Analytics Queries
125125
/// </summary>
126-
public const string AzureOperationalInsightsServiceEndpoint = "https://api.loganalytics.io/v1";
126+
public const string AzureOperationalInsightsEndpoint = "https://api.loganalytics.io/v1";
127127

128128
/// <summary>
129129
/// The domain name suffix for Azure DataLake services

src/Common/Commands.Common.Authentication.Abstractions/Extensions/AzureEnvironmentExtensions.cs

Lines changed: 32 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,12 @@ public static bool TryGetEndpointUrl(this IAzureEnvironment environment, string
6868
case AzureEnvironment.Endpoint.BatchEndpointResourceId:
6969
endpoint = new Uri(environment.BatchEndpointResourceId);
7070
break;
71-
case AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId:
72-
endpoint = new Uri(environment.AzureOperationalInsightsEndpointResourceId);
73-
break;
74-
case AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint:
75-
endpoint = new Uri(environment.AzureOperationalInsightsEndpoint);
76-
break;
7771
default:
78-
result = false;
72+
result = environment.IsPropertySet(endpointName);
73+
if (result)
74+
{
75+
endpoint = new Uri(environment.GetProperty(endpointName));
76+
}
7977
break;
8078
}
8179

@@ -153,13 +151,9 @@ public static bool TryGetEndpointString(this IAzureEnvironment environment, stri
153151
case AzureEnvironment.Endpoint.BatchEndpointResourceId:
154152
propertyValue = environment.BatchEndpointResourceId;
155153
break;
156-
case AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId:
157-
propertyValue = environment.AzureOperationalInsightsEndpointResourceId;
158-
break;
159-
case AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint:
160-
propertyValue = environment.AzureOperationalInsightsEndpoint;
161-
break;
162154
default:
155+
// get property from the extended properties of the environment
156+
propertyValue = environment.GetProperty(endpointName);
163157
break;
164158
}
165159
}
@@ -271,11 +265,11 @@ public static void SetEndpoint(this IAzureEnvironment environment, string endpoi
271265
case AzureEnvironment.Endpoint.ServiceManagement:
272266
environment.ServiceManagementUrl = propertyValue;
273267
break;
274-
case AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId:
275-
environment.AzureOperationalInsightsEndpointResourceId = propertyValue;
268+
case AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId:
269+
environment.SetProperty(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId, propertyValue);
276270
break;
277-
case AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint:
278-
environment.AzureOperationalInsightsEndpoint= propertyValue;
271+
case AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint:
272+
environment.SetProperty(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint, propertyValue);
279273
break;
280274
}
281275
}
@@ -289,20 +283,28 @@ public static void SetEndpoint(this IAzureEnvironment environment, string endpoi
289283
/// <returns>The correct token audience for tokens bound for the given endpoint.</returns>
290284
public static string GetTokenAudience(this IAzureEnvironment environment, string targetEndpoint)
291285
{
292-
string resource = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId;
293-
if (targetEndpoint == AzureEnvironment.Endpoint.Graph)
286+
string resource;
287+
switch (targetEndpoint)
294288
{
295-
resource = AzureEnvironment.Endpoint.GraphEndpointResourceId;
296-
}
297-
else if (targetEndpoint == AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix ||
298-
targetEndpoint == AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix ||
299-
targetEndpoint == AzureEnvironment.Endpoint.DataLakeEndpointResourceId)
300-
{
301-
resource = AzureEnvironment.Endpoint.DataLakeEndpointResourceId;
302-
}
303-
else if (targetEndpoint == AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId)
304-
{
305-
resource = AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId;
289+
case AzureEnvironment.Endpoint.Graph:
290+
resource = AzureEnvironment.Endpoint.GraphEndpointResourceId;
291+
break;
292+
case AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix:
293+
case AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix:
294+
case AzureEnvironment.Endpoint.DataLakeEndpointResourceId:
295+
resource = AzureEnvironment.Endpoint.DataLakeEndpointResourceId;
296+
break;
297+
case AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix:
298+
case AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId:
299+
resource = AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId;
300+
break;
301+
case AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint:
302+
case AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId:
303+
resource = AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId;
304+
break;
305+
default:
306+
resource = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId;
307+
break;
306308
}
307309

308310
return resource;
@@ -482,14 +484,6 @@ public static void CopyFrom(this IAzureEnvironment environment, IAzureEnvironmen
482484
{
483485
environment.BatchEndpointResourceId = other.BatchEndpointResourceId;
484486
}
485-
if (other.IsEndpointSet(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId))
486-
{
487-
environment.AzureOperationalInsightsEndpointResourceId = other.AzureOperationalInsightsEndpointResourceId;
488-
}
489-
if (other.IsEndpointSet(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint))
490-
{
491-
environment.AzureOperationalInsightsEndpoint= other.AzureOperationalInsightsEndpoint;
492-
}
493487

494488
environment.VersionProfiles.Clear();
495489
foreach (var profile in other.VersionProfiles)

src/Common/Commands.Common.Authentication.Abstractions/Interfaces/IAzureEnvironment.cs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,16 +122,6 @@ public interface IAzureEnvironment : IExtensibleModel
122122
/// </summary>
123123
string AzureDataLakeStoreFileSystemEndpointSuffix { get; set; }
124124

125-
/// <summary>
126-
/// The token audience required for communicating with the Azure Log Analytics query service in this environment
127-
/// </summary>
128-
string AzureOperationalInsightsEndpointResourceId { get; set; }
129-
130-
/// <summary>
131-
/// The endpoint to use when communicating with the Azure Log Analytics query service in this environment
132-
/// </summary>
133-
string AzureOperationalInsightsEndpoint { get; set; }
134-
135125
/// <summary>
136126
/// The default Active Directory Tenant
137127
/// </summary>

src/ResourceManager/Common/Commands.Common.Authentication.ResourceManager/Models/PSAzureEnvironment.cs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,12 +230,32 @@ public bool OnPremise
230230
/// <summary>
231231
/// The token audience required for communicating with the Azure Log Analytics query service in this environment
232232
/// </summary>
233-
public string AzureOperationalInsightsEndpointResourceId { get; set; }
233+
public string AzureOperationalInsightsEndpointResourceId
234+
{
235+
get
236+
{
237+
return this.GetEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId);
238+
}
239+
set
240+
{
241+
this.SetEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId, value);
242+
}
243+
}
234244

235245
/// <summary>
236246
/// The endpoint to use when communicating with the Azure Log Analytics query service in this environment
237247
/// </summary>
238-
public string AzureOperationalInsightsEndpoint { get; set; }
248+
public string AzureOperationalInsightsEndpoint
249+
{
250+
get
251+
{
252+
return this.GetEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint);
253+
}
254+
set
255+
{
256+
this.SetEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint, value);
257+
}
258+
}
239259

240260
public IList<string> VersionProfiles { get; } = new List<string>();
241261

src/ResourceManager/OperationalInsights/Commands.OperationalInsights/Query/InvokeOperationalInsightsQuery.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ internal OperationalInsightsDataClient OperationalInsightsDataClient
6363
}
6464
else
6565
{
66-
clientCredentials = AzureSession.Instance.AuthenticationFactory.GetServiceClientCredentials(DefaultContext, "AzureOperationalInsightsEndpointResourceId");
66+
clientCredentials = AzureSession.Instance.AuthenticationFactory.GetServiceClientCredentials(DefaultContext, AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint);
6767
}
6868

6969
this._operationalInsightsDataClient =
@@ -74,7 +74,7 @@ internal OperationalInsightsDataClient OperationalInsightsDataClient
7474

7575
Uri targetUri= null;
7676
DefaultContext.Environment.TryGetEndpointUrl(
77-
AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint, out targetUri);
77+
AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint, out targetUri);
7878
if (targetUri == null)
7979
{
8080
throw new Exception("Operational Insights is not supported in this Azure Environment");

src/ResourceManager/Profile/Commands.Profile.Test/AzureRMProfileTests.cs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -671,6 +671,8 @@ public void ProfileSerializeDeserializeWorks()
671671
Name = "testCloud",
672672
ActiveDirectoryAuthority = "http://contoso.com"
673673
};
674+
environment.SetProperty(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint, "http://contoso.io");
675+
environment.SetProperty(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId, "http://insights.contoso.io/");
674676
var account = new AzureAccount
675677
{
676678
@@ -713,6 +715,10 @@ public void ProfileSerializeDeserializeWorks()
713715
var jCurrentProfile = currentProfile.ToString();
714716
var jDeserializedProfile = deserializedProfile.ToString();
715717
Assert.Equal(jCurrentProfile, jDeserializedProfile);
718+
Assert.True(deserializedProfile.DefaultContext.Environment.IsPropertySet(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint));
719+
Assert.True(deserializedProfile.DefaultContext.Environment.IsPropertySet(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId));
720+
Assert.Equal("http://contoso.io", deserializedProfile.DefaultContext.Environment.GetProperty(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint));
721+
Assert.Equal("http://insights.contoso.io/", deserializedProfile.DefaultContext.Environment.GetProperty(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId));
716722
}
717723

718724
[Fact]
@@ -743,11 +749,12 @@ public void SavingProfileWorks()
743749
""BatchEndpointResourceId"": null,
744750
""AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix"": null,
745751
""AzureDataLakeStoreFileSystemEndpointSuffix"": null,
746-
""AzureOperationalInsightsEndpointResourceId"": null,
747-
""AzureOperationalInsightsEndpoint"": null,
748752
""AdTenant"": null,
749753
""VersionProfiles"": [],
750-
""ExtendedProperties"": {}
754+
""ExtendedProperties"": {
755+
""OperationalInsightsEndpoint"": ""http://contoso.io"",
756+
""OperationalInsightsEndpointResourceId"": ""http://insights.contoso.io/""
757+
}
751758
}
752759
},
753760
""Contexts"": {
@@ -797,11 +804,12 @@ public void SavingProfileWorks()
797804
""BatchEndpointResourceId"": null,
798805
""AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix"": null,
799806
""AzureDataLakeStoreFileSystemEndpointSuffix"": null,
800-
""AzureOperationalInsightsEndpointResourceId"": null,
801-
""AzureOperationalInsightsEndpoint"": null,
802807
""AdTenant"": null,
803808
""VersionProfiles"": [],
804-
""ExtendedProperties"": {}
809+
""ExtendedProperties"": {
810+
""OperationalInsightsEndpoint"": ""http://contoso.io"",
811+
""OperationalInsightsEndpointResourceId"": ""http://insights.contoso.io/""
812+
}
805813
},
806814
""VersionProfile"": null,
807815
""TokenCache"": {
@@ -822,6 +830,8 @@ public void SavingProfileWorks()
822830
Name = "testCloud",
823831
ActiveDirectoryAuthority = "http://contoso.com"
824832
};
833+
environment.SetProperty(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint, "http://contoso.io");
834+
environment.SetProperty(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId, "http://insights.contoso.io/");
825835
var account = new AzureAccount
826836
{
827837

src/ResourceManager/Profile/Commands.Profile.Test/TypeConversionTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,9 @@ public void CanConvertValidEnvironments(string name, bool onPremise, string acti
124124
environment.TrafficManagerDnsSuffix);
125125
CheckEndpoint(AzureEnvironment.Endpoint.BatchEndpointResourceId, azEnvironment,
126126
environment.BatchEndpointResourceId);
127-
CheckEndpoint(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId, azEnvironment,
127+
CheckEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId, azEnvironment,
128128
environment.AzureOperationalInsightsEndpointResourceId);
129-
CheckEndpoint(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint, azEnvironment,
129+
CheckEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint, azEnvironment,
130130
environment.AzureOperationalInsightsEndpoint);
131131
Assert.Equal(azEnvironment.Name, environment.Name);
132132
Assert.Equal(azEnvironment.OnPremise, environment.EnableAdfsAuthentication);
@@ -161,8 +161,8 @@ public void CanConvertNullPSEnvironments()
161161
Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.StorageEndpointSuffix));
162162
Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.TrafficManagerDnsSuffix));
163163
Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.BatchEndpointResourceId));
164-
Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId));
165-
Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint));
164+
Assert.False(environment.IsEndpointSet(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId));
165+
Assert.False(environment.IsEndpointSet(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint));
166166
}
167167
[Theory]
168168
[InlineData("TestAll", true, "https://login.microsoftonline.com", "https://management.core.windows.net/",
@@ -247,9 +247,9 @@ public void CanConvertValidPSEnvironments(string name, bool onPremise, string ac
247247
environment.TrafficManagerDnsSuffix);
248248
CheckEndpoint(AzureEnvironment.Endpoint.BatchEndpointResourceId, azEnvironment,
249249
environment.BatchEndpointResourceId);
250-
CheckEndpoint(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId, azEnvironment,
250+
CheckEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId, azEnvironment,
251251
environment.AzureOperationalInsightsEndpointResourceId);
252-
CheckEndpoint(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint, azEnvironment,
252+
CheckEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint, azEnvironment,
253253
environment.AzureOperationalInsightsEndpoint);
254254
Assert.Equal(azEnvironment.Name, environment.Name);
255255
Assert.Equal(azEnvironment.OnPremise, environment.EnableAdfsAuthentication);
@@ -302,9 +302,9 @@ private AzureEnvironment CreateEnvironment(string name, bool onPremise, string a
302302
trafficManagerSuffix);
303303
CheckEndpoint(AzureEnvironment.Endpoint.BatchEndpointResourceId, environment,
304304
batchResource);
305-
CheckEndpoint(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId, environment,
305+
CheckEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId, environment,
306306
azureOperationalInsightsEndpointResourceId);
307-
CheckEndpoint(AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint, environment,
307+
CheckEndpoint(AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint, environment,
308308
azureOperationalInsightsEndpoint);
309309
return environment;
310310

src/ResourceManager/Profile/Commands.Profile/Environment/AddAzureRMEnvironment.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,9 +300,9 @@ public override void ExecuteCmdlet()
300300
nameof(DataLakeAudience));
301301
SetEndpointIfBound(newEnvironment, AzureEnvironment.Endpoint.BatchEndpointResourceId,
302302
nameof(BatchEndpointResourceId));
303-
SetEndpointIfBound(newEnvironment, AzureEnvironment.Endpoint.AzureOperationalInsightsEndpointResourceId,
303+
SetEndpointIfBound(newEnvironment, AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId,
304304
nameof(AzureOperationalInsightsEndpointResourceId));
305-
SetEndpointIfBound(newEnvironment, AzureEnvironment.Endpoint.AzureOperationalInsightsEndpoint,
305+
SetEndpointIfBound(newEnvironment, AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint,
306306
nameof(AzureOperationalInsightsEndpoint));
307307
WriteObject(new PSAzureEnvironment(profileClient.AddOrSetEnvironment(newEnvironment)));
308308
}

0 commit comments

Comments
 (0)