]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/aviator/feature/aviator/openstack/image/v1/public/list_public_images.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / aviator / feature / aviator / openstack / image / v1 / public / list_public_images.rb
diff --git a/3rdparty/modules/aviator/feature/aviator/openstack/image/v1/public/list_public_images.rb b/3rdparty/modules/aviator/feature/aviator/openstack/image/v1/public/list_public_images.rb
new file mode 100644 (file)
index 0000000..2164d73
--- /dev/null
@@ -0,0 +1,45 @@
+module Aviator
+
+  define_request :list_public_images, :inherit => [:openstack, :common, :v2, :public, :base] do
+
+    meta :service,        :image
+    meta :api_version,    :v1
+
+    link 'documentation', 'http://docs.openstack.org/api/openstack-image-service/1.1/content/requesting-a-list-of-public-vm-images.html'
+
+    param :name,             :required => false
+    param :container_format, :required => false
+    param :disk_format,      :required => false
+    param :status,           :required => false
+    param :size_min,         :required => false
+    param :size_max,         :required => false
+    param :sort_key,         :required => false
+    param :sort_dir,         :required => false
+
+
+    def headers
+      super
+    end
+
+    def http_method
+      :get
+    end
+
+    def url
+      uri = URI(base_url)
+      url = "#{ uri.scheme }://#{ uri.host }:#{ uri.port.to_s }/v1/images"
+
+      filters = []
+
+      optional_params.each do |param_name|
+        filters << "#{ param_name }=#{ params[param_name] }" if params[param_name]
+      end
+
+      url += "?#{ filters.join('&') }" unless filters.empty?
+
+      url
+    end
+
+  end
+
+end