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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-09 00:08:08 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-09 00:08:08 +0300
commite0b84f4ba4b44c8ecf00be97843c40df2550b74c (patch)
tree7cecae4276358dd46d7fa15f84068f7b4c626089 /lib/gitlab/database_importers
parent73391dcc368ef846c2960c1d0ef5e64ca78e1bee (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/database_importers')
-rw-r--r--lib/gitlab/database_importers/self_monitoring/project/delete_service.rb60
1 files changed, 60 insertions, 0 deletions
diff --git a/lib/gitlab/database_importers/self_monitoring/project/delete_service.rb b/lib/gitlab/database_importers/self_monitoring/project/delete_service.rb
new file mode 100644
index 00000000000..bce0819b700
--- /dev/null
+++ b/lib/gitlab/database_importers/self_monitoring/project/delete_service.rb
@@ -0,0 +1,60 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module DatabaseImporters
+ module SelfMonitoring
+ module Project
+ class DeleteService < ::BaseService
+ include Stepable
+ include SelfMonitoring::Helpers
+
+ steps :validate_self_monitoring_project_exists,
+ :destroy_project_owner,
+ :delete_project_id
+
+ def initialize
+ super(nil)
+ end
+
+ def execute
+ execute_steps
+ end
+
+ private
+
+ def validate_self_monitoring_project_exists(result)
+ unless project_created? || self_monitoring_project_id.present?
+ return error(_('Self monitoring project does not exist'))
+ end
+
+ success(result)
+ end
+
+ def destroy_project_owner(result)
+ return success(result) unless project_created?
+
+ if self_monitoring_project.owner.destroy
+ success(result)
+ else
+ log_error(self_monitoring_project.errors.full_messages)
+ error(_('Error deleting project. Check logs for error details.'))
+ end
+ end
+
+ def delete_project_id(result)
+ update_result = application_settings.update(
+ instance_administration_project_id: nil
+ )
+
+ if update_result
+ success(result)
+ else
+ log_error("Could not delete self monitoring project ID, errors: %{errors}" % { errors: application_settings.errors.full_messages })
+ error(_('Could not delete project ID'))
+ end
+ end
+ end
+ end
+ end
+ end
+end