On 01/25/2012 11:24 AM, jprovazn(a)redhat.com wrote:
From: Jan Provaznik<jprovazn(a)redhat.com>
---
src/app/models/deployment.rb | 4 ++--
src/spec/models/deployment_spec.rb | 8 ++++++++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb
index d33e403..9c4b2e1 100644
--- a/src/app/models/deployment.rb
+++ b/src/app/models/deployment.rb
@@ -315,8 +315,8 @@ class Deployment< ActiveRecord::Base
end
def provider
- # I REALLY want to get this via a join, but no dice...
- instances.first.provider_account.provider rescue nil
+ inst = instances.joins(:provider_account => :provider).first
+ inst&& inst.provider_account&& inst.provider_account.provider
end
# we try to create an instance for each assembly and check
diff --git a/src/spec/models/deployment_spec.rb b/src/spec/models/deployment_spec.rb
index b477067..68e7952 100644
--- a/src/spec/models/deployment_spec.rb
+++ b/src/spec/models/deployment_spec.rb
@@ -111,6 +111,14 @@ describe Deployment do
end
end
+ describe ".provider" do
+ it "should return provider for a deployment where only some instances have set
provider account" do
+ @deployment.instances<< FactoryGirl.create(:mock_running_instance,
:provider_account => nil, :deployment => @deployment)
+ @deployment.instances<< FactoryGirl.create(:mock_running_instance,
:deployment => @deployment)
+ @deployment.provider.should_not be_nil
+ end
+ end
+
describe ".start_time" do
it "should return start_time once an instance has started" do
@deployment.save!
Fixed BZ id to 784183 & pushed