summaryrefslogtreecommitdiff
path: root/app/models/clusters
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2017-11-07 13:53:35 +0100
committerKamil Trzcinski <ayufan@ayufan.eu>2017-11-07 13:53:35 +0100
commita906752d7f585c3122f47404e3f80f098e5bf223 (patch)
tree05f2ad02b8b4c55cb6d660d54476feacfcfd41d0 /app/models/clusters
parentfd9be1dd1f077a33e5ab15e8273fb726cbbc6fcc (diff)
parent67e12219bf6257568f91c1a9c883e4821337c80d (diff)
downloadgitlab-ce-a906752d7f585c3122f47404e3f80f098e5bf223.tar.gz
Merge branch '38464-k8s-apps' into add-ingress-to-cluster-applications
Diffstat (limited to 'app/models/clusters')
-rw-r--r--app/models/clusters/applications/helm.rb10
-rw-r--r--app/models/clusters/concerns/application_status.rb16
2 files changed, 14 insertions, 12 deletions
diff --git a/app/models/clusters/applications/helm.rb b/app/models/clusters/applications/helm.rb
index c203beb4915..d60bb7dcd02 100644
--- a/app/models/clusters/applications/helm.rb
+++ b/app/models/clusters/applications/helm.rb
@@ -11,14 +11,16 @@ module Clusters
validates :cluster, presence: true
- after_initialize :set_initial_status
-
def self.application_name
self.to_s.demodulize.underscore
end
- def set_initial_status
- self.status = 0 unless cluster&.platform_kubernetes_active?
+ def initial_status
+ if cluster&.platform_kubernetes_active?
+ :installable
+ else
+ :not_installable
+ end
end
def name
diff --git a/app/models/clusters/concerns/application_status.rb b/app/models/clusters/concerns/application_status.rb
index 40140cb71cb..3e15da7fc32 100644
--- a/app/models/clusters/concerns/application_status.rb
+++ b/app/models/clusters/concerns/application_status.rb
@@ -4,7 +4,7 @@ module Clusters
extend ActiveSupport::Concern
included do
- state_machine :status, initial: :installable do
+ state_machine :status, initial: ->(application) { application.initial_status } do
state :not_installable, value: -2
state :errored, value: -1
state :installable, value: 0
@@ -12,20 +12,20 @@ module Clusters
state :installing, value: 2
state :installed, value: 3
+ event :make_scheduled do
+ transition %i(installable errored) => :scheduled
+ end
+
event :make_installing do
- transition any - [:installing] => :installing
+ transition %i(scheduled) => :installing
end
event :make_installed do
- transition any - [:installed] => :installed
+ transition %i(installing) => :installed
end
event :make_errored do
- transition any - [:errored] => :errored
- end
-
- event :make_scheduled do
- transition %i(installable errored) => :scheduled
+ transition any => :errored
end
before_transition any => [:scheduled] do |app_status, _|