summaryrefslogtreecommitdiff
path: root/lib/gitlab/database_importers/self_monitoring
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-16 00:08:32 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-16 00:08:32 +0000
commitb0f27742e78a4aa4208c271536b6b9d84c53b49e (patch)
treebe4664298b0a70efd233e23751aab518ad3e1f4e /lib/gitlab/database_importers/self_monitoring
parent600ca978129e3ccab758f57d60786cefe66ad775 (diff)
downloadgitlab-ce-b0f27742e78a4aa4208c271536b6b9d84c53b49e.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/database_importers/self_monitoring')
-rw-r--r--lib/gitlab/database_importers/self_monitoring/project/create_service.rb66
1 files changed, 8 insertions, 58 deletions
diff --git a/lib/gitlab/database_importers/self_monitoring/project/create_service.rb b/lib/gitlab/database_importers/self_monitoring/project/create_service.rb
index 92a2e504a11..d08afeef3b6 100644
--- a/lib/gitlab/database_importers/self_monitoring/project/create_service.rb
+++ b/lib/gitlab/database_importers/self_monitoring/project/create_service.rb
@@ -12,11 +12,9 @@ module Gitlab
PROJECT_NAME = 'GitLab Instance Administration'
steps :validate_application_settings,
- :validate_admins,
:create_group,
:create_project,
:save_project_id,
- :add_group_members,
:add_prometheus_manual_configuration,
:track_event
@@ -37,28 +35,14 @@ module Gitlab
error(_('No application_settings found'))
end
- def validate_admins(result)
- unless instance_admins.any?
- log_error('No active admin user found')
- return error(_('No active admin user found'))
- end
-
- success(result)
- end
-
def create_group(result)
- if project_created?
- log_info(_('Instance administrators group already exists'))
- result[:group] = self_monitoring_project.owner
- return success(result)
- end
-
- result[:group] = ::Groups::CreateService.new(group_owner, create_group_params).execute
+ create_group_response =
+ Gitlab::DatabaseImporters::InstanceAdministrators::CreateGroup.new.execute
- if result[:group].persisted?
- success(result)
+ if create_group_response[:status] == :success
+ success(result.merge(create_group_response))
else
- error(_('Could not create group'))
+ error(create_group_response[:message])
end
end
@@ -69,7 +53,9 @@ module Gitlab
return success(result)
end
- result[:project] = ::Projects::CreateService.new(group_owner, create_project_params(result[:group])).execute
+ owner = result[:group].owners.first
+
+ result[:project] = ::Projects::CreateService.new(owner, create_project_params(result[:group])).execute
if result[:project].persisted?
success(result)
@@ -94,19 +80,6 @@ module Gitlab
end
end
- def add_group_members(result)
- group = result[:group]
- members = group.add_users(members_to_add(group), Gitlab::Access::MAINTAINER)
- errors = members.flat_map { |member| member.errors.full_messages }
-
- if errors.any?
- log_error('Could not add admins as members to self-monitoring project. Errors: %{errors}' % { errors: errors })
- error(_('Could not add admins as members'))
- else
- success(result)
- end
- end
-
def add_prometheus_manual_configuration(result)
return success(result) unless prometheus_enabled?
return success(result) unless prometheus_listen_address.present?
@@ -140,29 +113,6 @@ module Gitlab
::Gitlab::Prometheus::Internal.listen_address
end
- def instance_admins
- @instance_admins ||= User.admins.active
- end
-
- def group_owner
- instance_admins.first
- end
-
- def members_to_add(group)
- # Exclude admins who are already members of group because
- # `group.add_users(users)` returns an error if the users parameter contains
- # users who are already members of the group.
- instance_admins - group.members.collect(&:user)
- end
-
- def create_group_params
- {
- name: 'GitLab Instance Administrators',
- path: "gitlab-instance-administrators-#{SecureRandom.hex(4)}",
- visibility_level: VISIBILITY_LEVEL
- }
- end
-
def docs_path
Rails.application.routes.url_helpers.help_page_path(
'administration/monitoring/gitlab_instance_administration_project/index'