Skip to content

Commit 7dbcfab

Browse files
krivi37Stefan Krivokapic
andauthored
[SQL] Fixes for missing property in Set-AzSqlInstanceActiveDirectoryAdministrator and Set-AzSqlInstance cmdlets (#25899)
* Fixes for type and mail * Changed test * Updated changelog --------- Co-authored-by: Stefan Krivokapic <[email protected]>
1 parent 56f9e8d commit 7dbcfab

File tree

7 files changed

+912
-2921
lines changed

7 files changed

+912
-2921
lines changed

src/Sql/Sql.Test/ScenarioTests/Common.ps1

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,6 +1009,14 @@ function Get-DefaultManagedInstanceParametersV2()
10091009
}
10101010
}
10111011

1012+
function Get-DefaultManagedInstanceNameAndRgForAADAdmin()
1013+
{
1014+
return @{
1015+
rg = "CustomerExperienceTeam_RG";
1016+
name = "brka0190";
1017+
}
1018+
}
1019+
10121020
function Get-DefaultManagedInstanceParametersHermesTesting()
10131021
{
10141022
return @{

src/Sql/Sql.Test/ScenarioTests/ManagedInstanceActiveDirectoryAdministratorTests.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
using Microsoft.WindowsAzure.Commands.ScenarioTest;
1717
using Xunit;
1818
using Xunit.Abstractions;
19-
using RestTestFramework = Microsoft.Rest.ClientRuntime.Azure.TestFramework;
2019

2120
namespace Microsoft.Azure.Commands.Sql.Test.ScenarioTests
2221
{
@@ -27,13 +26,11 @@ public ManagedInstanceActiveDirectoryAdministratorTests(ITestOutputHelper output
2726

2827
}
2928

30-
[Fact(Skip = "MDCS Customer Experience team should re-record this test.")]
29+
[Fact]
3130
[Trait(Category.AcceptanceType, Category.CheckIn)]
3231
public void TestManagedInstanceActiveDirectoryAdministrator()
3332
{
3433
TestRunner.RunTestScript("Test-ManagedInstanceActiveDirectoryAdministrator");
3534
}
3635
}
3736
}
38-
39-

src/Sql/Sql.Test/ScenarioTests/ManagedInstanceActiveDirectoryAdministratorTests.ps1

Lines changed: 40 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -19,62 +19,58 @@
1919
function Test-ManagedInstanceActiveDirectoryAdministrator
2020
{
2121
# Setup
22-
$rg = Create-ResourceGroupForTest
23-
$vnetName = "cl_initial"
24-
$subnetName = "Cool"
22+
$params = Get-DefaultManagedInstanceNameAndRgForAADAdmin
2523

26-
# Setup VNET
27-
$virtualNetwork1 = CreateAndGetVirtualNetworkForManagedInstance $vnetName $subnetName $rg.Location
28-
$subnetId = $virtualNetwork1.Subnets.where({ $_.Name -eq $subnetName })[0].Id
29-
30-
$managedInstance = Create-ManagedInstanceForTest $rg $subnetId
31-
3224
# If there is a need to re-record this test, these values must be changed to correspond to existing group and user from Azure Active Directory related to current subscription.
33-
$activeDirectoryGroup1 = "aadadmin"
34-
$activeDirectoryGroup1ObjectId = "52b6d571-5ff9-4b8f-92de-4a5b1bcdbbef"
35-
$activeDirectoryUser1 = "CL AAD Test User"
36-
$activeDirectoryUser1ObjectId = "034bb7d9-ca26-4c6f-abe0-4aff74fdca50"
25+
$activeDirectoryGroup = "testSqlAADPowershellGroup"
26+
$activeDirectoryGroupObjectId = "a461269d-f0e1-4214-a0bd-85b4df11a2c3"
27+
$activeDirectoryUser = "Test User 1"
28+
$activeDirectoryUserMail = "[email protected]"
29+
$activeDirectoryUserObjectId = "c803e62a-3720-4b88-9bc5-ba910dcf229e"
30+
$activeDirectoryServicePrincipal = "testSqlAADPowershellServicePrincipal"
31+
$activeDirectoryServicePrincipalObjectId = "5541c08c-3845-44a9-a485-ea6b7e785a87"
32+
33+
# Set an Active Directory Administrator Group on Managed Instance
34+
# This command uses the Graph API to check if there is a user/group for provided DisplayName and ObjectId. Graph authentication blocks test passes, so if you need to record this test again, you must provide real token in
35+
# MockTokenAuthenticationFactory constructor and change SetAuthenticationFactory in EnvironmentSetupHelper.
36+
$activeDirectoryAdmin1 = Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $params.rg -InstanceName $params.name -DisplayName $activeDirectoryGroup -ObjectId $activeDirectoryGroupObjectId
37+
38+
Assert-NotNull $activeDirectoryAdmin1
3739

38-
try
39-
{
40-
# Verify there is no Active Directory Administrator set
41-
$activeDirectoryAdmin = Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $rg.ResourceGroupName -InstanceName $managedInstance.ManagedInstanceName
40+
# Verify the correct Active Directory Administrator is set
41+
Assert-AreEqual $activeDirectoryAdmin1.DisplayName $activeDirectoryGroup
42+
Assert-AreEqual $activeDirectoryAdmin1.ObjectId $activeDirectoryGroupObjectId
4243

43-
Assert-Null $activeDirectoryAdmin
44+
# Get an Active Directory Administrator
45+
$activeDirectoryAdmin2 = Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $params.rg -InstanceName $params.name
4446

45-
# Set an Active Directory Administrator Group on Managed Instance
46-
# This command uses the Graph API to check if there is a user/group for provided DisplayName and ObjectId. Graph authentication blocks test passes, so if you need to record this test again, you must provide real token in
47-
# MockTokenAuthenticationFactory constructor and change SetAuthenticationFactory in EnvironmentSetupHelper.
48-
$activeDirectoryAdmin1 = Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $rg.ResourceGroupName -InstanceName $managedInstance.ManagedInstanceName -DisplayName $activeDirectoryGroup1 -ObjectId $activeDirectoryGroup1ObjectId
47+
Assert-AreEqual $activeDirectoryAdmin2.DisplayName $activeDirectoryGroup
48+
Assert-AreEqual $activeDirectoryAdmin2.ObjectId $activeDirectoryGroupObjectId
4949

50-
Assert-NotNull $activeDirectoryAdmin1
50+
# Set an Active Directory Administrator User on Managed Instance
51+
$activeDirectoryAdmin3 = Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $params.rg -InstanceName $params.name -DisplayName $activeDirectoryUser -ObjectId $activeDirectoryUserObjectId
5152

52-
# Verify the correct Active Directory Administrator is set
53-
Assert-AreEqual $activeDirectoryAdmin1.DisplayName $activeDirectoryGroup1
54-
Assert-AreEqual $activeDirectoryAdmin1.ObjectId $activeDirectoryGroup1ObjectId
53+
# We expect that email is returned since the API expects email to be sent as the display name
54+
Assert-AreEqual $activeDirectoryAdmin3.DisplayName $activeDirectoryUserMail
55+
Assert-AreEqual $activeDirectoryAdmin3.ObjectId $activeDirectoryUserObjectId
5556

56-
# Get an Active Directory Administrator
57-
$activeDirectoryAdmin2 = Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $rg.ResourceGroupName -InstanceName $managedInstance.ManagedInstanceName
57+
# Set an Active Directory Administrator Service principal on Managed Instance
58+
$activeDirectoryAdmin4 = Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $params.rg -InstanceName $params.name -DisplayName $activeDirectoryServicePrincipal -ObjectId $activeDirectoryServicePrincipalObjectId
5859

59-
Assert-AreEqual $activeDirectoryAdmin2.DisplayName $activeDirectoryGroup1
60-
Assert-AreEqual $activeDirectoryAdmin2.ObjectId $activeDirectoryGroup1ObjectId
60+
Assert-AreEqual $activeDirectoryAdmin4.DisplayName $activeDirectoryServicePrincipal
61+
Assert-AreEqual $activeDirectoryAdmin4.ObjectId $activeDirectoryServicePrincipalObjectId
6162

62-
# Set an Active Directory Administrator User on Managed Instance
63-
$activeDirectoryAdmin3 = Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $rg.ResourceGroupName -InstanceName $managedInstance.ManagedInstanceName -DisplayName $activeDirectoryUser1 -ObjectId $activeDirectoryUser1ObjectId
63+
# Set an Active Directory Administrator User (mail) on Managed Instance
64+
$activeDirectoryAdmin5 = Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $params.rg -InstanceName $params.name -DisplayName $activeDirectoryUserMail -ObjectId $activeDirectoryUserObjectId
6465

65-
Assert-AreEqual $activeDirectoryAdmin3.DisplayName $activeDirectoryUser1
66-
Assert-AreEqual $activeDirectoryAdmin3.ObjectId $activeDirectoryUser1ObjectId
66+
Assert-AreEqual $activeDirectoryAdmin5.DisplayName $activeDirectoryUserMail
67+
Assert-AreEqual $activeDirectoryAdmin5.ObjectId $activeDirectoryUserObjectId
6768

68-
# Remove an Active Directory Administrator User from Managed Instance
69-
$activeDirectoryAdmin4 = Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $rg.ResourceGroupName -InstanceName $managedInstance.ManagedInstanceName -Force
69+
# Remove an Active Directory Administrator User from Managed Instance
70+
Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $params.rg -InstanceName $params.name -Force
7071

71-
# Verify that Active Directory Administrator was deleted
72-
$activeDirectoryAdmin5 = Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $rg.ResourceGroupName -InstanceName $managedInstance.ManagedInstanceName
72+
# Verify that Active Directory Administrator was deleted
73+
$activeDirectoryAdmin6 = Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName $params.rg -InstanceName $params.name
7374

74-
Assert-Null $activeDirectoryAdmin5
75-
}
76-
finally
77-
{
78-
Remove-ResourceGroupForTest $rg
79-
}
75+
Assert-Null $activeDirectoryAdmin6
8076
}

0 commit comments

Comments
 (0)