diff options
author | Alessio Caiazza <acaiazza@gitlab.com> | 2019-04-19 09:37:14 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2019-04-19 09:37:14 +0000 |
commit | fa2968256caf2a3e9eebfe0ceca0c71a60f06b06 (patch) | |
tree | c33d58ded9151624e8ceddb46a8a2cdb5350eb4c /app/models/ci/job_artifact.rb | |
parent | 1aa0ceae41c444fd18e37237497ecb8306a21307 (diff) | |
download | gitlab-ce-fa2968256caf2a3e9eebfe0ceca0c71a60f06b06.tar.gz |
Extract ProjectStatistics updates into a concern
Refactor existing tests as a shared example
Diffstat (limited to 'app/models/ci/job_artifact.rb')
-rw-r--r-- | app/models/ci/job_artifact.rb | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/app/models/ci/job_artifact.rb b/app/models/ci/job_artifact.rb index 9695d49d18b..7c836c6f95c 100644 --- a/app/models/ci/job_artifact.rb +++ b/app/models/ci/job_artifact.rb @@ -4,6 +4,7 @@ module Ci class JobArtifact < ApplicationRecord include AfterCommitQueue include ObjectStorage::BackgroundMove + include UpdateProjectStatistics extend Gitlab::Ci::Model NotSupportedAdapterError = Class.new(StandardError) @@ -52,8 +53,8 @@ module Ci validates :file_format, presence: true, unless: :trace?, on: :create validate :valid_file_format?, unless: :trace?, on: :create before_save :set_size, if: :file_changed? - after_save :update_project_statistics_after_save, if: :size_changed? - after_destroy :update_project_statistics_after_destroy, unless: :project_destroyed? + + update_project_statistics stat: :build_artifacts_size after_save :update_file_store, if: :file_changed? @@ -176,18 +177,6 @@ module Ci self.size = file.size end - def update_project_statistics_after_save - update_project_statistics(size.to_i - size_was.to_i) - end - - def update_project_statistics_after_destroy - update_project_statistics(-self.size.to_i) - end - - def update_project_statistics(difference) - ProjectStatistics.increment_statistic(project_id, :build_artifacts_size, difference) - end - def project_destroyed? # Use job.project to avoid extra DB query for project job.project.pending_delete? |