summaryrefslogtreecommitdiff
path: root/app/validators
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzegorz@gitlab.com>2017-11-06 21:21:27 +0000
committerGrzegorz Bizon <grzegorz@gitlab.com>2017-11-06 21:21:27 +0000
commitc71cf908cd4f289248598d9ea1c144c7b65cbb94 (patch)
treea032365288f3a73c56bc75336f3c88a649ee30d3 /app/validators
parent4da03e9977ea3fa5bb422ab0f23f0a60406c7073 (diff)
parenta99ad59e655d66fda8af7f2b89aced79b8bc1060 (diff)
downloadgitlab-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.rb24
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