summaryrefslogtreecommitdiff
path: root/app/models/gcp
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2017-10-04 00:20:47 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2017-10-04 00:20:47 +0200
commitc6d53250de7f439bc25740913d85ada6e3b2fed4 (patch)
treeb93a8c9556851fda197f5a9bd7bfd6b540e2d44d /app/models/gcp
parentc471430a13c79a82555ee171fecdf45b882a3c19 (diff)
downloadgitlab-ce-c6d53250de7f439bc25740913d85ada6e3b2fed4.tar.gz
Specify defaults, fix policies, fix db columns
Diffstat (limited to 'app/models/gcp')
-rw-r--r--app/models/gcp/cluster.rb52
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?