]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/aviator/feature/aviator/openstack/volume/v1/public/create_volume.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / aviator / feature / aviator / openstack / volume / v1 / public / create_volume.rb
1 module Aviator
2
3   define_request :create_volume, :inherit => [:openstack, :common, :v2, :public, :base] do
4     
5     meta :service,        :volume
6     meta :api_version,    :v1
7
8     link 'documentation', 'http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/POST_createVolume_v1__tenant_id__volumes_v1__tenant_id__volumes.html'
9
10     param :display_name,        :required => true
11     param :display_description, :required => true
12     param :size,                :required => true
13     param :volume_type,         :required => false
14     param :availability_zone,   :required => false
15     param :snapshot_id,         :required => false
16     param :metadata,            :required => false
17
18     def body
19       p = {
20         :volume => {
21          :display_name          => params[:display_name],
22          :display_description   => params[:display_description],
23          :size                  => params[:size]
24         }
25       }
26
27       optional_params.each do |key|
28           p[:volume][key] = params[key] if params[key]
29       end
30
31       p
32     end
33
34     def headers
35       super
36     end
37
38     def http_method
39       :post
40     end
41
42     def url
43       "#{ base_url }/volumes"
44     end
45   end
46
47 end