Skip to content

Commit 7b8d958

Browse files
committed
Promisify docker
1 parent 7af38e0 commit 7b8d958

File tree

3 files changed

+249
-395
lines changed

3 files changed

+249
-395
lines changed

api/hosts-api.js

Lines changed: 43 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ hostAPI.get('/images', {
292292
title: 'List host images',
293293
description: 'List the Docker images available on this host.',
294294

295-
handler: (request, response) => {
295+
handler: async (request, response) => {
296296
const { user } = request;
297297
if (!users.isAdmin(user)) {
298298
response.statusCode = 404; // Not Found
@@ -307,15 +307,15 @@ hostAPI.get('/images', {
307307
return;
308308
}
309309

310-
docker.listImages({ host: hostname }, (error, images) => {
311-
if (error) {
312-
log('[fail] host images', error);
313-
response.statusCode = 503; // Service Unavailable
314-
response.json({ error: 'Host unreachable' }, null, 2);
315-
return;
316-
}
310+
try {
311+
const images = await docker.listImages({ host: hostname });
312+
317313
response.json(images, null, 2);
318-
});
314+
} catch (error) {
315+
log('[fail] host images', error);
316+
response.statusCode = 503; // Service Unavailable
317+
response.json({ error: 'Host unreachable' }, null, 2);
318+
}
319319
},
320320

321321
examples: [],
@@ -324,7 +324,7 @@ hostAPI.get('/images', {
324324
hostAPI.get('/version', {
325325
title: 'Show host version',
326326

327-
handler: (request, response) => {
327+
handler: async (request, response) => {
328328
const { user } = request;
329329
if (!users.isAdmin(user)) {
330330
response.statusCode = 404; // Not Found
@@ -339,15 +339,14 @@ hostAPI.get('/version', {
339339
return;
340340
}
341341

342-
docker.version({ host: hostname }, (error, version) => {
343-
if (error) {
344-
log('[fail] host version', error);
345-
response.statusCode = 503; // Service Unavailable
346-
response.json({ error: 'Host unreachable' }, null, 2);
347-
return;
348-
}
342+
try {
343+
const version = await docker.version({ host: hostname });
349344
response.json({ docker: version }, null, 2);
350-
});
345+
} catch (error) {
346+
log('[fail] host version', error);
347+
response.statusCode = 503; // Service Unavailable
348+
response.json({ error: 'Host unreachable' }, null, 2);
349+
}
351350
},
352351

353352
examples: [{
@@ -375,7 +374,7 @@ containersAPI.get({
375374
title: 'List containers',
376375
description: 'List all Docker containers on this host.',
377376

378-
handler: (request, response) => {
377+
handler: async (request, response) => {
379378
const { user } = request;
380379
if (!users.isAdmin(user)) {
381380
response.statusCode = 404; // Not Found
@@ -390,15 +389,14 @@ containersAPI.get({
390389
return;
391390
}
392391

393-
docker.listContainers({ host: hostname }, (error, containers) => {
394-
if (error) {
395-
log('[fail] host containers', error);
396-
response.statusCode = 503; // Service Unavailable
397-
response.json({ error: 'Host unreachable' }, null, 2);
398-
return;
399-
}
392+
try {
393+
const containers = await docker.listContainers({ host: hostname });
400394
response.json(containers, null, 2);
401-
});
395+
} catch (error) {
396+
log('[fail] host containers', error);
397+
response.statusCode = 503; // Service Unavailable
398+
response.json({ error: 'Host unreachable' }, null, 2);
399+
}
402400
},
403401

404402
examples: [],
@@ -407,7 +405,7 @@ containersAPI.get({
407405
containersAPI.put({
408406
title: 'Create a container',
409407

410-
handler (request, response) {
408+
async handler (request, response) {
411409
const { user } = request;
412410
if (!user) {
413411
response.statusCode = 403; // Forbidden
@@ -422,17 +420,15 @@ containersAPI.put({
422420
return;
423421
}
424422

425-
machines.spawn(user, projectId, (error, machine) => {
426-
if (error) {
427-
log('[fail] could not spawn machine', error);
428-
response.statusCode = 500; // Internal Server Error
429-
response.json({ error: 'Could not create new container' }, null, 2);
430-
return;
431-
}
432-
423+
try {
424+
const machine = await machines.spawn(user, projectId);
433425
response.statusCode = 201; // Created
434426
response.json({ container: machine.docker.container }, null, 2);
435-
});
427+
} catch (error) {
428+
log('[fail] could not spawn machine', error);
429+
response.statusCode = 500; // Internal Server Error
430+
response.json({ error: 'Could not create new container' }, null, 2);
431+
}
436432
},
437433

438434
examples: []
@@ -581,10 +577,10 @@ containerAPI.delete({
581577
containerAPI.get('/changes', {
582578
title: 'List changed files in a container',
583579
description:
584-
'List all files that were modified (Kind: 0), added (1) or deleted (2) ' +
585-
'in a given Docker container.',
580+
'List all files that were modified (Kind: 0), added (1) or deleted (2) ' +
581+
'in a given Docker container.',
586582

587-
handler: (request, response) => {
583+
handler: async (request, response) => {
588584
const { user } = request;
589585
if (!user) {
590586
response.statusCode = 403; // Forbidden
@@ -609,16 +605,14 @@ containerAPI.get('/changes', {
609605
}
610606

611607
const parameters = { host: hostname, container };
612-
docker.listChangedFilesInContainer(parameters, (error, changedFiles) => {
613-
if (error) {
614-
log('[fail] container changes', error);
615-
response.statusCode = 503; // Service Unavailable
616-
response.json({ error: 'Host unreachable' }, null, 2);
617-
return;
618-
}
619-
608+
try {
609+
const changedFiles = await docker.listChangedFilesInContainer(parameters);
620610
response.json(changedFiles, null, 2);
621-
});
611+
} catch (error) {
612+
log('[fail] container changes', error);
613+
response.statusCode = 503; // Service Unavailable
614+
response.json({ error: 'Host unreachable' }, null, 2);
615+
}
622616
},
623617

624618
examples: [{

0 commit comments

Comments
 (0)