Skip to content

Commit

Permalink
Apply gccl header for Spanner clients in Google.Cloud.Spanner.Data
Browse files Browse the repository at this point in the history
  • Loading branch information
jskeet committed Mar 3, 2020
1 parent 48773cc commit 36f1e1e
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,17 @@ static SessionPoolManager()

/// <summary>
/// The SpannerSettings used by this SessionPoolManager. These are expected to remain unaltered for the lifetime of the manager.
/// Currently the default settings are used in all cases.
/// Currently the default settings are used in all cases, but with the "gccl" version header added to specify the version of Google.Cloud.Spanner.Data
/// being used.
/// </summary>
internal SpannerSettings SpannerSettings { get; } = SpannerSettings.GetDefault();
internal SpannerSettings SpannerSettings { get; } = CreateSpannerSettingsWithVersionHeader();

private static SpannerSettings CreateSpannerSettingsWithVersionHeader()
{
var settings = new SpannerSettings();
settings.VersionHeaderBuilder.AppendAssemblyVersion("gccl", typeof(SessionPoolManager));
return settings;
}

/// <summary>
/// Constructor for test purposes, allowing the SpannerClient creation to be customized (e.g. for
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@ private class ExecutableCommand
private static readonly TransactionOptions s_partitionedDmlTransactionOptions = new TransactionOptions { PartitionedDml = new PartitionedDml() };
private static readonly TransactionOptions s_readWriteOptions = new TransactionOptions { ReadWrite = new ReadWrite() };

private static readonly DatabaseAdminSettings s_databaseAdminSettings = CreateDatabaseAdminSettings();

private static DatabaseAdminSettings CreateDatabaseAdminSettings()
{
var settings = new DatabaseAdminSettings();
settings.VersionHeaderBuilder.AppendAssemblyVersion("gccl", typeof(SpannerCommand));
return settings;
}

internal SpannerConnection Connection { get; }
internal SpannerCommandTextBuilder CommandTextBuilder { get; }
internal int CommandTimeout { get; }
Expand Down Expand Up @@ -203,7 +212,11 @@ private async Task<int> ExecuteDdlAsync(CancellationToken cancellationToken)
var channel = new Channel(channelOptions.Endpoint, credentials);
try
{
var databaseAdminClient = new DatabaseAdminClientBuilder { CallInvoker = channel.CreateCallInvoker() }.Build();
var databaseAdminClient = new DatabaseAdminClientBuilder
{
CallInvoker = channel.CreateCallInvoker(),
Settings = s_databaseAdminSettings
}.Build();
if (CommandTextBuilder.IsCreateDatabaseCommand)
{
var parent = new InstanceName(Connection.Project, Connection.SpannerInstance);
Expand Down

0 comments on commit 36f1e1e

Please sign in to comment.