summaryrefslogtreecommitdiff
path: root/app/services/clusters
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzegorz@gitlab.com>2019-07-12 08:36:24 +0000
committerGrzegorz Bizon <grzegorz@gitlab.com>2019-07-12 08:36:24 +0000
commit1def071991dddf6a1500c84d9e53a0edd64d45a1 (patch)
tree1170896aa2f74d2298d9d3785bea45506cdedef3 /app/services/clusters
parent84054830318a4d4221cc05ca987240c197369fcf (diff)
parent7fb076f5d086d1194624ccb4c4246cb25f2dad16 (diff)
downloadgitlab-ce-1def071991dddf6a1500c84d9e53a0edd64d45a1.tar.gz
Merge branch '55623-group-cluster-apis' into 'master'
Resolve "API support for group-level clusters" Closes #55623 See merge request gitlab-org/gitlab-ce!30213
Diffstat (limited to 'app/services/clusters')
-rw-r--r--app/services/clusters/create_service.rb17
1 files changed, 10 insertions, 7 deletions
diff --git a/app/services/clusters/create_service.rb b/app/services/clusters/create_service.rb
index 886e484caaf..5fb5e15c32d 100644
--- a/app/services/clusters/create_service.rb
+++ b/app/services/clusters/create_service.rb
@@ -10,24 +10,27 @@ module Clusters
def execute(access_token: nil)
raise ArgumentError, 'Unknown clusterable provided' unless clusterable
- raise ArgumentError, _('Instance does not support multiple Kubernetes clusters') unless can_create_cluster?
cluster_params = params.merge(user: current_user).merge(clusterable_params)
cluster_params[:provider_gcp_attributes].try do |provider|
provider[:access_token] = access_token
end
- create_cluster(cluster_params).tap do |cluster|
- ClusterProvisionWorker.perform_async(cluster.id) if cluster.persisted?
+ cluster = Clusters::Cluster.new(cluster_params)
+
+ unless can_create_cluster?
+ cluster.errors.add(:base, _('Instance does not support multiple Kubernetes clusters'))
end
- end
- private
+ return cluster if cluster.errors.present?
- def create_cluster(cluster_params)
- Clusters::Cluster.create(cluster_params)
+ cluster.tap do |cluster|
+ cluster.save && ClusterProvisionWorker.perform_async(cluster.id)
+ end
end
+ private
+
def clusterable
@clusterable ||= params.delete(:clusterable)
end