diff options
Diffstat (limited to 'app/services/clusters/applications/check_installation_progress_service.rb')
-rw-r--r-- | app/services/clusters/applications/check_installation_progress_service.rb | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/app/services/clusters/applications/check_installation_progress_service.rb b/app/services/clusters/applications/check_installation_progress_service.rb deleted file mode 100644 index c592d608b89..00000000000 --- a/app/services/clusters/applications/check_installation_progress_service.rb +++ /dev/null @@ -1,71 +0,0 @@ -# frozen_string_literal: true - -module Clusters - module Applications - class CheckInstallationProgressService < BaseHelmService - def execute - return unless operation_in_progress? - - case installation_phase - when Gitlab::Kubernetes::Pod::SUCCEEDED - on_success - when Gitlab::Kubernetes::Pod::FAILED - on_failed - else - check_timeout - end - rescue Kubeclient::HttpError => e - log_error(e) - - app.make_errored!("Kubernetes error: #{e.error_code}") - end - - private - - def operation_in_progress? - app.installing? || app.updating? - end - - def on_success - app.make_installed! - ensure - remove_installation_pod - end - - def on_failed - app.make_errored!("Operation failed. Check pod logs for #{pod_name} for more details.") - end - - def check_timeout - if timeouted? - begin - app.make_errored!("Operation timed out. Check pod logs for #{pod_name} for more details.") - end - else - ClusterWaitForAppInstallationWorker.perform_in( - ClusterWaitForAppInstallationWorker::INTERVAL, app.name, app.id) - end - end - - def pod_name - install_command.pod_name - end - - def timeouted? - Time.now.utc - app.updated_at.to_time.utc > ClusterWaitForAppInstallationWorker::TIMEOUT - end - - def remove_installation_pod - helm_api.delete_pod!(pod_name) - end - - def installation_phase - helm_api.status(pod_name) - end - - def installation_errors - helm_api.log(pod_name) - end - end - end -end |