Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessio Caiazza <acaiazza@gitlab.com>2017-11-06 17:43:02 +0300
committerAlessio Caiazza <acaiazza@gitlab.com>2017-11-06 17:43:02 +0300
commit61501a07cb9c1fff5a30662b3e3815976f2777cb (patch)
treebdc3162b2b0e37bb8b5ca9043e1b5df50de5a004 /app/services
parent317c3cdd33c59c0fd9f3993cf1fb0e34b601bbcc (diff)
Add Clusters::Applications services tests
Diffstat (limited to 'app/services')
-rw-r--r--app/services/clusters/applications/check_installation_progress_service.rb11
-rw-r--r--app/services/clusters/applications/finalize_installation_service.rb8
-rw-r--r--app/services/clusters/applications/install_service.rb9
-rw-r--r--app/services/clusters/applications/schedule_installation_service.rb13
4 files changed, 10 insertions, 31 deletions
diff --git a/app/services/clusters/applications/check_installation_progress_service.rb b/app/services/clusters/applications/check_installation_progress_service.rb
index 81306a2ff5b..1bd5dae0584 100644
--- a/app/services/clusters/applications/check_installation_progress_service.rb
+++ b/app/services/clusters/applications/check_installation_progress_service.rb
@@ -6,7 +6,7 @@ module Clusters
case installation_phase
when Gitlab::Kubernetes::Pod::SUCCEEDED
- on_succeeded
+ finalize_installation
when Gitlab::Kubernetes::Pod::FAILED
on_failed
else
@@ -18,14 +18,6 @@ module Clusters
private
- def on_succeeded
- if app.make_installed
- finalize_installation
- else
- app.make_errored!("Failed to update app record; #{app.errors}")
- end
- end
-
def on_failed
app.make_errored!(installation_errors || 'Installation silently failed')
finalize_installation
@@ -34,6 +26,7 @@ module Clusters
def check_timeout
if Time.now.utc - app.updated_at.to_time.utc > ClusterWaitForAppInstallationWorker::TIMEOUT
app.make_errored!('Installation timeouted')
+ finalize_installation
else
ClusterWaitForAppInstallationWorker.perform_in(
ClusterWaitForAppInstallationWorker::INTERVAL, app.name, app.id)
diff --git a/app/services/clusters/applications/finalize_installation_service.rb b/app/services/clusters/applications/finalize_installation_service.rb
index 339d671c091..292c789b67b 100644
--- a/app/services/clusters/applications/finalize_installation_service.rb
+++ b/app/services/clusters/applications/finalize_installation_service.rb
@@ -4,13 +4,7 @@ module Clusters
def execute
helm_api.delete_installation_pod!(app)
- app.make_errored!('Installation aborted') if aborted?
- end
-
- private
-
- def aborted?
- app.installing? || app.scheduled?
+ app.make_installed! if app.installing?
end
end
end
diff --git a/app/services/clusters/applications/install_service.rb b/app/services/clusters/applications/install_service.rb
index 5ed0968a98a..4eba19a474e 100644
--- a/app/services/clusters/applications/install_service.rb
+++ b/app/services/clusters/applications/install_service.rb
@@ -5,14 +5,11 @@ module Clusters
return unless app.scheduled?
begin
+ app.make_installing!
helm_api.install(app)
- if app.make_installing
- ClusterWaitForAppInstallationWorker.perform_in(
- ClusterWaitForAppInstallationWorker::INTERVAL, app.name, app.id)
- else
- app.make_errored!("Failed to update app record; #{app.errors}")
- end
+ ClusterWaitForAppInstallationWorker.perform_in(
+ ClusterWaitForAppInstallationWorker::INTERVAL, app.name, app.id)
rescue KubeException => ke
app.make_errored!("Kubernetes error: #{ke.message}")
rescue StandardError
diff --git a/app/services/clusters/applications/schedule_installation_service.rb b/app/services/clusters/applications/schedule_installation_service.rb
index 17b3a09948d..eb8caa68ef7 100644
--- a/app/services/clusters/applications/schedule_installation_service.rb
+++ b/app/services/clusters/applications/schedule_installation_service.rb
@@ -2,15 +2,10 @@ module Clusters
module Applications
class ScheduleInstallationService < ::BaseService
def execute
- application = application_class.find_or_create_by!(cluster: cluster)
-
- application.make_scheduled!
- ClusterInstallAppWorker.perform_async(application.name, application.id)
- true
- rescue ActiveRecord::RecordInvalid
- false
- rescue StateMachines::InvalidTransition
- false
+ application_class.find_or_create_by!(cluster: cluster).try do |application|
+ application.make_scheduled!
+ ClusterInstallAppWorker.perform_async(application.name, application.id)
+ end
end
private