Consolidate how we allow user defined namespace
Use model method as single source of truth instead of splitting between presenter and Kubernetes model
This commit is contained in:
parent
a551758da2
commit
b4488cee97
|
@ -144,6 +144,10 @@ module Clusters
|
|||
)
|
||||
end
|
||||
|
||||
def allow_user_defined_namespace?
|
||||
project_type?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def restrict_modification
|
||||
|
|
|
@ -38,7 +38,7 @@ module Clusters
|
|||
|
||||
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)
|
||||
validates :api_url, url: true, presence: true
|
||||
|
@ -54,7 +54,7 @@ module Clusters
|
|||
delegate :project, to: :cluster, allow_nil: true
|
||||
delegate :enabled?, 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
|
||||
|
||||
alias_method :active?, :enabled?
|
||||
|
|
|
@ -8,10 +8,6 @@ module Clusters
|
|||
"https://console.cloud.google.com/kubernetes/clusters/details/#{provider.zone}/#{name}" if gcp?
|
||||
end
|
||||
|
||||
def allow_project_namespace?
|
||||
cluster.project_type?
|
||||
end
|
||||
|
||||
def can_toggle_cluster?
|
||||
can?(current_user, :update_cluster, cluster) && created?
|
||||
end
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
= s_('ClusterIntegration|Show')
|
||||
= 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
|
||||
= 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')
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
= 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'
|
||||
|
||||
- if @user_cluster.allow_project_namespace?
|
||||
- if @user_cluster.allow_user_defined_namespace?
|
||||
.form-group
|
||||
= 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')
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
%button.js-show-cluster-token.btn-blank{ type: 'button' }
|
||||
= s_('ClusterIntegration|Show')
|
||||
|
||||
- if @cluster.allow_project_namespace?
|
||||
- if @cluster.allow_user_defined_namespace?
|
||||
.form-group
|
||||
= 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')
|
||||
|
|
|
@ -343,4 +343,26 @@ describe Clusters::Cluster do
|
|||
it { is_expected.to eq(false) }
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue