]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/vswitch/lib/puppet/type/vs_bridge.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / vswitch / lib / puppet / type / vs_bridge.rb
diff --git a/3rdparty/modules/vswitch/lib/puppet/type/vs_bridge.rb b/3rdparty/modules/vswitch/lib/puppet/type/vs_bridge.rb
new file mode 100644 (file)
index 0000000..cbcce90
--- /dev/null
@@ -0,0 +1,30 @@
+require 'puppet'
+
+Puppet::Type.newtype(:vs_bridge) do
+  desc 'A Switch - For example "br-int" in OpenStack'
+
+  ensurable
+
+  newparam(:name, :namevar => true) do
+    desc 'The bridge to configure'
+
+    validate do |value|
+      if !value.is_a?(String)
+        raise ArgumentError, "Invalid name #{value}. Requires a String, not a #{value.class}"
+      end
+    end
+  end
+
+  newproperty(:external_ids) do
+    desc 'External IDs for the bridge: "key1=value2,key2=value2"'
+
+    validate do |value|
+      if !value.is_a?(String)
+        raise ArgumentError, "Invalid external_ids #{value}. Requires a String, not a #{value.class}"
+      end
+      if value !~ /^(?>[a-zA-Z]\S*=\S*){1}(?>[,][a-zA-Z]\S*=\S*)*$/
+        raise ArgumentError, "Invalid external_ids #{value}. Must a list of key1=value2,key2=value2"
+      end
+    end
+  end
+end