Skip to content

Commit 351dd0f

Browse files
update during creation to restore task logger, and to never restore a step
1 parent bb403b6 commit 351dd0f

File tree

4 files changed

+15
-89
lines changed

4 files changed

+15
-89
lines changed

lib/logger.js

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ class Logger {
2828
this.containerLoggers = [];
2929
this.logSize = 0;
3030
this.taskLogger = undefined;
31-
this.steps = {};
3231

3332
let dockerSockPath;
3433
if (fs.existsSync('/var/run/codefresh/docker.sock')) {
@@ -76,6 +75,9 @@ class Logger {
7675
this.taskLogger = taskLogger;
7776
logger.info(`taskLogger successfully created`);
7877

78+
return taskLogger.restore();
79+
})
80+
.then(() => {
7981
this._listenForNewContainers();
8082

8183
this.state.status = 'ready';
@@ -146,7 +148,6 @@ class Logger {
146148
const containerId = container.Id || container.id;
147149
const containerStatus = container.Status || container.status;
148150
const receivedLoggerId = _.get(container, 'Labels', _.get(container, 'Actor.Attributes'))['io.codefresh.logger.id'];
149-
const runCreationLogic = _.get(container, 'Labels', _.get(container, 'Actor.Attributes'))['io.codefresh.runCreationLogic'];
150151
const stepName = _.get(container, 'Labels', _.get(container, 'Actor.Attributes'))['io.codefresh.logger.stepName'];
151152
const receivedLogSizeLimit = _.get(container,
152153
'Labels',
@@ -198,25 +199,9 @@ class Logger {
198199

199200
this.state[containerId] = { status: ContainerHandlingStatus.INITIALIZING };
200201
logger.info(`Handling container: ${containerId}, status: '${containerStatus}'`);
201-
let stepLogger = this.steps[stepName];
202-
if (!stepLogger) {
203-
stepLogger = this.taskLogger.create(stepName, undefined, undefined, runCreationLogic);
204-
this.steps[stepName] = stepLogger;
205-
logger.info(`Created new step logger for container: ${containerId}`);
206-
try {
207-
await stepLogger.restore(); // jshint ignore:line
208-
logger.info(`Restored step logger state for container: ${containerId}`);
209-
} catch (err) {
210-
const error = new CFError({
211-
cause: err,
212-
message: `Failed to restore step`
213-
});
214-
logger.error(error.toString());
215-
return;
216-
}
217-
} else {
218-
logger.info(`Reusing step logger for container: ${containerId}`);
219-
}
202+
const stepLogger = this.taskLogger.create(stepName, undefined, undefined, true);
203+
logger.info(`Brought step logger for container: ${containerId}`);
204+
220205

221206
const logSizeLimit = receivedLogSizeLimit ? (parseInt(receivedLogSizeLimit) * 1000000) : undefined;
222207

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"cf-container-logger"
77
],
88
"dependencies": {
9-
"@codefresh-io/task-logger": "^0.0.8",
9+
"@codefresh-io/task-logger": "^0.0.9",
1010
"cf-errors": "^0.1.11",
1111
"cf-logs": "^1.1.0",
1212
"docker-events": "0.0.2",

test/logger.unit.spec.js

Lines changed: 4 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ describe('Logger tests', () => {
7373

7474
it('should start and not listen for existing container in case findExistingContainers param is false', async () => { // jshint ignore:line
7575
const taskLogger = { // jshint ignore:line
76-
on: sinon.spy()
76+
on: sinon.spy(),
77+
restore: sinon.spy(() => Q.resolve())
7778
};
7879
const TaskLoggerFactory = sinon.spy(() => {
7980
return Q.resolve(taskLogger);
@@ -108,7 +109,8 @@ describe('Logger tests', () => {
108109
it('should start and listen for existing container in case findExistingContainers param is "true"', async () => {
109110

110111
const taskLogger = {
111-
on: sinon.spy()
112+
on: sinon.spy(),
113+
restore: sinon.spy(() => Q.resolve())
112114
};
113115
const TaskLoggerFactory = sinon.spy(() => {
114116
return Q.resolve(taskLogger);
@@ -617,67 +619,6 @@ describe('Logger tests', () => {
617619

618620
describe('should print an error in case firebase ref fails', () => {
619621

620-
it('error while create firebase logger ref', async () => {
621-
const startSpy = sinon.spy(() => {
622-
return Q.resolve();
623-
});
624-
const infoSpy = sinon.spy();
625-
const errorSpy = sinon.spy();
626-
const Logger = proxyquire('../lib/logger', {
627-
'cf-logs': {
628-
Logger: () => {
629-
return {
630-
info: infoSpy,
631-
error: errorSpy
632-
};
633-
634-
}
635-
},
636-
'./ContainerLogger': function () {
637-
const emitter = new EventEmitter();
638-
emitter.start = startSpy;
639-
return emitter;
640-
}
641-
});
642-
643-
const loggerId = 'loggerId';
644-
const firebaseAuthUrl = 'firebaseAuthUrl';
645-
const firebaseSecret = 'firebaseSecret';
646-
const firebaseMetricsLogsUrl = 'firebaseMetricsLogsUrl';
647-
const findExistingContainers = false;
648-
const logger = new Logger({
649-
loggerId, firebaseAuthUrl, firebaseSecret, findExistingContainers, firebaseMetricsLogsUrl
650-
});
651-
logger._writeNewState = sinon.spy();
652-
logger.taskLogger = {
653-
on: sinon.spy(),
654-
create: function () {
655-
return {
656-
restore: sinon.spy(() => Q.reject(new Error('my error')))
657-
}
658-
},
659-
setLogSize: sinon.spy()
660-
};
661-
const container = {
662-
Id: 'containerId',
663-
Status: ContainerStatus.CREATE,
664-
Labels: {
665-
'io.codefresh.logger.id': 'loggerId',
666-
'io.codefresh.logger.stepName': 'name',
667-
'io.codefresh.logger.strategy': LoggerStrategy.ATTACH,
668-
}
669-
};
670-
logger._handleContainer(container);
671-
await Q.delay(10);
672-
expect(errorSpy).to.have.been.calledOnce; // jshint ignore:line
673-
expect(errorSpy)
674-
.to
675-
.have
676-
.been
677-
.calledWith('Error: Failed to restore step; caused by Error: my error'); // jshint ignore:line
678-
679-
});
680-
681622
it('error while starting the container logger instance', (done) => {
682623
const startSpy = sinon.spy(() => {
683624
return Q.reject(new Error('ContainerLogger error'));

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
# yarn lockfile v1
33

44

5-
"@codefresh-io/task-logger@^0.0.8":
6-
version "0.0.8"
7-
resolved "https://registry.yarnpkg.com/@codefresh-io/task-logger/-/task-logger-0.0.8.tgz#5fae5ac1c63ee9b6e764d1ef88bd7436c5cf2fe9"
8-
integrity sha512-tbk4y5YTKyjHRvpEOzAxHHD8yMAQtV2BhStcNjBPoU2qpbzRG9D2NbbkAT1iHpqge6BPOI0GWfwty5yd9DXECQ==
5+
"@codefresh-io/task-logger@^0.0.9":
6+
version "0.0.9"
7+
resolved "https://registry.yarnpkg.com/@codefresh-io/task-logger/-/task-logger-0.0.9.tgz#35b4ad6eba02d5d4e50fc5c3770a305da639b523"
8+
integrity sha512-aFjBQPUej1sZ/NnAH8y6wIOVbE9I0PzU9U6j+wD0GYglWTEF8hHdfZAFyAEON3G1osQNk3TSKpn3JIdf3ZQZ1A==
99
dependencies:
1010
cf-errors "^0.1.11"
1111
crypto "0.0.3"

0 commit comments

Comments
 (0)