Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix | Fixing issue for SQL named Instances in Managed SNI using named pipes. #2142

Merged
Merged
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
56a19de
Implement support for NamePiped Instance in Managed SNI.
arellegue Aug 31, 2023
730e0c5
Removed path sepator prefix for default pipe name.
arellegue Aug 31, 2023
731048a
Added ReadOnlySpan to access string array.
arellegue Sep 1, 2023
4dbd383
Enhance InstanceNameTest to get NormalizedPipePath using either m_nor…
arellegue Sep 25, 2023
c948a59
Removed nuget package source from Nuget.config.
arellegue Sep 25, 2023
370aa8c
Removed SkipOnTargetFramework from NamedPipeInstanceNormalizedPipePa…
arellegue Sep 27, 2023
6d3e7c4
Added TCPInstanceConnectionString and NPInstanceConnectionString to c…
arellegue Sep 27, 2023
db07788
Include newly added config properties to SqlDbManager class.
arellegue Oct 4, 2023
b3660e4
Add condition to create Northwind database in named instance sql server.
arellegue Oct 4, 2023
6e7e24b
Use more meaningful name in third command line argument.
arellegue Oct 5, 2023
21d8eaf
Remove third command line argument. Control the Northwind creation in…
arellegue Oct 5, 2023
fc4f20e
Add ConditionalFact to test if NP Instance connection string is setup…
arellegue Oct 12, 2023
7a5297d
Revert all changes for newly added NamedInstance unit test. There is …
arellegue Oct 13, 2023
0d5a1e2
Revert config.default.json.
arellegue Oct 13, 2023
56903a9
Added 500ms delay after creating a user in SqlCredentialTest.
arellegue Oct 20, 2023
3bee9cf
Fixed Login exception error in OldCredentialsShouldFail unit test.
arellegue Oct 21, 2023
ee1d035
Add 5 seconds delay in createTestUser.
arellegue Oct 23, 2023
3724a46
Revert OldCredentialsShouldFail.
arellegue Oct 23, 2023
102e5b2
Removed unecessary comment.
arellegue Oct 23, 2023
b3a91cc
Removed blank line.
arellegue Oct 23, 2023
81f5f73
Removed blank line in SqlCredentialTest.
arellegue Oct 24, 2023
b5a581f
Removed using System.Data from InstanceNameTest class.
arellegue Oct 25, 2023
a96a5b9
Delete commented out InferLocalServerName();
arellegue Oct 27, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Revert all changes for newly added NamedInstance unit test. There is …
…already a named instance test that is using the existing Tcp and Np connection strings.
  • Loading branch information
arellegue committed Oct 13, 2023
commit 7a5297dcf5783e57578f58bf21846d959be5f0e8
Original file line number Diff line number Diff line change
@@ -692,8 +692,8 @@ private bool InferNamedPipesInformation()
// NamedPipeClientStream object will create the network path using PipeHostName and PipeName
// and can be seen in its _normalizedPipePath variable in the format \\servername\pipe\MSSQL$<instancename>\sql\query
PipeHostName = ServerName = tokensByBackSlash[0];
InferLocalServerName();
PipeName = $"{InstancePrefix}{tokensByBackSlash[1].ToUpper()}{PathSeparator}{DefaultPipeName}";
//InferLocalServerName();
PipeName = $"{InstancePrefix}{tokensByBackSlash[1]}{PathSeparator}{DefaultPipeName}";
}
else
{
@@ -704,9 +704,11 @@ private bool InferNamedPipesInformation()
else
{
PipeHostName = ServerName = _dataSourceAfterTrimmingProtocol;
InferLocalServerName();
//InferLocalServerName();
PipeName = SNINpHandle.DefaultPipePath;
}

InferLocalServerName();
return true;
}

Original file line number Diff line number Diff line change
@@ -27,8 +27,6 @@ public static class DataTestUtility
{
public static readonly string NPConnectionString = null;
public static readonly string TCPConnectionString = null;
public static readonly string NPInstanceConnectionString = null;
public static readonly string TCPInstanceConnectionString = null;
public static readonly string TCPConnectionStringHGSVBS = null;
public static readonly string TCPConnectionStringAASVBS = null;
public static readonly string TCPConnectionStringNoneVBS = null;
@@ -92,8 +90,6 @@ static DataTestUtility()
Config c = Config.Load();
NPConnectionString = c.NPConnectionString;
TCPConnectionString = c.TCPConnectionString;
NPInstanceConnectionString = c.NPInstanceConnectionString;
TCPInstanceConnectionString = c.TCPInstanceConnectionString;
TCPConnectionStringHGSVBS = c.TCPConnectionStringHGSVBS;
TCPConnectionStringAASVBS = c.TCPConnectionStringAASVBS;
TCPConnectionStringNoneVBS = c.TCPConnectionStringNoneVBS;
@@ -315,11 +311,6 @@ public static bool IsTCPConnStringSetup()
return !string.IsNullOrEmpty(TCPConnectionString);
}

public static bool IsNPInstanceConnStringsSetup()
{
return !string.IsNullOrEmpty(NPInstanceConnectionString);
}

// Synapse: Always Encrypted is not supported with Azure Synapse.
// Ref: https://feedback.azure.com/forums/307516-azure-synapse-analytics/suggestions/17858869-support-always-encrypted-in-sql-data-warehouse
public static bool AreConnStringSetupForAE()
Original file line number Diff line number Diff line change
@@ -85,26 +85,6 @@ public static void ConnectManagedWithInstanceNameTest(bool useMultiSubnetFailove
}
}

[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.IsNPInstanceConnStringsSetup), nameof(DataTestUtility.IsNotAzureServer))]
[PlatformSpecific(TestPlatforms.Windows)] // Named pipes with the given input strings are not supported on Unix
public async static void NamedPipeSecondaryInstanceTest()
{
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(DataTestUtility.NPInstanceConnectionString);
builder.ConnectTimeout = 5;
await OpenGoodConnection(builder.ConnectionString);
}

private async static Task OpenGoodConnection(string connectionString)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
await conn.OpenAsync();
DataTestUtility.AssertEqualsWithDescription( ConnectionState.Open, conn.State, "FAILED: Connection should be in open state");
}
}

private static bool IsBrowserAlive(string browserHostname)
{
const byte ClntUcastEx = 0x03;
Original file line number Diff line number Diff line change
@@ -23,8 +23,6 @@ public static class SqlDbManager

private const string TCPConnectionString = "TCPConnectionString";
private const string NPConnectionString = "NPConnectionString";
private const string TCPInstanceConnectionString = "TCPInstanceConnectionString";
private const string NPInstanceConnectionString = "NPInstanceConnectionString";
private const string TCPConnectionStringAASSGX = "TCPConnectionStringAASSGX";
private const string TCPConnectionStringAASVBS = "TCPConnectionStringAASVBS";
private const string TCPConnectionStringHGSVBS = "TCPConnectionStringHGSVBS";
@@ -65,7 +63,7 @@ public static void Run(string[] args)
{
// We do not create database for HGS-VBS since SQL Server for AASVBS and HGSVBS connection strings is same.
// Do not create database for NP connection string, since server is always same as TCP
if (activeConnString.Key != TCPConnectionStringHGSVBS && activeConnString.Key != NPConnectionString && activeConnString.Key != NPInstanceConnectionString)
if (activeConnString.Key != TCPConnectionStringHGSVBS && activeConnString.Key != NPConnectionString)
{
//Create a new database
CreateDatabase(dbName, context);
@@ -79,7 +77,7 @@ public static void Run(string[] args)
{
// We do not drop database for HGS-VBS since SQL Server for AASVBS and HGSVBS connection strings is same.
// Do not drop database for NP connection string, since server is always same as TCP
if (activeConnString.Key != TCPConnectionStringHGSVBS && activeConnString.Key != NPConnectionString && activeConnString.Key != NPInstanceConnectionString)
if (activeConnString.Key != TCPConnectionStringHGSVBS && activeConnString.Key != NPConnectionString)
{
// Drop Northwind for test run.
DropIfExistsDatabase(dbName, context);
@@ -120,16 +118,6 @@ private static void LoadActiveConnectionStrings()
{
s_activeConnectionStrings.Add(NPConnectionString, s_configJson.NPConnectionString);
}
if (!string.IsNullOrEmpty(s_configJson.TCPInstanceConnectionString))
{
Console.WriteLine($"Loading {s_configJson.TCPInstanceConnectionString}");
s_activeConnectionStrings.Add(TCPInstanceConnectionString, s_configJson.TCPInstanceConnectionString);
}
if (!string.IsNullOrEmpty(s_configJson.NPInstanceConnectionString))
{
Console.WriteLine($"Loading {s_configJson.NPInstanceConnectionString}");
s_activeConnectionStrings.Add(NPInstanceConnectionString, s_configJson.NPInstanceConnectionString);
}
if (s_configJson.EnclaveEnabled)
{
if (!string.IsNullOrEmpty(s_configJson.TCPConnectionStringAASSGX))
@@ -157,12 +145,6 @@ private static void UpdateConfig(string key, SqlConnectionStringBuilder builder)
case NPConnectionString:
s_configJson.NPConnectionString = builder.ConnectionString;
break;
case TCPInstanceConnectionString:
s_configJson.TCPInstanceConnectionString = builder.ConnectionString;
break;
case NPInstanceConnectionString:
s_configJson.NPInstanceConnectionString = builder.ConnectionString;
break;
case TCPConnectionStringAASSGX:
s_configJson.TCPConnectionStringAASSGX = builder.ConnectionString;
break;
Original file line number Diff line number Diff line change
@@ -12,8 +12,6 @@ public class Config
{
public string TCPConnectionString = null;
public string NPConnectionString = null;
public string TCPInstanceConnectionString = null;
public string NPInstanceConnectionString = null;
public string TCPConnectionStringHGSVBS = null;
public string TCPConnectionStringAASVBS = null;
public string TCPConnectionStringNoneVBS = null;