Commit b4488cee authored by Thong Kuah's avatar Thong Kuah

Consolidate how we allow user defined namespace

Use model method as single source of truth instead of splitting between
presenter and Kubernetes model
parent a551758d
...@@ -144,6 +144,10 @@ module Clusters ...@@ -144,6 +144,10 @@ module Clusters
) )
end end
def allow_user_defined_namespace?
project_type?
end
private private
def restrict_modification def restrict_modification
......
...@@ -38,7 +38,7 @@ module Clusters ...@@ -38,7 +38,7 @@ module Clusters
validates :namespace, exclusion: { in: RESERVED_NAMESPACES } validates :namespace, exclusion: { in: RESERVED_NAMESPACES }
validate :no_namespace, unless: :project_type? validate :no_namespace, unless: :allow_user_defined_namespace?
# We expect to be `active?` only when enabled and cluster is created (the api_url is assigned) # We expect to be `active?` only when enabled and cluster is created (the api_url is assigned)
validates :api_url, url: true, presence: true validates :api_url, url: true, presence: true
...@@ -54,7 +54,7 @@ module Clusters ...@@ -54,7 +54,7 @@ module Clusters
delegate :project, to: :cluster, allow_nil: true delegate :project, to: :cluster, allow_nil: true
delegate :enabled?, to: :cluster, allow_nil: true delegate :enabled?, to: :cluster, allow_nil: true
delegate :managed?, to: :cluster, allow_nil: true delegate :managed?, to: :cluster, allow_nil: true
delegate :project_type?, to: :cluster, allow_nil: true delegate :allow_user_defined_namespace?, to: :cluster, allow_nil: true
delegate :kubernetes_namespace, to: :cluster delegate :kubernetes_namespace, to: :cluster
alias_method :active?, :enabled? alias_method :active?, :enabled?
......
...@@ -8,10 +8,6 @@ module Clusters ...@@ -8,10 +8,6 @@ module Clusters
"https://console.cloud.google.com/kubernetes/clusters/details/#{provider.zone}/#{name}" if gcp? "https://console.cloud.google.com/kubernetes/clusters/details/#{provider.zone}/#{name}" if gcp?
end end
def allow_project_namespace?
cluster.project_type?
end
def can_toggle_cluster? def can_toggle_cluster?
can?(current_user, :update_cluster, cluster) && created? can?(current_user, :update_cluster, cluster) && created?
end end
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
= s_('ClusterIntegration|Show') = s_('ClusterIntegration|Show')
= clipboard_button(text: @cluster.platform_kubernetes.token, title: s_('ClusterIntegration|Copy Token'), class: 'btn-default') = clipboard_button(text: @cluster.platform_kubernetes.token, title: s_('ClusterIntegration|Copy Token'), class: 'btn-default')
- if @cluster.allow_project_namespace? - if @cluster.allow_user_defined_namespace?
.form-group .form-group
= platform_kubernetes_field.label :namespace, s_('ClusterIntegration|Project namespace (optional, unique)') = platform_kubernetes_field.label :namespace, s_('ClusterIntegration|Project namespace (optional, unique)')
= platform_kubernetes_field.text_field :namespace, class: 'form-control', placeholder: s_('ClusterIntegration|Project namespace') = platform_kubernetes_field.text_field :namespace, class: 'form-control', placeholder: s_('ClusterIntegration|Project namespace')
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
= platform_kubernetes_field.label :token, s_('ClusterIntegration|Token'), class: 'label-bold' = platform_kubernetes_field.label :token, s_('ClusterIntegration|Token'), class: 'label-bold'
= platform_kubernetes_field.text_field :token, class: 'form-control', placeholder: s_('ClusterIntegration|Service token'), autocomplete: 'off' = platform_kubernetes_field.text_field :token, class: 'form-control', placeholder: s_('ClusterIntegration|Service token'), autocomplete: 'off'
- if @user_cluster.allow_project_namespace? - if @user_cluster.allow_user_defined_namespace?
.form-group .form-group
= platform_kubernetes_field.label :namespace, s_('ClusterIntegration|Project namespace (optional, unique)'), class: 'label-bold' = platform_kubernetes_field.label :namespace, s_('ClusterIntegration|Project namespace (optional, unique)'), class: 'label-bold'
= platform_kubernetes_field.text_field :namespace, class: 'form-control', placeholder: s_('ClusterIntegration|Project namespace') = platform_kubernetes_field.text_field :namespace, class: 'form-control', placeholder: s_('ClusterIntegration|Project namespace')
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
%button.js-show-cluster-token.btn-blank{ type: 'button' } %button.js-show-cluster-token.btn-blank{ type: 'button' }
= s_('ClusterIntegration|Show') = s_('ClusterIntegration|Show')
- if @cluster.allow_project_namespace? - if @cluster.allow_user_defined_namespace?
.form-group .form-group
= platform_kubernetes_field.label :namespace, s_('ClusterIntegration|Project namespace (optional, unique)'), class: 'label-bold' = platform_kubernetes_field.label :namespace, s_('ClusterIntegration|Project namespace (optional, unique)'), class: 'label-bold'
= platform_kubernetes_field.text_field :namespace, class: 'form-control', placeholder: s_('ClusterIntegration|Project namespace') = platform_kubernetes_field.text_field :namespace, class: 'form-control', placeholder: s_('ClusterIntegration|Project namespace')
......
...@@ -343,4 +343,26 @@ describe Clusters::Cluster do ...@@ -343,4 +343,26 @@ describe Clusters::Cluster do
it { is_expected.to eq(false) } it { is_expected.to eq(false) }
end end
end end
describe '#allow_user_defined_namespace?' do
let(:cluster) { create(:cluster, :provided_by_gcp) }
subject { cluster.allow_user_defined_namespace? }
context 'project type cluster' do
it { is_expected.to be_truthy }
end
context 'group type cluster' do
let(:cluster) { create(:cluster, :provided_by_gcp, :group) }
it { is_expected.to be_falsey }
end
context 'instance type cluster' do
let(:cluster) { create(:cluster, :provided_by_gcp, :instance) }
it { is_expected.to be_falsey }
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment