]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/neutron/lib/puppet/type/neutron_router_interface.rb
b4d15b65b8b82472608866fff5744eda75ed1489
[dsa-puppet.git] / 3rdparty / modules / neutron / lib / puppet / type / neutron_router_interface.rb
1 Puppet::Type.newtype(:neutron_router_interface) do
2
3   desc <<-EOT
4     This is currently used to model the creation of
5     neutron router interfaces.
6
7     Router interfaces are an association between a router and a
8     subnet.
9   EOT
10
11   ensurable
12
13   newparam(:name, :namevar => true) do
14     newvalues(/^\S+:\S+$/)
15   end
16
17   newproperty(:id) do
18     validate do |v|
19       raise(Puppet::Error, 'This is a read only property')
20     end
21   end
22
23   newproperty(:router_name) do
24     validate do |v|
25       raise(Puppet::Error, 'This is a read only property')
26     end
27   end
28
29   newproperty(:subnet_name) do
30     validate do |v|
31       raise(Puppet::Error, 'This is a read only property')
32     end
33   end
34
35   newproperty(:port) do
36     desc 'An existing neutron port to which a rounter interface should be assigned'
37   end
38
39   autorequire(:service) do
40     ['neutron-server']
41   end
42
43   autorequire(:neutron_router) do
44     self[:name].split(':', 2).first
45   end
46
47   autorequire(:neutron_subnet) do
48     self[:name].split(':', 2).last
49   end
50
51 end