8383f571a743214b2d741fa9cd5f6f3186d3ae6b
[mirror/dsa-puppet.git] /
1 module Aviator
2
3   define_request :rebuild_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/Rebuild_Server-d1e3538.html'
9
10     param :accessIPv4,  :required => false, :alias => :access_ipv4
11     param :accessIPv6,  :required => false, :alias => :access_ipv6
12     param :adminPass,   :required => true,  :alias => :admin_pass
13     param :id,          :required => true
14     param :imageRef,    :required => true,  :alias => :image_ref
15     param :metadata,    :required => false
16     param :name,        :required => true
17     param :personality, :required => false
18
19
20     def body
21       p = {
22         :rebuild => {
23           :adminPass => params[:adminPass],
24           :imageRef  => params[:imageRef],
25           :name      => params[:name]
26         }
27       }
28       
29       [:accessIPv4, :accessIPv6, :metadata, :personality].each do |key|
30         p[:rebuild][key] = params[key] if params[key]
31       end
32
33       p
34     end
35
36
37     def headers
38       super
39     end
40
41
42     def http_method
43       :post
44     end
45
46
47     def url
48       "#{ base_url }/servers/#{ params[:id] }/action"
49     end
50
51   end
52
53 end