[PATCH conductor] BZ 784564 - some running instances were not stopped when deleting a deployment

Tomas Sedovic tsedovic at redhat.com
Fri Feb 3 16:13:50 UTC 2012


On 02/01/2012 02:18 PM, jprovazn at redhat.com wrote:
> From: Jan Provaznik<jprovazn at redhat.com>
>
> ---
>   src/app/models/deployment.rb       |    2 +-
>   src/spec/models/deployment_spec.rb |   13 +++++++++++++
>   2 files changed, 14 insertions(+), 1 deletions(-)
>
> diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb
> index 68b5a57..535629b 100644
> --- a/src/app/models/deployment.rb
> +++ b/src/app/models/deployment.rb
> @@ -158,7 +158,7 @@ class Deployment<  ActiveRecord::Base
>
>         # stop all deployment's instances
>         instances.each do |instance|
> -        break unless instance.state == Instance::STATE_RUNNING
> +        next unless instance.state == Instance::STATE_RUNNING
>
>           @task = instance.queue_action(instance.owner, 'stop')
>           unless @task
> diff --git a/src/spec/models/deployment_spec.rb b/src/spec/models/deployment_spec.rb
> index 38b2b19..a62c298 100644
> --- a/src/spec/models/deployment_spec.rb
> +++ b/src/spec/models/deployment_spec.rb
> @@ -109,6 +109,19 @@ describe Deployment do
>         @deployment.should be_destroyable
>         expect { @deployment.destroy }.to change(Deployment, :count).by(-1)
>       end
> +
> +    it "should send stop request to all running instances before it's destroyed" do
> +      @deployment.save!
> +      inst1 = Factory.create :mock_running_instance, :deployment_id =>  @deployment.id
> +      inst2 = Factory.create :mock_running_instance, :deployment_id =>  @deployment.id
> +      inst2.state = Instance::STATE_STOPPED
> +      inst2.save!
> +      inst3 = Factory.create :mock_running_instance, :deployment_id =>  @deployment.id
> +      Taskomatic.stub!(:stop_instance).and_return(nil)
> +      @deployment.stop_instances_and_destroy!
> +      inst1.tasks.last.action.should == 'stop'
> +      inst3.tasks.last.action.should == 'stop'
> +    end
>     end
>
>     describe ".provider" do

ACK



More information about the aeolus-devel mailing list