ovsdriver
Version:
Openvswitch utility commands wrapper
76 lines (64 loc) • 2.33 kB
text/coffeescript
util = require 'util'
exec = require('child_process').exec
class OVS
execute : (command, callback) ->
callback false unless command?
util.log "executing #{command}..."
exec command, (error, stdout, stderr) =>
#util.log "ovsdriver: execute - Error : " + error
#util.log "ovsdriver: execute - stdout : " + stdout
#util.log "ovsdriver: execute - stderr : " + stderr
if error
callback false
else
callback true
createBridge : (bridgname, callback) ->
command = "ovs-vsctl add-br #{bridgname}"
command,(result) =>
callback result
addInterface : (bridgname,ifname,callback) ->
command = "ovs-vsctl add-port #{bridgname} #{ifname}"
command,(result) =>
callback result
enableBridge : (bridgname, callback) ->
command = "ifconfig #{bridgname} up"
command,(result) =>
callback result
disableBridge : (bridgname , callback) ->
command = "ifconfig #{bridgname} down"
command,(result) =>
callback result
setController : (bridgename , controllerip, callback)->
command = "ovs-vsctl set-controller #{bridgename} #{controllerip}"
command,(result) =>
callback result
deleteBridge : (bridgename, callback) ->
bridgename, (result)=>
command = "ovs-vsctl del-br #{bridgename}"
command,(result) =>
callback result
getStatus: (bridgename, callback) ->
command = "ovs-vsctl show #{bridgename}"
exec command, (error, stdout, stderr) =>
#util.log "ovsdriver: execute - Error : " + error
#util.log "ovsdriver: execute - stdout : " + stdout
#util.log "ovsdriver: execute - stderr : " + stderr
if stdout? or error
callback "notrunning"
else
callback "running"
setOFVersion: (bridgename, versionno, callback)->
switch versionno
when 1.0 then version = "OpenFlow10"
when 1.1 then version = "OpenFlow11"
when 1.2 then version = "OpenFlow12"
when 1.3 then version = "OpenFlow13"
else version = "OpenFlow10"
command = "ovs-vsctl set bridge #{bridgename} protocols=#{version}"
command,(result) =>
callback result
setDPid : (bridgename,dpid, callback)->
command = "ovs-vsctl set bridge #{bridgename} other_config:datapath-id=#{dpid}"
command,(result) =>
callback result
module.exports = new OVS