diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2017-11-06 21:21:27 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2017-11-06 21:21:27 +0000 |
commit | c71cf908cd4f289248598d9ea1c144c7b65cbb94 (patch) | |
tree | a032365288f3a73c56bc75336f3c88a649ee30d3 /app/validators | |
parent | 4da03e9977ea3fa5bb422ab0f23f0a60406c7073 (diff) | |
parent | a99ad59e655d66fda8af7f2b89aced79b8bc1060 (diff) | |
download | gitlab-ce-c71cf908cd4f289248598d9ea1c144c7b65cbb94.tar.gz |
Merge branch 'refactor-clusters' into 'master'
Refactor Clusters to be consisted from GcpProvider and KubernetesPlatform
See merge request gitlab-org/gitlab-ce!14879
Diffstat (limited to 'app/validators')
-rw-r--r-- | app/validators/cluster_name_validator.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/app/validators/cluster_name_validator.rb b/app/validators/cluster_name_validator.rb new file mode 100644 index 00000000000..13ec342f399 --- /dev/null +++ b/app/validators/cluster_name_validator.rb @@ -0,0 +1,24 @@ +# ClusterNameValidator +# +# Custom validator for ClusterName. +class ClusterNameValidator < ActiveModel::EachValidator + def validate_each(record, attribute, value) + if record.user? + unless value.present? + record.errors.add(attribute, " has to be present") + end + elsif record.gcp? + if record.persisted? && record.name_changed? + record.errors.add(attribute, " can not be changed because it's synchronized with provider") + end + + unless value.length >= 1 && value.length <= 63 + record.errors.add(attribute, " is invalid syntax") + end + + unless value =~ Gitlab::Regex.kubernetes_namespace_regex + record.errors.add(attribute, Gitlab::Regex.kubernetes_namespace_regex_message) + end + end + end +end |