diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2019-07-12 08:36:24 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2019-07-12 08:36:24 +0000 |
commit | 1def071991dddf6a1500c84d9e53a0edd64d45a1 (patch) | |
tree | 1170896aa2f74d2298d9d3785bea45506cdedef3 /app/services/clusters | |
parent | 84054830318a4d4221cc05ca987240c197369fcf (diff) | |
parent | 7fb076f5d086d1194624ccb4c4246cb25f2dad16 (diff) | |
download | gitlab-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.rb | 17 |
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 |