Skip to content

Commit 731cc75

Browse files
author
Sjoerd Tieleman
committed
Fix for delete/cancel. Catch errors on migration.
1 parent 150e7ad commit 731cc75

File tree

4 files changed

+32
-17
lines changed

4 files changed

+32
-17
lines changed

lib/job-handler.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,24 @@ exports.freeSlots = function() {
2121
}
2222

2323
exports.cancelAndRemove = function(internalId, callback) {
24-
var job = Job.find(internalId, function(err, job) {
24+
for (var item in slots) {
25+
if (slots[item].internalId == internalId) {
26+
slots[item].cancel();
27+
}
28+
}
29+
30+
var job = Job.find({ where: { internalId: internalId }}).success(function(job) {
2531
if (job) {
26-
job.cancel();
2732
job.destroy().success(function () {
2833
callback(null, job);
2934
}).error(function (error) {
3035
callback("Error while destroying job from database: " + error, null);
3136
});
32-
} else if (err) {
33-
callback("Error while cancelling and/or removing job: " + err, null);
3437
} else {
3538
callback("No such job to delete", null);
3639
}
40+
}).error(function(err) {
41+
callback("Error while cancelling and/or removing job: " + err, null);
3742
});
3843
}
3944

lib/job.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ var JobUtils = {
4040
return JobUtils.pad((process.umask() ^ 0777).toString(8), '0', 4);
4141
},
4242

43-
migrateDatabase: function() {
44-
var migrator = JobUtils.getDatabase().getMigrator({path: __dirname + "/../migrations" }, true)
43+
migrateDatabase: function(callback) {
44+
var migrator = JobUtils.getDatabase().getMigrator({path: __dirname + "/../migrations" });
4545
migrator.migrate().success(function() {
46-
// successfully migrated
46+
callback(null);
4747
}).error(function(err) {
48-
// can't migrate
49-
})
48+
callback(err);
49+
});
5050
},
5151

5252
pad: function(orig, padString, length) {
@@ -71,8 +71,10 @@ var Job = JobUtils.getDatabase().define('Job', {
7171
updatedAt: Sequelize.DATE
7272
}, {
7373
classMethods: {
74-
prepareDatabase: function() {
75-
JobUtils.migrateDatabase();
74+
prepareDatabase: function(callback) {
75+
JobUtils.migrateDatabase(function (err) {
76+
err ? callback(err) : callback(null);
77+
});
7678
},
7779
create: function(opts, callback, completeCallback) {
7880
var job = Job.build({ opts: JSON.stringify(opts), internalId: Job.generateId() });

lib/server.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,13 @@ removeJob = function(request, response) {
9898
var body = {};
9999

100100
if (err) {
101-
response.statusCode = 500;
102-
body['message'] = unableToDeleteMessage;
103-
} else if (!job) {
104-
response.statusCode = 404;
105-
body['message'] = notFoundMessage;
101+
if (job) {
102+
response.statusCode = 500;
103+
body['message'] = unableToDeleteMessage;
104+
} else {
105+
response.statusCode = 404;
106+
body['message'] = notFoundMessage;
107+
}
106108
} else {
107109
response.statusCode = 200;
108110
body = job;

lib/transcoder.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@ var Transcoder = function() {
88

99
Transcoder.prototype.boot = function() {
1010
this.addSignalHandlers();
11-
Job.prepareDatabase();
11+
Job.prepareDatabase(function (err) {
12+
if (err) {
13+
// something went wrong
14+
logger.log("Error while preparing database for the transcoder.");
15+
process.exit(-1);
16+
}
17+
});
1218
server.launch();
1319
}
1420

0 commit comments

Comments
 (0)