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:
Diffstat (limited to 'app/services/clusters/management/create_project_service.rb')
-rw-r--r--app/services/clusters/management/create_project_service.rb84
1 files changed, 0 insertions, 84 deletions
diff --git a/app/services/clusters/management/create_project_service.rb b/app/services/clusters/management/create_project_service.rb
deleted file mode 100644
index 5a0176edd12..00000000000
--- a/app/services/clusters/management/create_project_service.rb
+++ /dev/null
@@ -1,84 +0,0 @@
-# frozen_string_literal: true
-
-module Clusters
- module Management
- class CreateProjectService
- CreateError = Class.new(StandardError)
-
- attr_reader :cluster, :current_user
-
- def initialize(cluster, current_user:)
- @cluster = cluster
- @current_user = current_user
- end
-
- def execute
- return unless management_project_required?
-
- project = create_management_project!
- update_cluster!(project)
- end
-
- private
-
- def management_project_required?
- Feature.enabled?(:auto_create_cluster_management_project) && cluster.management_project.nil?
- end
-
- def project_params
- {
- name: project_name,
- description: project_description,
- namespace_id: namespace.id,
- visibility_level: Gitlab::VisibilityLevel::PRIVATE
- }
- end
-
- def project_name
- "#{cluster.name} Cluster Management"
- end
-
- def project_description
- "This project is automatically generated and will be used to manage your Kubernetes cluster. [More information](#{docs_path})"
- end
-
- def docs_path
- Rails.application.routes.url_helpers.help_page_path('user/clusters/management_project')
- end
-
- def create_management_project!
- ::Projects::CreateService.new(current_user, project_params).execute.tap do |project|
- errors = project.errors.full_messages
-
- if errors.any?
- raise CreateError.new("Failed to create project: #{errors}")
- end
- end
- end
-
- def update_cluster!(project)
- unless cluster.update(management_project: project)
- raise CreateError.new("Failed to update cluster: #{cluster.errors.full_messages}")
- end
- end
-
- def namespace
- case cluster.cluster_type
- when 'project_type'
- cluster.project.namespace
- when 'group_type'
- cluster.group
- when 'instance_type'
- instance_administrators_group
- else
- raise NotImplementedError
- end
- end
-
- def instance_administrators_group
- Gitlab::CurrentSettings.instance_administrators_group ||
- raise(CreateError.new('Instance administrators group not found'))
- end
- end
- end
-end