diff options
author | Thong Kuah <tkuah@gitlab.com> | 2019-04-08 13:26:05 +1200 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2019-04-29 22:55:11 -0700 |
commit | 43be4d54f3940633ad76e746a9a999c4a9a65870 (patch) | |
tree | d228ccff7188ad16d20a16802eb71acac7d85d75 /app/models/clusters/concerns/application_status.rb | |
parent | a2543ee29a97f61f960994d473291c7224c50c3d (diff) | |
download | gitlab-ce-43be4d54f3940633ad76e746a9a999c4a9a65870.tar.gz |
Define state transitions for uninstalling apps
Added :uninstalled state as wasn't sure if we should be destroying the
cluster apps
Diffstat (limited to 'app/models/clusters/concerns/application_status.rb')
-rw-r--r-- | app/models/clusters/concerns/application_status.rb | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/app/models/clusters/concerns/application_status.rb b/app/models/clusters/concerns/application_status.rb index 1273ed83abe..16679a21e64 100644 --- a/app/models/clusters/concerns/application_status.rb +++ b/app/models/clusters/concerns/application_status.rb @@ -25,9 +25,12 @@ module Clusters state :updating, value: 4 state :updated, value: 5 state :update_errored, value: 6 + state :uninstalling, value: 7 + state :uninstall_errored, value: 8 + state :uninstalled, value: 9 event :make_scheduled do - transition [:installable, :errored, :installed, :updated, :update_errored] => :scheduled + transition [:installable, :errored, :installed, :updated, :update_errored, :uninstall_errored] => :scheduled end event :make_installing do @@ -40,8 +43,9 @@ module Clusters end event :make_errored do - transition any - [:updating] => :errored + transition any - [:updating, :uninstalling] => :errored transition [:updating] => :update_errored + transition [:uninstalling] => :uninstall_errored end event :make_updating do @@ -52,6 +56,14 @@ module Clusters transition any => :update_errored end + event :make_uninstalling do + transition [:scheduled] => :uninstalling + end + + event :make_uninstalled do + transition [:uninstalling] => :uninstalled + end + before_transition any => [:scheduled] do |app_status, _| app_status.status_reason = nil end @@ -65,7 +77,7 @@ module Clusters app_status.status_reason = nil end - before_transition any => [:update_errored] do |app_status, transition| + before_transition any => [:update_errored, :uninstall_errored] do |app_status, transition| status_reason = transition.args.first app_status.status_reason = status_reason if status_reason end |