Skip to content

Commit

Permalink
Remove observabilityOptions from SessionPoolOptions
Browse files Browse the repository at this point in the history
  • Loading branch information
odeke-em committed Oct 4, 2024
1 parent db00575 commit b69e3b9
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 22 deletions.
8 changes: 6 additions & 2 deletions src/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -450,9 +450,14 @@ class Database extends common.GrpcServiceObject {
typeof poolOptions === 'function'
? new (poolOptions as SessionPoolConstructor)(this, null)
: new SessionPool(this, poolOptions);
const concretePool = this.pool_ as SessionPool;
if (concretePool) {
concretePool._observabilityOptions = instance._observabilityOptions;
}
if (typeof poolOptions === 'object') {
this.databaseRole = poolOptions.databaseRole || null;
}
this._observabilityOptions = instance._observabilityOptions;
this.formattedName_ = formattedName_;
this.instance = instance;
this.resourceHeader_ = {
Expand All @@ -467,7 +472,6 @@ class Database extends common.GrpcServiceObject {
Object.assign({}, queryOptions),
Database.getEnvironmentQueryOptions()
);
this._observabilityOptions = instance._observabilityOptions;
}
/**
* @typedef {array} SetDatabaseMetadataResponse
Expand Down Expand Up @@ -744,8 +748,8 @@ class Database extends common.GrpcServiceObject {
const id = identifier.transaction;
const transaction = new BatchTransaction(session, options);
transaction.id = id;
transaction.readTimestamp = identifier.timestamp as PreciseDate;
transaction._observabilityOptions = this._observabilityOptions;
transaction.readTimestamp = identifier.timestamp as PreciseDate;
return transaction;
}
/**
Expand Down
19 changes: 3 additions & 16 deletions src/instance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -965,31 +965,18 @@ class Instance extends common.GrpcServiceObject {
if (!name) {
throw new GoogleError('A name is required to access a Database object.');
}
// To avoid a JSON.stringify error with the observabilityOptions
// we should delete that key.
const jsonifyPoolOptions: SessionPoolOptions = {};
Object.assign(jsonifyPoolOptions, poolOptions);
delete jsonifyPoolOptions.observabilityOptions;
// Only add an additional key for SessionPoolOptions and QueryOptions if an
// options object with at least one value was passed in.
let optionsKey =
poolOptions && Object.keys(jsonifyPoolOptions).length > 0
? '/' + JSON.stringify(Object.entries(jsonifyPoolOptions).sort())
poolOptions && Object.keys(poolOptions).length > 0
? '/' + JSON.stringify(Object.entries(poolOptions).sort())
: '';
if (queryOptions && Object.keys(queryOptions).length > 0) {
optionsKey =
optionsKey + '/' + JSON.stringify(Object.entries(queryOptions!).sort());
}
const key = name.split('/').pop() + optionsKey;
if (!this.databases_.has(key!)) {
if (poolOptions) {
const poolOpts = poolOptions as SessionPoolOptions;
if (poolOpts && !poolOpts.observabilityOptions) {
poolOpts.observabilityOptions = this._observabilityOptions;
}
} else {
poolOptions = {observabilityOptions: this._observabilityOptions};
}
const db = new Database(this, name, poolOptions, queryOptions);
db._observabilityOptions = this._observabilityOptions;
this.databases_.set(key!, db);
Expand Down Expand Up @@ -1376,9 +1363,9 @@ class Instance extends common.GrpcServiceObject {
databases = rowDatabases.map(database => {
const databaseInstance = self.database(database.name!, {
min: 0,
observabilityOptions: this._observabilityOptions,
});
databaseInstance.metadata = database;
databaseInstance._observabilityOptions = this._observabilityOptions;
return databaseInstance;
});
}
Expand Down
5 changes: 1 addition & 4 deletions src/session-pool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,6 @@ export interface SessionPoolOptions {
writes?: number;
incStep?: number;
databaseRole?: string | null;
observabilityOptions?: ObservabilityOptions;
}

const DEFAULTS: SessionPoolOptions = {
Expand Down Expand Up @@ -492,9 +491,7 @@ export class SessionPool extends EventEmitter implements SessionPoolInterface {
});

this._traces = new Map();
if (options) {
this._observabilityOptions = options.observabilityOptions;
} else {
if (!this._observabilityOptions) {
this._observabilityOptions = database._observabilityOptions;
}
}
Expand Down
1 change: 1 addition & 0 deletions test/spanner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5045,6 +5045,7 @@ describe('Spanner with mock server', () => {
});

const expectedSpanNames = [
'CloudSpanner.Database.batchCreateSessions',
'CloudSpanner.SessionPool.createSessions',
'CloudSpanner.Database.runStream',
'CloudSpanner.Database.run',
Expand Down

0 comments on commit b69e3b9

Please sign in to comment.