diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-16 00:08:32 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-16 00:08:32 +0000 |
commit | b0f27742e78a4aa4208c271536b6b9d84c53b49e (patch) | |
tree | be4664298b0a70efd233e23751aab518ad3e1f4e /lib/gitlab/database_importers/self_monitoring | |
parent | 600ca978129e3ccab758f57d60786cefe66ad775 (diff) | |
download | gitlab-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.rb | 66 |
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' |