From 4aeacdfa44b471577f754974d4f7561e12072f96 Mon Sep 17 00:00:00 2001
From: Harvey Chen <30464227+HarveyLink@users.noreply.github.com>
Date: Tue, 27 Jul 2021 17:26:30 +0800
Subject: [PATCH 1/4] Update to support scope
---
.../Redesign/ManagementRecordedTestBase.cs | 9 +++--
.../Azure.ResourceManager/src/ArmClient.cs | 38 ++++++++++++++-----
.../Resources/GenericResourceOperations.cs | 2 +-
.../tests/Scenario/ArmClientTests.cs | 4 +-
4 files changed, 37 insertions(+), 16 deletions(-)
diff --git a/common/ManagementTestShared/Redesign/ManagementRecordedTestBase.cs b/common/ManagementTestShared/Redesign/ManagementRecordedTestBase.cs
index 49c4eb021ea8..720805614e75 100644
--- a/common/ManagementTestShared/Redesign/ManagementRecordedTestBase.cs
+++ b/common/ManagementTestShared/Redesign/ManagementRecordedTestBase.cs
@@ -64,7 +64,8 @@ private ArmClient GetCleanupClient()
TestEnvironment.SubscriptionId,
GetUri(TestEnvironment.ResourceManagerUrl),
TestEnvironment.Credential,
- new ArmClientOptions());
+ new ArmClientOptions(),
+ null);
}
return null;
}
@@ -81,7 +82,8 @@ protected ArmClient GetArmClient(ArmClientOptions clientOptions = default)
TestEnvironment.SubscriptionId,
GetUri(TestEnvironment.ResourceManagerUrl),
TestEnvironment.Credential,
- options);
+ options,
+ null);
}
private Uri GetUri(string endpoint)
@@ -168,7 +170,8 @@ public void OneTimeSetUp()
SessionEnvironment.SubscriptionId,
GetUri(SessionEnvironment.ResourceManagerUrl),
SessionEnvironment.Credential,
- options);
+ options,
+ null);
}
private bool HasOneTimeSetup()
diff --git a/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs b/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs
index 8b86462c1c72..f7095a2e32cf 100644
--- a/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs
+++ b/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs
@@ -25,6 +25,7 @@ public class ArmClient
/// The base URI of the service.
///
internal const string DefaultUri = "https://management.azure.com";
+ internal const string Scope = "https://management.core.windows.net/.default";
private TenantOperations _tenant;
///
@@ -39,8 +40,10 @@ protected ArmClient()
///
/// A credential used to authenticate to an Azure Service.
/// If is null.
+#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
public ArmClient(TokenCredential credential)
- : this(null, new Uri(DefaultUri), credential, null)
+#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
+ : this(null, new Uri(DefaultUri), credential, null, null)
{
}
@@ -49,9 +52,12 @@ public ArmClient(TokenCredential credential)
///
/// A credential used to authenticate to an Azure Service.
/// The client parameters to use in these operations.
+ /// The scope to be included in acquired tokens.
/// If is null.
- public ArmClient(TokenCredential credential, ArmClientOptions options)
- : this(null, new Uri(DefaultUri), credential, options)
+#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
+ public ArmClient(TokenCredential credential, ArmClientOptions options, string scope = default)
+#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
+ : this(null, new Uri(DefaultUri), credential, options, scope)
{
}
@@ -61,12 +67,16 @@ public ArmClient(TokenCredential credential, ArmClientOptions options)
/// The id of the default Azure subscription.
/// A credential used to authenticate to an Azure Service.
/// The client parameters to use in these operations.
+ /// The scope to be included in acquired tokens.
/// If is null.
+#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
public ArmClient(
+#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
string defaultSubscriptionId,
TokenCredential credential,
- ArmClientOptions options = default)
- : this(defaultSubscriptionId, new Uri(DefaultUri), credential, options)
+ ArmClientOptions options = default,
+ string scope = default)
+ : this(defaultSubscriptionId, new Uri(DefaultUri), credential, options, scope)
{
}
@@ -76,12 +86,16 @@ public ArmClient(
/// The base URI of the Azure management endpoint.
/// A credential used to authenticate to an Azure Service.
/// The client parameters to use in these operations.
+ /// The scope to be included in acquired tokens.
/// If is null.
+#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
public ArmClient(
+#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
Uri baseUri,
TokenCredential credential,
- ArmClientOptions options = default)
- : this(null, baseUri, credential, options)
+ ArmClientOptions options = default,
+ string scope = default)
+ : this(null, baseUri, credential, options, scope)
{
}
@@ -92,19 +106,23 @@ public ArmClient(
/// The base URI of the service.
/// A credential used to authenticate to an Azure Service.
/// The client parameters to use in these operations.
+ /// The scope to be included in acquired tokens.
+#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
public ArmClient(
+#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
string defaultSubscriptionId,
Uri baseUri,
TokenCredential credential,
- ArmClientOptions options = default)
+ ArmClientOptions options,
+ string scope)
{
if (credential is null)
throw new ArgumentNullException(nameof(credential));
Credential = credential;
BaseUri = baseUri ?? new Uri(DefaultUri);
- ClientOptions = options?.Clone() ?? new ArmClientOptions();
- Pipeline = ManagementPipelineBuilder.Build(Credential, BaseUri, options ?? ClientOptions);
+ ClientOptions = options ?? new ArmClientOptions();
+ Pipeline = ManagementPipelineBuilder.Build(Credential, scope ?? Scope, ClientOptions);
_tenant = new TenantOperations(ClientOptions, Credential, BaseUri, Pipeline);
DefaultSubscription = string.IsNullOrWhiteSpace(defaultSubscriptionId)
diff --git a/sdk/resourcemanager/Azure.ResourceManager/src/Generated/Resources/GenericResourceOperations.cs b/sdk/resourcemanager/Azure.ResourceManager/src/Generated/Resources/GenericResourceOperations.cs
index 8e53d5f4d875..f9a883d3c7e6 100644
--- a/sdk/resourcemanager/Azure.ResourceManager/src/Generated/Resources/GenericResourceOperations.cs
+++ b/sdk/resourcemanager/Azure.ResourceManager/src/Generated/Resources/GenericResourceOperations.cs
@@ -48,7 +48,7 @@ private ResourcesRestOperations RestClient
return new ResourcesRestOperations(
new Azure.Core.Pipeline.ClientDiagnostics(ClientOptions),
- ManagementPipelineBuilder.Build(Credential, BaseUri, ClientOptions),
+ Pipeline,
subscription,
BaseUri);
}
diff --git a/sdk/resourcemanager/Azure.ResourceManager/tests/Scenario/ArmClientTests.cs b/sdk/resourcemanager/Azure.ResourceManager/tests/Scenario/ArmClientTests.cs
index 1a70af56f0c3..ed8fec4db96c 100644
--- a/sdk/resourcemanager/Azure.ResourceManager/tests/Scenario/ArmClientTests.cs
+++ b/sdk/resourcemanager/Azure.ResourceManager/tests/Scenario/ArmClientTests.cs
@@ -37,9 +37,9 @@ public void CreateResourceFromId()
[TestCase]
public void TestArmClientParamCheck()
{
- Assert.Throws(() => { new ArmClient(null, null); });
+ Assert.Throws(() => { new ArmClient(null, null, null); });
Assert.Throws(() => { new ArmClient(baseUri: null, null, null); });
- Assert.Throws(() => { new ArmClient(defaultSubscriptionId: null, null, null); });
+ Assert.Throws(() => { new ArmClient(defaultSubscriptionId: null, null, null, null); });
}
[TestCase]
From 524c3e9a3feb33bf7185440d8ae132b0ac55a5b9 Mon Sep 17 00:00:00 2001
From: Harvey Chen <30464227+HarveyLink@users.noreply.github.com>
Date: Wed, 28 Jul 2021 09:17:43 +0800
Subject: [PATCH 2/4] Revert "Update to support scope"
This reverts commit 4aeacdfa44b471577f754974d4f7561e12072f96.
---
.../Redesign/ManagementRecordedTestBase.cs | 9 ++---
.../Azure.ResourceManager/src/ArmClient.cs | 38 +++++--------------
.../Resources/GenericResourceOperations.cs | 2 +-
.../tests/Scenario/ArmClientTests.cs | 4 +-
4 files changed, 16 insertions(+), 37 deletions(-)
diff --git a/common/ManagementTestShared/Redesign/ManagementRecordedTestBase.cs b/common/ManagementTestShared/Redesign/ManagementRecordedTestBase.cs
index 720805614e75..49c4eb021ea8 100644
--- a/common/ManagementTestShared/Redesign/ManagementRecordedTestBase.cs
+++ b/common/ManagementTestShared/Redesign/ManagementRecordedTestBase.cs
@@ -64,8 +64,7 @@ private ArmClient GetCleanupClient()
TestEnvironment.SubscriptionId,
GetUri(TestEnvironment.ResourceManagerUrl),
TestEnvironment.Credential,
- new ArmClientOptions(),
- null);
+ new ArmClientOptions());
}
return null;
}
@@ -82,8 +81,7 @@ protected ArmClient GetArmClient(ArmClientOptions clientOptions = default)
TestEnvironment.SubscriptionId,
GetUri(TestEnvironment.ResourceManagerUrl),
TestEnvironment.Credential,
- options,
- null);
+ options);
}
private Uri GetUri(string endpoint)
@@ -170,8 +168,7 @@ public void OneTimeSetUp()
SessionEnvironment.SubscriptionId,
GetUri(SessionEnvironment.ResourceManagerUrl),
SessionEnvironment.Credential,
- options,
- null);
+ options);
}
private bool HasOneTimeSetup()
diff --git a/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs b/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs
index f7095a2e32cf..8b86462c1c72 100644
--- a/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs
+++ b/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs
@@ -25,7 +25,6 @@ public class ArmClient
/// The base URI of the service.
///
internal const string DefaultUri = "https://management.azure.com";
- internal const string Scope = "https://management.core.windows.net/.default";
private TenantOperations _tenant;
///
@@ -40,10 +39,8 @@ protected ArmClient()
///
/// A credential used to authenticate to an Azure Service.
/// If is null.
-#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
public ArmClient(TokenCredential credential)
-#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
- : this(null, new Uri(DefaultUri), credential, null, null)
+ : this(null, new Uri(DefaultUri), credential, null)
{
}
@@ -52,12 +49,9 @@ public ArmClient(TokenCredential credential)
///
/// A credential used to authenticate to an Azure Service.
/// The client parameters to use in these operations.
- /// The scope to be included in acquired tokens.
/// If is null.
-#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
- public ArmClient(TokenCredential credential, ArmClientOptions options, string scope = default)
-#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
- : this(null, new Uri(DefaultUri), credential, options, scope)
+ public ArmClient(TokenCredential credential, ArmClientOptions options)
+ : this(null, new Uri(DefaultUri), credential, options)
{
}
@@ -67,16 +61,12 @@ public ArmClient(TokenCredential credential, ArmClientOptions options, string sc
/// The id of the default Azure subscription.
/// A credential used to authenticate to an Azure Service.
/// The client parameters to use in these operations.
- /// The scope to be included in acquired tokens.
/// If is null.
-#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
public ArmClient(
-#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
string defaultSubscriptionId,
TokenCredential credential,
- ArmClientOptions options = default,
- string scope = default)
- : this(defaultSubscriptionId, new Uri(DefaultUri), credential, options, scope)
+ ArmClientOptions options = default)
+ : this(defaultSubscriptionId, new Uri(DefaultUri), credential, options)
{
}
@@ -86,16 +76,12 @@ public ArmClient(
/// The base URI of the Azure management endpoint.
/// A credential used to authenticate to an Azure Service.
/// The client parameters to use in these operations.
- /// The scope to be included in acquired tokens.
/// If is null.
-#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
public ArmClient(
-#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
Uri baseUri,
TokenCredential credential,
- ArmClientOptions options = default,
- string scope = default)
- : this(null, baseUri, credential, options, scope)
+ ArmClientOptions options = default)
+ : this(null, baseUri, credential, options)
{
}
@@ -106,23 +92,19 @@ public ArmClient(
/// The base URI of the service.
/// A credential used to authenticate to an Azure Service.
/// The client parameters to use in these operations.
- /// The scope to be included in acquired tokens.
-#pragma warning disable AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
public ArmClient(
-#pragma warning restore AZC0007 // DO provide a minimal constructor that takes only the parameters required to connect to the service.
string defaultSubscriptionId,
Uri baseUri,
TokenCredential credential,
- ArmClientOptions options,
- string scope)
+ ArmClientOptions options = default)
{
if (credential is null)
throw new ArgumentNullException(nameof(credential));
Credential = credential;
BaseUri = baseUri ?? new Uri(DefaultUri);
- ClientOptions = options ?? new ArmClientOptions();
- Pipeline = ManagementPipelineBuilder.Build(Credential, scope ?? Scope, ClientOptions);
+ ClientOptions = options?.Clone() ?? new ArmClientOptions();
+ Pipeline = ManagementPipelineBuilder.Build(Credential, BaseUri, options ?? ClientOptions);
_tenant = new TenantOperations(ClientOptions, Credential, BaseUri, Pipeline);
DefaultSubscription = string.IsNullOrWhiteSpace(defaultSubscriptionId)
diff --git a/sdk/resourcemanager/Azure.ResourceManager/src/Generated/Resources/GenericResourceOperations.cs b/sdk/resourcemanager/Azure.ResourceManager/src/Generated/Resources/GenericResourceOperations.cs
index f9a883d3c7e6..8e53d5f4d875 100644
--- a/sdk/resourcemanager/Azure.ResourceManager/src/Generated/Resources/GenericResourceOperations.cs
+++ b/sdk/resourcemanager/Azure.ResourceManager/src/Generated/Resources/GenericResourceOperations.cs
@@ -48,7 +48,7 @@ private ResourcesRestOperations RestClient
return new ResourcesRestOperations(
new Azure.Core.Pipeline.ClientDiagnostics(ClientOptions),
- Pipeline,
+ ManagementPipelineBuilder.Build(Credential, BaseUri, ClientOptions),
subscription,
BaseUri);
}
diff --git a/sdk/resourcemanager/Azure.ResourceManager/tests/Scenario/ArmClientTests.cs b/sdk/resourcemanager/Azure.ResourceManager/tests/Scenario/ArmClientTests.cs
index ed8fec4db96c..1a70af56f0c3 100644
--- a/sdk/resourcemanager/Azure.ResourceManager/tests/Scenario/ArmClientTests.cs
+++ b/sdk/resourcemanager/Azure.ResourceManager/tests/Scenario/ArmClientTests.cs
@@ -37,9 +37,9 @@ public void CreateResourceFromId()
[TestCase]
public void TestArmClientParamCheck()
{
- Assert.Throws(() => { new ArmClient(null, null, null); });
+ Assert.Throws(() => { new ArmClient(null, null); });
Assert.Throws(() => { new ArmClient(baseUri: null, null, null); });
- Assert.Throws(() => { new ArmClient(defaultSubscriptionId: null, null, null, null); });
+ Assert.Throws(() => { new ArmClient(defaultSubscriptionId: null, null, null); });
}
[TestCase]
From efa96170cd936cb283b813bdde04eca53456d305 Mon Sep 17 00:00:00 2001
From: Harvey Chen <30464227+HarveyLink@users.noreply.github.com>
Date: Wed, 28 Jul 2021 12:07:38 +0800
Subject: [PATCH 3/4] Update in ArmClientOption
---
sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs | 2 +-
.../Azure.ResourceManager/src/ArmClientOptions.cs | 5 +++++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs b/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs
index 8b86462c1c72..e034dc0d72c5 100644
--- a/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs
+++ b/sdk/resourcemanager/Azure.ResourceManager/src/ArmClient.cs
@@ -104,7 +104,7 @@ public ArmClient(
Credential = credential;
BaseUri = baseUri ?? new Uri(DefaultUri);
ClientOptions = options?.Clone() ?? new ArmClientOptions();
- Pipeline = ManagementPipelineBuilder.Build(Credential, BaseUri, options ?? ClientOptions);
+ Pipeline = ManagementPipelineBuilder.Build(Credential, options.Scope, options ?? ClientOptions);
_tenant = new TenantOperations(ClientOptions, Credential, BaseUri, Pipeline);
DefaultSubscription = string.IsNullOrWhiteSpace(defaultSubscriptionId)
diff --git a/sdk/resourcemanager/Azure.ResourceManager/src/ArmClientOptions.cs b/sdk/resourcemanager/Azure.ResourceManager/src/ArmClientOptions.cs
index afb7cf1ec106..71c5af843b87 100644
--- a/sdk/resourcemanager/Azure.ResourceManager/src/ArmClientOptions.cs
+++ b/sdk/resourcemanager/Azure.ResourceManager/src/ArmClientOptions.cs
@@ -20,6 +20,11 @@ public sealed class ArmClientOptions : ClientOptions
///
public ApiVersions ApiVersions { get; private set; }
+ ///
+ /// Gets the ApiVersions object
+ ///
+ public string Scope { get; set; } = "https://management.core.windows.net/.default";
+
///
/// Initializes a new instance of the class.
///
From 6b3346cf325c6e7150c76dd675935f003982984a Mon Sep 17 00:00:00 2001
From: Harvey Chen <30464227+HarveyLink@users.noreply.github.com>
Date: Wed, 28 Jul 2021 12:32:30 +0800
Subject: [PATCH 4/4] Update Azure.ResourceManager.netstandard2.0.cs
---
.../api/Azure.ResourceManager.netstandard2.0.cs | 1 +
1 file changed, 1 insertion(+)
diff --git a/sdk/resourcemanager/Azure.ResourceManager/api/Azure.ResourceManager.netstandard2.0.cs b/sdk/resourcemanager/Azure.ResourceManager/api/Azure.ResourceManager.netstandard2.0.cs
index 2fa796f9d053..309081e5d049 100644
--- a/sdk/resourcemanager/Azure.ResourceManager/api/Azure.ResourceManager.netstandard2.0.cs
+++ b/sdk/resourcemanager/Azure.ResourceManager/api/Azure.ResourceManager.netstandard2.0.cs
@@ -40,6 +40,7 @@ public sealed partial class ArmClientOptions : Azure.Core.ClientOptions
{
public ArmClientOptions() { }
public Azure.ResourceManager.ApiVersions ApiVersions { get { throw null; } }
+ public string Scope { get { throw null; } set { } }
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
public object GetOverrideObject(System.Func