diff --git a/lib/fog/openstack/models/network/networks.rb b/lib/fog/openstack/models/network/networks.rb index 1802ea13b..11979963f 100644 --- a/lib/fog/openstack/models/network/networks.rb +++ b/lib/fog/openstack/models/network/networks.rb @@ -5,10 +5,19 @@ module Fog module Network class OpenStack class Networks < Fog::Collection + + attribute :filters + model Fog::Network::OpenStack::Network - def all - load(connection.list_networks.body['networks']) + def initialize(attributes) + self.filters ||= {} + super + end + + def all(filters = filters) + self.filters = filters + load(connection.list_networks(filters).body['networks']) end def get(network_id) diff --git a/lib/fog/openstack/models/network/ports.rb b/lib/fog/openstack/models/network/ports.rb index dcdf36f32..6adc7f154 100644 --- a/lib/fog/openstack/models/network/ports.rb +++ b/lib/fog/openstack/models/network/ports.rb @@ -5,10 +5,19 @@ module Fog module Network class OpenStack class Ports < Fog::Collection + + attribute :filters + model Fog::Network::OpenStack::Port - def all - load(connection.list_ports.body['ports']) + def initialize(attributes) + self.filters ||= {} + super + end + + def all(filters = filters) + self.filters = filters + load(connection.list_ports(filters).body['ports']) end def get(port_id) diff --git a/lib/fog/openstack/models/network/subnets.rb b/lib/fog/openstack/models/network/subnets.rb index 8597bb946..fdca9a15f 100644 --- a/lib/fog/openstack/models/network/subnets.rb +++ b/lib/fog/openstack/models/network/subnets.rb @@ -5,10 +5,19 @@ module Fog module Network class OpenStack class Subnets < Fog::Collection + + attribute :filters + model Fog::Network::OpenStack::Subnet - def all - load(connection.list_subnets.body['subnets']) + def initialize(attributes) + self.filters ||= {} + super + end + + def all(filters = filters) + self.filters = filters + load(connection.list_subnets(filters).body['subnets']) end def get(subnet_id) diff --git a/lib/fog/openstack/requests/network/list_networks.rb b/lib/fog/openstack/requests/network/list_networks.rb index fff3b36a4..bb8df2fba 100644 --- a/lib/fog/openstack/requests/network/list_networks.rb +++ b/lib/fog/openstack/requests/network/list_networks.rb @@ -3,17 +3,18 @@ module Fog class OpenStack class Real - def list_networks + def list_networks(filters = {}) request( :expects => 200, - :method => 'GET', - :path => 'networks' + :method => 'GET', + :path => 'networks', + :query => filters ) end end class Mock - def list_networks + def list_networks(filters = {}) Excon::Response.new( :body => { 'networks' => self.data[:networks].values }, :status => 200 diff --git a/lib/fog/openstack/requests/network/list_ports.rb b/lib/fog/openstack/requests/network/list_ports.rb index dbb8eb71b..7064356c9 100644 --- a/lib/fog/openstack/requests/network/list_ports.rb +++ b/lib/fog/openstack/requests/network/list_ports.rb @@ -3,17 +3,18 @@ module Fog class OpenStack class Real - def list_ports + def list_ports(filters = {}) request( :expects => 200, - :method => 'GET', - :path => 'ports' + :method => 'GET', + :path => 'ports', + :query => filters ) end end class Mock - def list_ports + def list_ports(filters = {}) Excon::Response.new( :body => { 'ports' => self.data[:ports].values }, :status => 200 diff --git a/lib/fog/openstack/requests/network/list_subnets.rb b/lib/fog/openstack/requests/network/list_subnets.rb index d5a5a5b2e..6abd9f2a5 100644 --- a/lib/fog/openstack/requests/network/list_subnets.rb +++ b/lib/fog/openstack/requests/network/list_subnets.rb @@ -3,17 +3,18 @@ module Fog class OpenStack class Real - def list_subnets + def list_subnets(filters = {}) request( :expects => 200, - :method => 'GET', - :path => 'subnets' + :method => 'GET', + :path => 'subnets', + :query => filters ) end end class Mock - def list_subnets + def list_subnets(filters = {}) Excon::Response.new( :body => { 'subnets' => self.data[:subnets].values }, :status => 200