]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/aviator/feature/aviator/openstack/compute/v2/public/create_server.rb
add aimonb/aviator to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / aviator / feature / aviator / openstack / compute / v2 / public / create_server.rb
1 module Aviator
2
3   define_request :create_server, :inherit => [:openstack, :common, :v2, :public, :base] do
4
5     meta :service, :compute
6
7     link 'documentation',
8          'http://docs.openstack.org/api/openstack-compute/2/content/CreateServers.html'
9
10     param :accessIPv4,  :required => false, :alias => :access_ipv4
11     param :accessIPv6,  :required => false, :alias => :access_ipv6
12     param :adminPass,   :required => false, :alias => :admin_pass
13     param :imageRef,    :required => true,  :alias => :image_ref
14     param :flavorRef,   :required => true,  :alias => :flavor_ref
15     param :metadata,    :required => false
16     param :name,        :required => true
17     param :networks,    :required => false
18     param :personality, :required => false
19
20
21     def body
22       p = {
23         :server => {
24           :flavorRef => params[:flavorRef],
25           :imageRef  => params[:imageRef],
26           :name      => params[:name]
27         }
28       }
29
30       [:adminPass, :metadata, :personality, :networks, :accessIPv4, :accessIPv6].each do |key|
31         p[:server][key] = params[key] if params[key]
32       end
33
34       p
35     end
36
37
38     def headers
39       super
40     end
41
42
43     def http_method
44       :post
45     end
46
47
48     def url
49       "#{ base_url }/servers"
50     end
51
52   end
53
54 end