UNPKG

ovsdriver

Version:

Openvswitch utility commands wrapper

147 lines (129 loc) 4.06 kB
// Generated by CoffeeScript 1.9.3 (function() { var OVS, exec, util; util = require('util'); exec = require('child_process').exec; OVS = (function() { function OVS() {} OVS.prototype.execute = function(command, callback) { if (command == null) { callback(false); } util.log("executing " + command + "..."); return exec(command, (function(_this) { return function(error, stdout, stderr) { if (error) { return callback(false); } else { return callback(true); } }; })(this)); }; OVS.prototype.createBridge = function(bridgname, callback) { var command; command = "ovs-vsctl add-br " + bridgname; return this.execute(command, (function(_this) { return function(result) { return callback(result); }; })(this)); }; OVS.prototype.addInterface = function(bridgname, ifname, callback) { var command; command = "ovs-vsctl add-port " + bridgname + " " + ifname; return this.execute(command, (function(_this) { return function(result) { return callback(result); }; })(this)); }; OVS.prototype.enableBridge = function(bridgname, callback) { var command; command = "ifconfig " + bridgname + " up"; return this.execute(command, (function(_this) { return function(result) { return callback(result); }; })(this)); }; OVS.prototype.disableBridge = function(bridgname, callback) { var command; command = "ifconfig " + bridgname + " down"; return this.execute(command, (function(_this) { return function(result) { return callback(result); }; })(this)); }; OVS.prototype.setController = function(bridgename, controllerip, callback) { var command; command = "ovs-vsctl set-controller " + bridgename + " " + controllerip; return this.execute(command, (function(_this) { return function(result) { return callback(result); }; })(this)); }; OVS.prototype.deleteBridge = function(bridgename, callback) { return this.disableBridge(bridgename, (function(_this) { return function(result) { var command; command = "ovs-vsctl del-br " + bridgename; return _this.execute(command, function(result) { return callback(result); }); }; })(this)); }; OVS.prototype.getStatus = function(bridgename, callback) { var command; command = "ovs-vsctl show " + bridgename; return exec(command, (function(_this) { return function(error, stdout, stderr) { if ((stdout != null) || error) { return callback("notrunning"); } else { return callback("running"); } }; })(this)); }; OVS.prototype.setOFVersion = function(bridgename, versionno, callback) { var command, version; switch (versionno) { case 1.0: version = "OpenFlow10"; break; case 1.1: version = "OpenFlow11"; break; case 1.2: version = "OpenFlow12"; break; case 1.3: version = "OpenFlow13"; break; default: version = "OpenFlow10"; } command = "ovs-vsctl set bridge " + bridgename + " protocols=" + version; return this.execute(command, (function(_this) { return function(result) { return callback(result); }; })(this)); }; OVS.prototype.setDPid = function(bridgename, dpid, callback) { var command; command = "ovs-vsctl set bridge " + bridgename + " other_config:datapath-id=" + dpid; return this.execute(command, (function(_this) { return function(result) { return callback(result); }; })(this)); }; return OVS; })(); module.exports = new OVS; }).call(this);