diff options
| author | Grzegorz Bizon <grzegorz.bizon@ntsn.pl> | 2016-02-02 12:12:03 +0100 |
|---|---|---|
| committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-02-19 17:24:59 +0100 |
| commit | 2c7f36f43072dcffca13c7e248f8df1bf226ce1a (patch) | |
| tree | f6282f5a2efa27b6d68f375bfeb2a076e87d9dd9 /app/models/ci | |
| parent | bae3701073783c0b6f2a831bb96413ea0f85b42e (diff) | |
| download | gitlab-ce-2c7f36f43072dcffca13c7e248f8df1bf226ce1a.tar.gz | |
Update relevant build fields when build is erased
Diffstat (limited to 'app/models/ci')
| -rw-r--r-- | app/models/ci/build.rb | 6 | ||||
| -rw-r--r-- | app/models/ci/build/eraseable.rb | 19 |
2 files changed, 19 insertions, 6 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 1d65aeb6acf..f114e57d35f 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -39,7 +39,7 @@ module Ci class Build < CommitStatus include Gitlab::Application.routes.url_helpers - include Eraseable + include Build::Eraseable LAZY_ATTRIBUTES = ['trace'] @@ -208,8 +208,8 @@ module Ci end end - def trace_empty? - raw_trace.blank? + def has_trace? + raw_trace.present? end def raw_trace diff --git a/app/models/ci/build/eraseable.rb b/app/models/ci/build/eraseable.rb index 96cbbbe5fda..a345a046238 100644 --- a/app/models/ci/build/eraseable.rb +++ b/app/models/ci/build/eraseable.rb @@ -1,17 +1,23 @@ module Ci class Build module Eraseable - include ActiveSupport::Concern + extend ActiveSupport::Concern - def erase! + included do + belongs_to :erased_by, class_name: 'User' + end + + def erase!(opts = {}) raise StandardError, 'Build not eraseable!' unless eraseable? + remove_artifacts_file! remove_artifacts_metadata! erase_trace! + update_erased!(opts[:erased_by]) end def eraseable? - complete? && (artifacts_file.exists? || !trace_empty?) + complete? && (artifacts? || has_trace?) end def erase_url @@ -25,6 +31,13 @@ module Ci def erase_trace! File.truncate(path_to_trace, 0) if File.file?(path_to_trace) end + + def update_erased!(user = nil) + self.erased_by = user if user + self.erased_at = Time.now + self.erased = true + self.save! + end end end end |
