UNPKG

mecano

Version:

Common functions for system deployment.

49 lines (46 loc) 1.27 kB
// Generated by CoffeeScript 1.11.1 var iptables; module.exports = function(options, callback) { options.log({ message: "Entering iptables", level: 'DEBUG', module: 'mecano/lib/iptables' }); options.log({ message: "List existing rules", level: 'INFO', module: 'mecano/lib/iptables' }); return this.execute({ cmd: "service iptables status &>/dev/null && iptables -S", code_skipped: 3 }, (function(_this) { return function(err, executed, stdout) { var cmd, newrules, oldrules; if (err) { return callback(err); } if (!executed) { return callback(Error("Service iptables not started")); } oldrules = iptables.parse(stdout); newrules = iptables.normalize(options.rules); cmd = iptables.cmd(oldrules, newrules); if (!cmd.length) { return callback(); } options.log({ message: cmd.length + " modified rules", level: 'WARN', module: 'mecano/lib/iptables' }); return _this.execute({ cmd: (cmd.join('; ')) + "; service iptables save;", trap: true }, function(err, executed) { return callback(err, true); }); }; })(this)); }; iptables = require('../misc/iptables');