From a440f3d6b9cc1066ed9ff6f4723d181aecb7c5db Mon Sep 17 00:00:00 2001 From: Mike Pountney Date: Wed, 18 Jun 2014 00:52:30 +0100 Subject: [PATCH] find_by_query support for vdcs collection --- lib/fog/vcloud_director/models/compute/vdcs.rb | 7 +++++++ tests/vcloud_director/models/compute/vdcs_tests.rb | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/fog/vcloud_director/models/compute/vdcs.rb b/lib/fog/vcloud_director/models/compute/vdcs.rb index 027f7df9ed..a4b5606194 100644 --- a/lib/fog/vcloud_director/models/compute/vdcs.rb +++ b/lib/fog/vcloud_director/models/compute/vdcs.rb @@ -5,10 +5,17 @@ module Fog module Compute class VcloudDirector class Vdcs < Collection + + include Fog::VcloudDirector::Query + model Fog::Compute::VcloudDirector::Vdc attribute :organization + def query_type + "orgVdc" + end + private def get_by_id(item_id) diff --git a/tests/vcloud_director/models/compute/vdcs_tests.rb b/tests/vcloud_director/models/compute/vdcs_tests.rb index df7e9728a5..077d27d9b0 100644 --- a/tests/vcloud_director/models/compute/vdcs_tests.rb +++ b/tests/vcloud_director/models/compute/vdcs_tests.rb @@ -37,4 +37,18 @@ tests("#get_by_name").returns(vdc.name) { vdcs.get_by_name(vdc.name).name } tests("#get").returns(vdc.id) { vdcs.get(vdc.id).id } end + + pending if Fog.mocking? + + # We should also be able to find this same vdc via Query API + tests("Compute::VcloudDirector | vdcs", ['find_by_query']) do + tests('we can retrieve :name without lazy loading').returns(vdc.name) do + query_vdc = vdcs.find_by_query(:filter => "name==#{vdc.name}").first + query_vdc.attributes[:name] + end + tests('by name').returns(vdc.name) do + query_vdc = vdcs.find_by_query(:filter => "name==#{vdc.name}").first + query_vdc.name + end + end end