Merge branch '8784-dir-listings'
[arvados.git] / services / api / db / migrate / 20140602143352_remove_active_and_success_from_pipeline_instances.rb
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 class RemoveActiveAndSuccessFromPipelineInstances < ActiveRecord::Migration
6   include CurrentApiClient
7
8   def up
9     if column_exists?(:pipeline_instances, :active)
10       remove_column :pipeline_instances, :active
11     end
12
13     if column_exists?(:pipeline_instances, :success)
14       remove_column :pipeline_instances, :success
15     end
16   end
17
18   def down
19     if !column_exists?(:pipeline_instances, :success)
20       add_column :pipeline_instances, :success, :boolean, :null => true
21     end
22     if !column_exists?(:pipeline_instances, :active)
23       add_column :pipeline_instances, :active, :boolean, :default => false
24     end
25
26     act_as_system_user do
27       PipelineInstance.all.each do |pi|
28         case pi.state
29         when PipelineInstance::New, PipelineInstance::Ready, PipelineInstance::Paused, PipelineInstance::RunningOnClient
30           pi.active = nil
31           pi.success = nil
32         when PipelineInstance::RunningOnServer
33           pi.active = true
34           pi.success = nil
35         when PipelineInstance::Failed
36           pi.active = false
37           pi.success = false
38         when PipelineInstance::Complete
39           pi.active = false
40           pi.success = true
41         end
42         pi.save!
43       end
44     end
45   end
46 end