Skip to content

Commit 1d41bd9

Browse files
Merge pull request #4665 from Microsoft/Microsoft/users/raagra/sqlAzureUsernameAtSymbolFix117
Microsoft/users/raagra/sql azure username at symbol fix117
2 parents 9beddb6 + f8eafb8 commit 1d41bd9

File tree

6 files changed

+58
-15
lines changed

6 files changed

+58
-15
lines changed

Tasks/SqlAzureDacpacDeployment/Tests/L0.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,8 @@ describe('SqlAzureDacpacDeployment - Utility Suite', function () {
8383
it('Validate SQL Package Command Line Arguments (Get-SqlPackageCommandArguments)', (done) => {
8484
psr.run(path.join(__dirname, 'L0UtilityGetSqlCmdArgs.ps1'), done);
8585
});
86+
it('Validate Username (Get-FormattedSqlUsername)', (done) => {
87+
psr.run(path.join(__dirname, 'L0UtilityFormatUsername.ps1'), done);
88+
});
8689
}
8790
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[CmdletBinding()]
2+
param()
3+
4+
. $PSScriptRoot\..\..\..\Tests\lib\Initialize-Test.ps1
5+
. $PSScriptRoot\MockVariable.ps1
6+
7+
#path to Utility.ps1 for SqlAzureDacpacDeployment task
8+
. "$PSScriptRoot\..\Utility.ps1"
9+
10+
$formattedSqlUsername = Get-FormattedSqlUsername -sqlUserName $sqlUsername -serverName $serverName
11+
Assert-AreEqual $sqlUsername $formattedSqlUsername
12+
13+
$formattedSqlUsername = Get-FormattedSqlUsername -sqlUserName $sqlUsernameWithServerName -serverName $serverName
14+
Assert-AreEqual $sqlUsernameWithServerName $formattedSqlUsername
15+
16+
$formattedSqlUsername = Get-FormattedSqlUsername -sqlUserName $sqlUsernameWithAtSymbol -serverName $serverName
17+
$expectedUsername = $sqlUsernameWithAtSymbol + "@" + $serverName
18+
Assert-AreEqual $expectedUsername $formattedSqlUsername

Tasks/SqlAzureDacpacDeployment/Tests/MockVariable.ps1

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ $serverName = "a0nuel7r2k.database.windows.net"
3939
$serverFriendlyName = "a0nuel7r2k"
4040
$databaseName = "TestDatabase"
4141
$sqlUsername = "TestUser"
42+
$sqlUsernameWithServerName = "[email protected]"
43+
$sqlUsernameWithAtSymbol = "TestUser@123"
4244
$sqlPassword = "TestPassword"
4345
$publishProfile = "C:\Test\publish.xml"
4446
$ipDetectionMethodAuto = "AutoDetect"

Tasks/SqlAzureDacpacDeployment/Utility.ps1

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,29 @@ function Check-ServerName
99
}
1010
}
1111

12+
function Get-FormattedSqlUsername
13+
{
14+
param(
15+
[String] $sqlUserName,
16+
[String] $serverName
17+
)
18+
19+
if ($serverName)
20+
{
21+
$serverNameSplittedArgs = $serverName.Trim().Split(".")
22+
if ($serverNameSplittedArgs.Length -gt 0)
23+
{
24+
$sqlServerFirstName = $serverNameSplittedArgs[0]
25+
if ((-not $sqlUsername.Trim().Contains("@" + $sqlServerFirstName)) -and $sqlUsername.Contains('@'))
26+
{
27+
$sqlUsername = $sqlUsername + "@" + $serverName
28+
}
29+
}
30+
}
31+
32+
return $sqlUsername
33+
}
34+
1235
function Get-AgentIPRange
1336
{
1437
param(
@@ -21,7 +44,15 @@ function Get-AgentIPRange
2144

2245
$sqlCmd = Join-Path -Path $PSScriptRoot -ChildPath "sqlcmd\SQLCMD.exe"
2346
$env:SQLCMDPASSWORD = $sqlPassword
24-
$sqlCmdArgs = "-S `"$serverName`" -U `"$sqlUsername`" -Q `"select getdate()`""
47+
48+
$formattedSqlUsername = $sqlUserName
49+
50+
if($sqlUserName)
51+
{
52+
$formattedSqlUsername = Get-FormattedSqlUsername -sqlUserName $sqlUserName -serverName $serverName
53+
}
54+
55+
$sqlCmdArgs = "-S `"$serverName`" -U `"$formattedSqlUsername`" -Q `"select getdate()`""
2556

2657
Write-Verbose "Reaching SqlServer to check connection by running sqlcmd.exe $sqlCmdArgs"
2758

@@ -144,18 +175,7 @@ function Get-SqlPackageCommandArguments
144175

145176
if($sqlUsername)
146177
{
147-
if ($serverName)
148-
{
149-
$serverNameSplittedArgs = $serverName.Trim().Split(".")
150-
if ($serverNameSplittedArgs.Length -gt 0)
151-
{
152-
$sqlServerFirstName = $serverNameSplittedArgs[0]
153-
if ((-not $sqlUsername.Trim().Contains("@" + $sqlServerFirstName)) -and $sqlUsername.Contains('@'))
154-
{
155-
$sqlUsername = $sqlUsername + "@" + $serverName
156-
}
157-
}
158-
}
178+
$sqlUsername = Get-FormattedSqlUsername -sqlUserName $sqlUsername -serverName $serverName
159179

160180
$sqlPackageArguments += @($SqlPackageOptions.TargetUser + "`"$sqlUsername`"")
161181
if(-not($sqlPassword))

Tasks/SqlAzureDacpacDeployment/task.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"version": {
1717
"Major": 1,
1818
"Minor": 1,
19-
"Patch": 15
19+
"Patch": 16
2020
},
2121
"demands": [
2222
"sqlpackage"

Tasks/SqlAzureDacpacDeployment/task.loc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"version": {
1717
"Major": 1,
1818
"Minor": 1,
19-
"Patch": 15
19+
"Patch": 16
2020
},
2121
"demands": [
2222
"sqlpackage"

0 commit comments

Comments
 (0)