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:
authorDennis Tang <dtang@gitlab.com>2018-06-06 06:04:40 +0300
committerDennis Tang <dtang@gitlab.com>2018-06-06 06:04:40 +0300
commitedb89f555b25aa4d4aad7a3bdf5a0bd75bd076fc (patch)
treeb186f1b139edc5fa71d7bd3c9469761380fa4c41 /app/controllers/projects/clusters
parent151b6b2b2b60debccdf09eda5dbe9be31cc395f6 (diff)
split into gcp and user controllers again
Diffstat (limited to 'app/controllers/projects/clusters')
-rw-r--r--app/controllers/projects/clusters/gcp_controller.rb41
-rw-r--r--app/controllers/projects/clusters/user_controller.rb42
2 files changed, 83 insertions, 0 deletions
diff --git a/app/controllers/projects/clusters/gcp_controller.rb b/app/controllers/projects/clusters/gcp_controller.rb
new file mode 100644
index 00000000000..ac9a906fe47
--- /dev/null
+++ b/app/controllers/projects/clusters/gcp_controller.rb
@@ -0,0 +1,41 @@
+class Projects::Clusters::GcpController < Projects::ApplicationController
+ include ClustersHelper
+ before_action :authorize_read_cluster!
+ before_action :authorize_create_cluster!, only: [:create]
+ helper_method :gcp_authorize_url
+ helper_method :token_in_session
+ helper_method :valid_gcp_token
+
+ def create
+ @cluster = ::Clusters::CreateService
+ .new(project, current_user, create_params)
+ .execute(token_in_session)
+
+ if @cluster.persisted?
+ redirect_to project_cluster_path(project, @cluster)
+ else
+ @gcp_cluster = @cluster
+ user_cluster
+
+ render 'projects/clusters/new', locals: { active_tab: 'gcp' }
+ end
+ end
+
+ private
+
+ def create_params
+ params.require(:cluster).permit(
+ :enabled,
+ :name,
+ :environment_scope,
+ provider_gcp_attributes: [
+ :gcp_project_id,
+ :zone,
+ :num_nodes,
+ :machine_type
+ ]).merge(
+ provider_type: :gcp,
+ platform_type: :kubernetes
+ )
+ end
+end
diff --git a/app/controllers/projects/clusters/user_controller.rb b/app/controllers/projects/clusters/user_controller.rb
new file mode 100644
index 00000000000..9da6a60e6b3
--- /dev/null
+++ b/app/controllers/projects/clusters/user_controller.rb
@@ -0,0 +1,42 @@
+class Projects::Clusters::UserController < Projects::ApplicationController
+ include ClustersHelper
+ before_action :authorize_read_cluster!
+ before_action :authorize_create_cluster!, only: [:create]
+ helper_method :gcp_authorize_url
+ helper_method :token_in_session
+ helper_method :valid_gcp_token
+
+ def create
+ @cluster = ::Clusters::CreateService
+ .new(project, current_user, create_params)
+ .execute
+
+ if @cluster.persisted?
+ redirect_to project_cluster_path(project, @cluster)
+ else
+ @user_cluster = @cluster
+ gcp_cluster
+
+ render 'projects/clusters/new', locals: { active_tab: 'user' }
+ end
+ end
+
+ private
+
+ def create_params
+ params.require(:cluster).permit(
+ :enabled,
+ :name,
+ :environment_scope,
+ platform_kubernetes_attributes: [
+ :namespace,
+ :api_url,
+ :token,
+ :ca_cert
+ ]).merge(
+ provider_type: :user,
+ platform_type: :kubernetes
+ )
+ end
+end
+