X-Git-Url: https://git.donarmstrong.com/?p=dsa-puppet.git;a=blobdiff_plain;f=3rdparty%2Fmodules%2Fneutron%2Flib%2Fpuppet%2Ftype%2Fneutron_router_interface.rb;fp=3rdparty%2Fmodules%2Fneutron%2Flib%2Fpuppet%2Ftype%2Fneutron_router_interface.rb;h=b4d15b65b8b82472608866fff5744eda75ed1489;hp=0000000000000000000000000000000000000000;hb=4631045ebb77ee8622f6fa09277a50c372bcc02e;hpb=3d4dc4fd9e59bd0e07646c99f6b356c7d9d859aa diff --git a/3rdparty/modules/neutron/lib/puppet/type/neutron_router_interface.rb b/3rdparty/modules/neutron/lib/puppet/type/neutron_router_interface.rb new file mode 100644 index 00000000..b4d15b65 --- /dev/null +++ b/3rdparty/modules/neutron/lib/puppet/type/neutron_router_interface.rb @@ -0,0 +1,51 @@ +Puppet::Type.newtype(:neutron_router_interface) do + + desc <<-EOT + This is currently used to model the creation of + neutron router interfaces. + + Router interfaces are an association between a router and a + subnet. + EOT + + ensurable + + newparam(:name, :namevar => true) do + newvalues(/^\S+:\S+$/) + end + + newproperty(:id) do + validate do |v| + raise(Puppet::Error, 'This is a read only property') + end + end + + newproperty(:router_name) do + validate do |v| + raise(Puppet::Error, 'This is a read only property') + end + end + + newproperty(:subnet_name) do + validate do |v| + raise(Puppet::Error, 'This is a read only property') + end + end + + newproperty(:port) do + desc 'An existing neutron port to which a rounter interface should be assigned' + end + + autorequire(:service) do + ['neutron-server'] + end + + autorequire(:neutron_router) do + self[:name].split(':', 2).first + end + + autorequire(:neutron_subnet) do + self[:name].split(':', 2).last + end + +end