]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 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
diff --git a/3rdparty/modules/aviator/feature/aviator/openstack/volume/v1/public/create_volume.rb b/3rdparty/modules/aviator/feature/aviator/openstack/volume/v1/public/create_volume.rb
new file mode 100644 (file)
index 0000000..f40354d
--- /dev/null
@@ -0,0 +1,47 @@
+module Aviator
+
+  define_request :create_volume, :inherit => [:openstack, :common, :v2, :public, :base] do
+    
+    meta :service,        :volume
+    meta :api_version,    :v1
+
+    link 'documentation', 'http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/POST_createVolume_v1__tenant_id__volumes_v1__tenant_id__volumes.html'
+
+    param :display_name,        :required => true
+    param :display_description, :required => true
+    param :size,                :required => true
+    param :volume_type,         :required => false
+    param :availability_zone,   :required => false
+    param :snapshot_id,         :required => false
+    param :metadata,            :required => false
+
+    def body
+      p = {
+        :volume => {
+         :display_name          => params[:display_name],
+         :display_description   => params[:display_description],
+         :size                  => params[:size]
+        }
+      }
+
+      optional_params.each do |key|
+          p[:volume][key] = params[key] if params[key]
+      end
+
+      p
+    end
+
+    def headers
+      super
+    end
+
+    def http_method
+      :post
+    end
+
+    def url
+      "#{ base_url }/volumes"
+    end
+  end
+
+end