summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-10-02 21:58:50 +0900
committerShinya Maeda <shinya@gitlab.com>2017-10-02 21:58:50 +0900
commit34e66c427dde2070c2c09a07ce08f991e46de92f (patch)
treed0894218a41a2b67313fc232f19cc734f3dc7b67 /app/models
parent2cb1d617d90b4a9311e3a35434bec958f266d22a (diff)
downloadgitlab-ce-34e66c427dde2070c2c09a07ce08f991e46de92f.tar.gz
PollingInterval, rename to gke_clusters, has_one :cluster
Diffstat (limited to 'app/models')
-rw-r--r--app/models/gcp/cluster.rb (renamed from app/models/ci/cluster.rb)27
-rw-r--r--app/models/project.rb2
2 files changed, 22 insertions, 7 deletions
diff --git a/app/models/ci/cluster.rb b/app/models/gcp/cluster.rb
index 93f582f565a..006cb1feb0c 100644
--- a/app/models/ci/cluster.rb
+++ b/app/models/gcp/cluster.rb
@@ -1,25 +1,25 @@
-module Ci
+module Gcp
class Cluster < ActiveRecord::Base
- extend Gitlab::Ci::Model
+ extend Gitlab::Gcp::Model
- belongs_to :project
+ belongs_to :project, inverse_of: :cluster
belongs_to :user
belongs_to :service
attr_encrypted :password,
- mode: :per_attribute_iv_and_salt,
+ mode: :per_attribute_iv,
insecure_mode: true,
key: Gitlab::Application.secrets.db_key_base,
algorithm: 'aes-256-cbc'
attr_encrypted :kubernetes_token,
- mode: :per_attribute_iv_and_salt,
+ mode: :per_attribute_iv,
insecure_mode: true,
key: Gitlab::Application.secrets.db_key_base,
algorithm: 'aes-256-cbc'
attr_encrypted :gcp_token,
- mode: :per_attribute_iv_and_salt,
+ mode: :per_attribute_iv,
insecure_mode: true,
key: Gitlab::Application.secrets.db_key_base,
algorithm: 'aes-256-cbc'
@@ -54,6 +54,21 @@ module Ci
save!(validate: false)
end
+ def created!(endpoint, ca_cert, kubernetes_token, username, password)
+ self.status = :created
+ self.enabled = true
+ self.endpoint = endpoint
+ self.ca_cert = ca_cert
+ self.kubernetes_token = kubernetes_token
+ self.username = username
+ self.password = password
+ self.service = project.find_or_initialize_service('kubernetes')
+ self.gcp_token = nil
+ self.gcp_operation_id = nil
+
+ save!
+ end
+
def on_creation?
scheduled? || creating?
end
diff --git a/app/models/project.rb b/app/models/project.rb
index 6b896746864..5d6a8bdbaeb 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -163,6 +163,7 @@ class Project < ActiveRecord::Base
has_one :import_data, class_name: 'ProjectImportData', inverse_of: :project, autosave: true
has_one :project_feature, inverse_of: :project
has_one :statistics, class_name: 'ProjectStatistics'
+ has_one :cluster, class_name: 'Gcp::Cluster', inverse_of: :project
# Container repositories need to remove data from the container registry,
# which is not managed by the DB. Hence we're still using dependent: :destroy
@@ -171,7 +172,6 @@ class Project < ActiveRecord::Base
has_many :commit_statuses
has_many :pipelines, class_name: 'Ci::Pipeline'
- has_many :clusters, class_name: 'Ci::Cluster'
# Ci::Build objects store data on the file system such as artifact files and
# build traces. Currently there's no efficient way of removing this data in