From 7040e5d571dd1729bf7399d2b9443369af583891 Mon Sep 17 00:00:00 2001 From: Damodar Avadhani Date: Wed, 23 Feb 2022 15:25:57 +0530 Subject: [PATCH 1/2] Fixing identity update bug and making disable of user assigned identity possible --- .../ServiceBus/Utilities/ServiceBusClient.cs | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/ServiceBus/ServiceBus/Utilities/ServiceBusClient.cs b/src/ServiceBus/ServiceBus/Utilities/ServiceBusClient.cs index d2270c42867c..99dc0069d389 100644 --- a/src/ServiceBus/ServiceBus/Utilities/ServiceBusClient.cs +++ b/src/ServiceBus/ServiceBus/Utilities/ServiceBusClient.cs @@ -114,7 +114,7 @@ public PSNamespaceAttributes BeginCreateNamespace(string resourceGroupName, stri if (identityType != null) { parameter.Identity = new Identity(); - parameter.Identity = FindIdentity(identityType); + parameter.Identity.Type = FindIdentity(identityType); } if (identityIds != null) @@ -126,7 +126,7 @@ public PSNamespaceAttributes BeginCreateNamespace(string resourceGroupName, stri if (parameter.Identity == null) { - parameter.Identity = new Identity() { UserAssignedIdentities = UserAssignedIdentities }; + parameter.Identity = new Identity() { Type = ManagedServiceIdentityType.UserAssigned, UserAssignedIdentities = UserAssignedIdentities }; } else { @@ -204,8 +204,13 @@ public PSNamespaceAttributes UpdateNamespace(string resourceGroupName, string na if (identityType != null) { - parameter.Identity = new Identity(); - parameter.Identity = FindIdentity(identityType); + if (parameter.Identity == null) + { + parameter.Identity = new Identity(); + } + + parameter.Identity.Type = FindIdentity(identityType); + if (parameter.Identity.Type == ManagedServiceIdentityType.None) { parameter.Identity.UserAssignedIdentities = null; @@ -220,12 +225,16 @@ public PSNamespaceAttributes UpdateNamespace(string resourceGroupName, string na if (parameter.Identity == null) { - parameter.Identity = new Identity() { UserAssignedIdentities = UserAssignedIdentities }; + parameter.Identity = new Identity() { Type = ManagedServiceIdentityType.UserAssigned, UserAssignedIdentities = UserAssignedIdentities }; } else { parameter.Identity.UserAssignedIdentities = UserAssignedIdentities; } + if(identityIds.Length == 0) + { + parameter.Identity.UserAssignedIdentities = null; + } } if (encryptionconfigs != null) @@ -264,26 +273,26 @@ public PSNamespaceAttributes UpdateNamespace(string resourceGroupName, string na return new PSNamespaceAttributes(response); } - public Identity FindIdentity(string identityType) + public ManagedServiceIdentityType FindIdentity(string identityType) { - Identity identity = new Identity(); - + ManagedServiceIdentityType Type = ManagedServiceIdentityType.None; if (identityType == SystemAssigned) - identity.Type = ManagedServiceIdentityType.SystemAssigned; + Type = ManagedServiceIdentityType.SystemAssigned; else if (identityType == UserAssigned) - identity.Type = ManagedServiceIdentityType.UserAssigned; + Type = ManagedServiceIdentityType.UserAssigned; else if (identityType == SystemAssignedUserAssigned) - identity.Type = ManagedServiceIdentityType.SystemAssignedUserAssigned; + Type = ManagedServiceIdentityType.SystemAssignedUserAssigned; else if (identityType == None) - identity.Type = ManagedServiceIdentityType.None; + Type = ManagedServiceIdentityType.None; - return identity; + return Type; } + public bool BeginDeleteNamespace(string resourceGroupName, string namespaceName) { Client.Namespaces.DeleteWithHttpMessagesAsync(resourceGroupName, namespaceName, null, new CancellationToken()).ConfigureAwait(false); From 234c53734772425bae6d44df7d086f52a657403d Mon Sep 17 00:00:00 2001 From: Damodar Avadhani Date: Wed, 23 Feb 2022 16:05:37 +0530 Subject: [PATCH 2/2] Making fixes --- .../ServiceBus/Utilities/ServiceBusClient.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/ServiceBus/ServiceBus/Utilities/ServiceBusClient.cs b/src/ServiceBus/ServiceBus/Utilities/ServiceBusClient.cs index 99dc0069d389..81c26fed67f5 100644 --- a/src/ServiceBus/ServiceBus/Utilities/ServiceBusClient.cs +++ b/src/ServiceBus/ServiceBus/Utilities/ServiceBusClient.cs @@ -126,12 +126,17 @@ public PSNamespaceAttributes BeginCreateNamespace(string resourceGroupName, stri if (parameter.Identity == null) { - parameter.Identity = new Identity() { Type = ManagedServiceIdentityType.UserAssigned, UserAssignedIdentities = UserAssignedIdentities }; + parameter.Identity = new Identity() { UserAssignedIdentities = UserAssignedIdentities }; } else { parameter.Identity.UserAssignedIdentities = UserAssignedIdentities; } + + if (parameter.Identity.Type == ManagedServiceIdentityType.None || parameter.Identity.Type == ManagedServiceIdentityType.SystemAssigned) + { + throw new Exception("Please change -IdentityType to 'UserAssigned' or 'SystemAssigned, UserAssigned' if you want to add User Assigned Identities"); + } } if (encryptionconfigs != null) @@ -211,7 +216,7 @@ public PSNamespaceAttributes UpdateNamespace(string resourceGroupName, string na parameter.Identity.Type = FindIdentity(identityType); - if (parameter.Identity.Type == ManagedServiceIdentityType.None) + if (parameter.Identity.Type == ManagedServiceIdentityType.None || parameter.Identity.Type == ManagedServiceIdentityType.SystemAssigned) { parameter.Identity.UserAssignedIdentities = null; } @@ -225,15 +230,15 @@ public PSNamespaceAttributes UpdateNamespace(string resourceGroupName, string na if (parameter.Identity == null) { - parameter.Identity = new Identity() { Type = ManagedServiceIdentityType.UserAssigned, UserAssignedIdentities = UserAssignedIdentities }; + parameter.Identity = new Identity() { UserAssignedIdentities = UserAssignedIdentities }; } else { parameter.Identity.UserAssignedIdentities = UserAssignedIdentities; } - if(identityIds.Length == 0) + if (parameter.Identity.Type == ManagedServiceIdentityType.None || parameter.Identity.Type == ManagedServiceIdentityType.SystemAssigned) { - parameter.Identity.UserAssignedIdentities = null; + throw new Exception("Please change -IdentityType to 'UserAssigned' or 'SystemAssigned, UserAssigned' if you want to add User Assigned Identities"); } }