fuel-plugin-cisco-aci/deployment_scripts/puppet/modules/neutron/lib/puppet/type/neutron_router_interface.rb

52 lines
1014 B
Ruby

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