]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/neutron/lib/puppet/type/neutron_router_interface.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / neutron / lib / puppet / type / neutron_router_interface.rb
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 (file)
index 0000000..b4d15b6
--- /dev/null
@@ -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