Skip to content
This repository has been archived by the owner on Dec 19, 2023. It is now read-only.

Commit

Permalink
Added some additional logging to identify when a LeaseManager was abl…
Browse files Browse the repository at this point in the history
…e to lookup a secret.
  • Loading branch information
davepgreene committed Dec 12, 2016
1 parent 4cde4fd commit e24ae6d
Showing 1 changed file with 22 additions and 29 deletions.
51 changes: 22 additions & 29 deletions lib/storage-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,17 +67,23 @@ class StorageService {
lookup(token, secret, ProviderType) {
return this._getLeaseManager(token, secret, ProviderType).then((manager) => {
if (manager.status === STATUS.READY) {
StorageService.logManagerEvent('INFO', 'Manager was able to lookup a secret.', manager);

// LeaseManager is ready, immediately resolve with data
return manager.data;
}

// Queue the promise states with a timeout
return onceWithTimeout(manager, 'ready', this.timeout)
.then(() => manager.data)
.catch((err) => {
this._managers.delete(manager.name);
throw err;
});
return onceWithTimeout(manager, 'ready', this.timeout).then(() => {
StorageService.logManagerEvent('INFO', 'Manager was able to lookup a secret.', manager);

return manager.data;
})
.catch((err) => {
StorageService.logManagerEvent('ERROR', err, manager);
this._managers.delete(manager.name);
throw err;
});
});
}

Expand All @@ -100,7 +106,11 @@ class StorageService {
return this.defaultToken.initialize().then(() => {
// If the LeaseManager is already provisioned, return it
if (this._managers.has(secretID)) {
return this._managers.get(secretID).initialize();
const manager = this._managers.get(secretID);

StorageService.logManagerEvent('DEBUG', 'Retrieved LeaseManager.', manager);

return manager.initialize();
}

const manager = this._createManager(this.defaultToken.data.token, secret, ProviderType, secretID);
Expand Down Expand Up @@ -129,6 +139,7 @@ class StorageService {
const manager = new LeaseManager(provider, secretID);

StorageService.setEvents(manager);
StorageService.logManagerEvent('DEBUG', 'Created LeaseManager.', manager);

// Don't cache providers that can't be renewed
if (manager.renewable) {
Expand Down Expand Up @@ -161,38 +172,20 @@ class StorageService {
* @param {LeaseManager} manager
*/
static setEvents(manager) {
const type = manager.provider.constructor.name;

manager.on('ready', () => {
Log.log('INFO', 'Manager is ready', {
provider: type,
status: manager.status,
lease_duration: manager.lease_duration
});
StorageService.logManagerEvent('INFO', 'Manager is ready.', manager);
});

manager.on('renewed', () => {
Log.log('INFO', 'Manager renewed provider\'s data', {
provider: type,
status: manager.status,
lease_duration: manager.lease_duration
});
StorageService.logManagerEvent('INFO', 'Manager renewed provider\'s data.', manager);
});

manager.on('error', (err) => {
Log.log('ERROR', err, {
provider: type,
status: manager.status,
lease_duration: manager.lease_duration
});
StorageService.logManagerEvent('ERROR', err, manager);
});

manager.on('invalidate', () => {
Log.log('INFO', 'Invalidating token due to expiration.', {
provider: type,
status: manager.status,
lease_duration: manager.lease_duration
});
StorageService.logManagerEvent('INFO', 'Invalidating manager due to expiration.', manager);
});
}
}
Expand Down

0 comments on commit e24ae6d

Please sign in to comment.