]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/vswitch/lib/puppet/provider/vs_port/ovs.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / vswitch / lib / puppet / provider / vs_port / ovs.rb
diff --git a/3rdparty/modules/vswitch/lib/puppet/provider/vs_port/ovs.rb b/3rdparty/modules/vswitch/lib/puppet/provider/vs_port/ovs.rb
new file mode 100644 (file)
index 0000000..483b13b
--- /dev/null
@@ -0,0 +1,21 @@
+require 'puppet'
+
+Puppet::Type.type(:vs_port).provide(:ovs) do
+  desc 'Openvswitch port manipulation'
+
+  commands :vsctl => 'ovs-vsctl'
+
+  def exists?
+    vsctl('list-ports', @resource[:bridge]).include? @resource[:interface]
+  rescue Puppet::ExecutionFailure => e
+    return false
+  end
+
+  def create
+    vsctl('add-port', @resource[:bridge], @resource[:interface])
+  end
+
+  def destroy
+    vsctl('del-port', @resource[:bridge], @resource[:interface])
+  end
+end