]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/lib/puppet/type/keystone_endpoint.rb
4b0e6df9caaa679f66102f409b0692bd36c9fc26
[dsa-puppet.git] / 3rdparty / modules / keystone / lib / puppet / type / keystone_endpoint.rb
1 # LP#1408531
2 File.expand_path('../..', File.dirname(__FILE__)).tap { |dir| $LOAD_PATH.unshift(dir) unless $LOAD_PATH.include?(dir) }
3 require 'puppet/util/openstack'
4 Puppet::Type.newtype(:keystone_endpoint) do
5
6   desc 'Type for managing keystone endpoints.'
7
8   ensurable
9
10   newparam(:name, :namevar => true) do
11     newvalues(/\S+\/\S+/)
12   end
13
14   newproperty(:id) do
15     validate do |v|
16       raise(Puppet::Error, 'This is a read only property')
17     end
18   end
19
20   newproperty(:region) do
21   end
22
23   newproperty(:public_url) do
24   end
25
26   newproperty(:internal_url) do
27   end
28
29   newproperty(:admin_url) do
30   end
31
32   # we should not do anything until the keystone service is started
33   autorequire(:service) do
34     ['keystone']
35   end
36
37   autorequire(:keystone_service) do
38     (region, service_name) = self[:name].split('/')
39     [service_name]
40   end
41
42   auth_param_doc=<<EOT
43 If no other credentials are present, the provider will search in
44 /etc/keystone/keystone.conf for an admin token and auth url.
45 EOT
46   Puppet::Util::Openstack.add_openstack_type_methods(self, auth_param_doc)
47 end