X-Git-Url: https://git.donarmstrong.com/?p=dsa-puppet.git;a=blobdiff_plain;f=3rdparty%2Fmodules%2Fvswitch%2Flib%2Fpuppet%2Ftype%2Fvs_bridge.rb;fp=3rdparty%2Fmodules%2Fvswitch%2Flib%2Fpuppet%2Ftype%2Fvs_bridge.rb;h=cbcce902ac9849819e2c099cd4ebbf7253186623;hp=0000000000000000000000000000000000000000;hb=4631045ebb77ee8622f6fa09277a50c372bcc02e;hpb=3d4dc4fd9e59bd0e07646c99f6b356c7d9d859aa 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 index 00000000..cbcce902 --- /dev/null +++ b/3rdparty/modules/vswitch/lib/puppet/type/vs_bridge.rb @@ -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