UNPKG

1.19 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = applyPlan;
7
8var _cccfDockerInstructions = require('cccf-docker-instructions');
9
10var _cccfDockerInstructions2 = _interopRequireDefault(_cccfDockerInstructions);
11
12var _clone = require('clone');
13
14var _clone2 = _interopRequireDefault(_clone);
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18function removeOutputFields(s) {
19 var service = (0, _clone2.default)(s);
20 delete service.placement;
21 delete service.driver;
22 service.host = 'tcp://' + service.host.ip + ':4243';
23 service.memory = service.memory + 'b';
24 service['cpu-shares'] = service.cpu;
25 delete service.cpu;
26 return service;
27}
28
29function applyPlan(plan) {
30 // perform depending on driver
31 var add_cmds = _cccfDockerInstructions2.default.run(plan.add.map(removeOutputFields));
32 var stop_cmds = _cccfDockerInstructions2.default.stop(plan.remove.map(removeOutputFields));
33 var rm_cmds = _cccfDockerInstructions2.default.rm(plan.remove.map(removeOutputFields));
34
35 // run stop in paralell
36 // then run rm
37 // then run add
38
39 return stop_cmds.concat(rm_cmds, add_cmds).join('\n');
40}
\No newline at end of file