Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/finders/environments_finder.rb2
-rw-r--r--app/models/deployment.rb2
-rw-r--r--app/models/environment.rb2
-rw-r--r--app/models/environment_status.rb2
-rw-r--r--db/schema.rb33
-rw-r--r--lib/gitlab/cycle_analytics/summary/deploy.rb2
-rw-r--r--spec/models/environment_spec.rb44
7 files changed, 58 insertions, 29 deletions
diff --git a/app/finders/environments_finder.rb b/app/finders/environments_finder.rb
index 32f41314359..419be46fafe 100644
--- a/app/finders/environments_finder.rb
+++ b/app/finders/environments_finder.rb
@@ -9,7 +9,7 @@ class EnvironmentsFinder
# rubocop: disable CodeReuse/ActiveRecord
def execute
- deployments = project.deployments.success
+ deployments = project.deployments
deployments =
if ref
deployments_query = params[:with_tags] ? 'ref = :ref OR tag IS TRUE' : 'ref = :ref'
diff --git a/app/models/deployment.rb b/app/models/deployment.rb
index 305922611a6..83434276995 100644
--- a/app/models/deployment.rb
+++ b/app/models/deployment.rb
@@ -132,7 +132,7 @@ class Deployment < ActiveRecord::Base
def previous_deployment
@previous_deployment ||=
- project.deployments.success.joins(:environment)
+ project.deployments.joins(:environment)
.where(environments: { name: self.environment.name }, ref: self.ref)
.where.not(id: self.id)
.take
diff --git a/app/models/environment.rb b/app/models/environment.rb
index 581c870b2c5..934828946b9 100644
--- a/app/models/environment.rb
+++ b/app/models/environment.rb
@@ -96,7 +96,7 @@ class Environment < ActiveRecord::Base
end
def last_deployed_at
- last_deployment.try(:finished_at)
+ last_deployment.try(:created_at)
end
def update_merge_request_metrics?
diff --git a/app/models/environment_status.rb b/app/models/environment_status.rb
index 76fd0241239..7078496ff52 100644
--- a/app/models/environment_status.rb
+++ b/app/models/environment_status.rb
@@ -47,6 +47,8 @@ class EnvironmentStatus
# Since frontend has not supported all statuses yet, BE has to
# proxy some status to a supported status.
def status
+ return unless deployment
+
case deployment.status
when 'created'
'running'
diff --git a/db/schema.rb b/db/schema.rb
index d31f6f09b78..fbe09cf1611 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -927,6 +927,35 @@ ActiveRecord::Schema.define(version: 20181106135939) do
add_index "forked_project_links", ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true, using: :btree
+ create_table "gcp_clusters", force: :cascade do |t|
+ t.integer "project_id", null: false
+ t.integer "user_id"
+ t.integer "service_id"
+ t.integer "status"
+ t.integer "gcp_cluster_size", null: false
+ t.datetime_with_timezone "created_at", null: false
+ t.datetime_with_timezone "updated_at", null: false
+ t.boolean "enabled", default: true
+ t.text "status_reason"
+ t.string "project_namespace"
+ t.string "endpoint"
+ t.text "ca_cert"
+ t.text "encrypted_kubernetes_token"
+ t.string "encrypted_kubernetes_token_iv"
+ t.string "username"
+ t.text "encrypted_password"
+ t.string "encrypted_password_iv"
+ t.string "gcp_project_id", null: false
+ t.string "gcp_cluster_zone", null: false
+ t.string "gcp_cluster_name", null: false
+ t.string "gcp_machine_type"
+ t.string "gcp_operation_id"
+ t.text "encrypted_gcp_token"
+ t.string "encrypted_gcp_token_iv"
+ end
+
+ add_index "gcp_clusters", ["project_id"], name: "index_gcp_clusters_on_project_id", unique: true, using: :btree
+
create_table "gpg_key_subkeys", force: :cascade do |t|
t.integer "gpg_key_id", null: false
t.binary "keyid"
@@ -1827,7 +1856,6 @@ ActiveRecord::Schema.define(version: 20181106135939) do
end
add_index "redirect_routes", ["path"], name: "index_redirect_routes_on_path", unique: true, using: :btree
- add_index "redirect_routes", ["path"], name: "index_redirect_routes_on_path_text_pattern_ops", using: :btree, opclasses: {"path"=>"varchar_pattern_ops"}
add_index "redirect_routes", ["source_type", "source_id"], name: "index_redirect_routes_on_source_type_and_source_id", using: :btree
create_table "releases", force: :cascade do |t|
@@ -2411,6 +2439,9 @@ ActiveRecord::Schema.define(version: 20181106135939) do
add_foreign_key "fork_network_members", "projects", on_delete: :cascade
add_foreign_key "fork_networks", "projects", column: "root_project_id", name: "fk_e7b436b2b5", on_delete: :nullify
add_foreign_key "forked_project_links", "projects", column: "forked_to_project_id", name: "fk_434510edb0", on_delete: :cascade
+ add_foreign_key "gcp_clusters", "projects", on_delete: :cascade
+ add_foreign_key "gcp_clusters", "services", on_delete: :nullify
+ add_foreign_key "gcp_clusters", "users", on_delete: :nullify
add_foreign_key "gpg_key_subkeys", "gpg_keys", on_delete: :cascade
add_foreign_key "gpg_keys", "users", on_delete: :cascade
add_foreign_key "gpg_signatures", "gpg_key_subkeys", on_delete: :nullify
diff --git a/lib/gitlab/cycle_analytics/summary/deploy.rb b/lib/gitlab/cycle_analytics/summary/deploy.rb
index 39fdf5074da..099d798aac6 100644
--- a/lib/gitlab/cycle_analytics/summary/deploy.rb
+++ b/lib/gitlab/cycle_analytics/summary/deploy.rb
@@ -7,7 +7,7 @@ module Gitlab
end
def value
- @value ||= @project.deployments.success.where("created_at > ?", @from).count
+ @value ||= @project.deployments.where("created_at > ?", @from).count
end
end
end
diff --git a/spec/models/environment_spec.rb b/spec/models/environment_spec.rb
index ac814c85c3c..9a3f1f1c5a1 100644
--- a/spec/models/environment_spec.rb
+++ b/spec/models/environment_spec.rb
@@ -72,30 +72,6 @@ describe Environment do
end
end
- describe '#last_deployed_at' do
- subject { environment.last_deployed_at }
-
- let(:environment) { create(:environment) }
-
- context 'when the latest deployment is successful' do
- let!(:deployment) { create(:deployment, :success, environment: environment) }
-
- it { expect(subject).to be_within(1.second).of(deployment.finished_at) }
- end
-
- context 'when the latest deployment failed' do
- let!(:deployment) { create(:deployment, :failed, environment: environment) }
-
- it { is_expected.to be_nil }
- end
-
- context 'when the latest deployment is running' do
- let!(:deployment) { create(:deployment, :running, environment: environment) }
-
- it { is_expected.to be_nil }
- end
- end
-
describe '#folder_name' do
context 'when it is inside a folder' do
subject(:environment) do
@@ -177,6 +153,26 @@ describe Environment do
end
end
+ describe '#first_deployment_for' do
+ let(:project) { create(:project, :repository) }
+ let!(:deployment) { create(:deployment, :succeed, environment: environment, ref: commit.parent.id) }
+ let!(:deployment1) { create(:deployment, :succeed, environment: environment, ref: commit.id) }
+ let(:head_commit) { project.commit }
+ let(:commit) { project.commit.parent }
+
+ it 'returns deployment id for the environment' do
+ expect(environment.first_deployment_for(commit.id)).to eq deployment1
+ end
+
+ it 'return nil when no deployment is found' do
+ expect(environment.first_deployment_for(head_commit.id)).to eq nil
+ end
+
+ it 'returns a UTF-8 ref' do
+ expect(environment.first_deployment_for(commit.id).ref).to be_utf8
+ end
+ end
+
describe '#environment_type' do
subject { environment.environment_type }