diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-10-04 00:20:47 +0200 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-10-04 00:20:47 +0200 |
commit | c6d53250de7f439bc25740913d85ada6e3b2fed4 (patch) | |
tree | b93a8c9556851fda197f5a9bd7bfd6b540e2d44d /app/models/gcp | |
parent | c471430a13c79a82555ee171fecdf45b882a3c19 (diff) | |
download | gitlab-ce-c6d53250de7f439bc25740913d85ada6e3b2fed4.tar.gz |
Specify defaults, fix policies, fix db columns
Diffstat (limited to 'app/models/gcp')
-rw-r--r-- | app/models/gcp/cluster.rb | 52 |
1 files changed, 36 insertions, 16 deletions
diff --git a/app/models/gcp/cluster.rb b/app/models/gcp/cluster.rb index 543505c24c2..74644207afd 100644 --- a/app/models/gcp/cluster.rb +++ b/app/models/gcp/cluster.rb @@ -6,6 +6,10 @@ module Gcp belongs_to :user belongs_to :service + default_value_for :gcp_cluster_zone, 'us-central1-a' + default_value_for :gcp_cluster_size, 3 + default_value_for :gcp_machine_type, 'n1-standard-4' + attr_encrypted :password, mode: :per_attribute_iv, key: Gitlab::Application.secrets.db_key_base, @@ -28,6 +32,35 @@ module Gcp errored: 4 } + validates :gcp_project_id, + length: 1..63, + format: { + with: Gitlab::Regex.kubernetes_namespace_regex, + message: Gitlab::Regex.kubernetes_namespace_regex_message + } + + validates :gcp_cluster_name, + length: 1..63, + format: { + with: Gitlab::Regex.kubernetes_namespace_regex, + message: Gitlab::Regex.kubernetes_namespace_regex_message + } + + validates :gcp_cluster_zone, presence: true + validates :gcp_cluster_size, presence: true, + numericality: { only_integer: true, greater_than: 0 } + + validates :project_namespace, + allow_blank: true, + length: 1..63, + format: { + with: Gitlab::Regex.kubernetes_namespace_regex, + message: Gitlab::Regex.kubernetes_namespace_regex_message + } + + # if we do not do status transition we prevent change + validate :restrict_modification, on: :update, unless: :status_changed? + state_machine :status, initial: :scheduled do event :creating do transition any - [:creating] => :creating @@ -52,22 +85,9 @@ module Gcp end end - validates :gcp_project_id, presence: true - validates :gcp_cluster_zone, presence: true - validates :gcp_cluster_name, presence: true - validates :gcp_cluster_size, presence: true, - numericality: { only_integer: true, greater_than: 0 } - - validates :project_namespace, - allow_blank: true, - length: 1..63, - format: { - with: Gitlab::Regex.kubernetes_namespace_regex, - message: Gitlab::Regex.kubernetes_namespace_regex_message - } - - # if we do not do status transition we prevent change - validate :restrict_modification, on: :update, unless: :status_changed? + def project_namespace_placeholder + "#{project.path}-#{project.id}" + end def on_creation? scheduled? || creating? |