From e662dbddcdfac339ed271bf5599504863d105586 Mon Sep 17 00:00:00 2001 From: Thomas Kadauke Date: Wed, 29 May 2013 18:08:41 +0200 Subject: [PATCH] Support filters in images collection --- lib/fog/openstack/models/compute/images.rb | 12 ++++++++++-- .../openstack/requests/compute/list_images_detail.rb | 5 +++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/fog/openstack/models/compute/images.rb b/lib/fog/openstack/models/compute/images.rb index e560ba55f..5425c8fe3 100644 --- a/lib/fog/openstack/models/compute/images.rb +++ b/lib/fog/openstack/models/compute/images.rb @@ -7,12 +7,20 @@ module Fog class Images < Fog::Collection + attribute :filters + model Fog::Compute::OpenStack::Image attribute :server - def all - data = service.list_images_detail.body['images'] + def initialize(attributes) + self.filters ||= {} + super + end + + def all(filters = filters) + self.filters = filters + data = service.list_images_detail(filters).body['images'] images = load(data) if server self.replace(self.select {|image| image.server_id == server.id}) diff --git a/lib/fog/openstack/requests/compute/list_images_detail.rb b/lib/fog/openstack/requests/compute/list_images_detail.rb index 86c840233..b7ea6ba03 100644 --- a/lib/fog/openstack/requests/compute/list_images_detail.rb +++ b/lib/fog/openstack/requests/compute/list_images_detail.rb @@ -3,11 +3,12 @@ module Fog class OpenStack class Real - def list_images_detail + def list_images_detail(filters = {}) request( :expects => [200, 203], :method => 'GET', - :path => 'images/detail.json' + :path => 'images/detail.json', + :query => filters ) end