]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/aviator/lib/puppet/feature/aviator/openstack/identity/requests/v2/admin/create_user.rb
bf82b64e4075ce34af53553f355a964c17d45fd4
[dsa-puppet.git] / 3rdparty / modules / aviator / lib / puppet / feature / aviator / openstack / identity / requests / v2 / admin / create_user.rb
1 module Aviator
2
3   define_request :create_user do
4
5     meta :provider,      :openstack
6     meta :service,       :identity
7     meta :api_version,   :v2
8     meta :endpoint_type, :admin
9
10
11     link 'documentation',
12       'http://docs.openstack.org/api/openstack-identity-service/2.0/content/POST_addUser_v2.0_users_.html'
13
14     link 'documentation bug',
15       'https://bugs.launchpad.net/keystone/+bug/1110435'
16
17     link 'documentation bug',
18       'https://bugs.launchpad.net/keystone/+bug/1226466'
19
20
21     param :name,      :required => true
22     param :password,  :required => true
23
24     param :email,     :required => false
25     param :enabled,   :required => false
26     param :tenantId,  :required => false, :alias => :tenant_id
27     param :extras,    :required => false
28
29
30     def body
31       p = {
32         :user => {}
33       }
34
35       (required_params + optional_params).each do |key|
36         p[:user][key] = params[key] if params[key]
37       end
38
39       p
40     end
41
42
43     def headers
44       h = {}
45
46       unless self.anonymous?
47         h['X-Auth-Token'] = session_data[:body][:access][:token][:id]
48       end
49
50       h
51     end
52
53
54     def http_method
55       :post
56     end
57
58
59     def url
60       service_spec = session_data[:body][:access][:serviceCatalog].find{|s| s[:type] == 'identity' }
61       "#{ service_spec[:endpoints][0][:adminURL] }/users"
62     end
63
64   end
65
66 end
67