summaryrefslogtreecommitdiff
path: root/app/models/ci
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzegorz.bizon@ntsn.pl>2016-02-02 12:12:03 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-02-19 17:24:59 +0100
commit2c7f36f43072dcffca13c7e248f8df1bf226ce1a (patch)
treef6282f5a2efa27b6d68f375bfeb2a076e87d9dd9 /app/models/ci
parentbae3701073783c0b6f2a831bb96413ea0f85b42e (diff)
downloadgitlab-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.rb6
-rw-r--r--app/models/ci/build/eraseable.rb19
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