diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-27 18:10:21 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-27 18:10:21 +0300 |
commit | eef9c80f1c3e81fcb50c51d8f419ab095d4747fd (patch) | |
tree | 5052967f5239d74e34527e94600621e6c1ebfcc4 /lib/gitlab | |
parent | d6404862287ded00725865e56cda3a6fb4f2a1c7 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab')
-rw-r--r-- | lib/gitlab/application_context.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/background_migration.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/ci/pipeline/artifact/code_coverage.rb | 8 | ||||
-rw-r--r-- | lib/gitlab/ci/trace.rb | 9 | ||||
-rw-r--r-- | lib/gitlab/exclusive_lease_helpers.rb | 5 | ||||
-rw-r--r-- | lib/gitlab/metrics/dashboard/validator.rb | 16 | ||||
-rw-r--r-- | lib/gitlab/metrics/dashboard/validator/client.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/metrics/dashboard/validator/schemas/panel.json | 2 |
8 files changed, 20 insertions, 26 deletions
diff --git a/lib/gitlab/application_context.rb b/lib/gitlab/application_context.rb index a3feda9bb59..30cb74bcf54 100644 --- a/lib/gitlab/application_context.rb +++ b/lib/gitlab/application_context.rb @@ -29,7 +29,7 @@ module Gitlab Labkit::Context.current.to_h.include?(Labkit::Context.log_key(attribute_name)) end - def initialize(**args) + def initialize(args) unknown_attributes = args.keys - APPLICATION_ATTRIBUTES.map(&:name) raise ArgumentError, "#{unknown_attributes} are not known keys" if unknown_attributes.any? diff --git a/lib/gitlab/background_migration.rb b/lib/gitlab/background_migration.rb index ea0307e8bd6..d1b9062a23c 100644 --- a/lib/gitlab/background_migration.rb +++ b/lib/gitlab/background_migration.rb @@ -9,7 +9,7 @@ module Gitlab # Begins stealing jobs from the background migrations queue, blocking the # caller until all jobs have been completed. # - # When a migration raises a StandardError is is going to be retries up to + # When a migration raises a StandardError it is going to retry up to # three times, for example, to recover from a deadlock. # # When Exception is being raised, it enqueues the migration again, and diff --git a/lib/gitlab/ci/pipeline/artifact/code_coverage.rb b/lib/gitlab/ci/pipeline/artifact/code_coverage.rb index f8a004e8512..d8f28bde7ce 100644 --- a/lib/gitlab/ci/pipeline/artifact/code_coverage.rb +++ b/lib/gitlab/ci/pipeline/artifact/code_coverage.rb @@ -5,6 +5,8 @@ module Gitlab module Pipeline module Artifact class CodeCoverage + include Gitlab::Utils::StrongMemoize + def initialize(pipeline_artifact) @pipeline_artifact = pipeline_artifact end @@ -18,7 +20,11 @@ module Gitlab private def raw_report - @raw_report ||= Gitlab::Json.parse(@pipeline_artifact.file.read) + strong_memoize(:raw_report) do + @pipeline_artifact.each_blob do |blob| + Gitlab::Json.parse(blob) + end + end end end end diff --git a/lib/gitlab/ci/trace.rb b/lib/gitlab/ci/trace.rb index 4b194810c9e..348e5472cb4 100644 --- a/lib/gitlab/ci/trace.rb +++ b/lib/gitlab/ci/trace.rb @@ -79,9 +79,7 @@ module Gitlab job.trace_chunks.any? || current_path.present? || old_trace.present? end - def read(&block) - should_retry = true if lock_taken?(lock_key) - + def read(should_retry: true, &block) read_stream(&block) rescue Errno::ENOENT raise unless should_retry @@ -195,13 +193,10 @@ module Gitlab end def in_write_lock(&blk) + lock_key = "trace:write:lock:#{job.id}" in_lock(lock_key, ttl: LOCK_TTL, retries: LOCK_RETRIES, sleep_sec: LOCK_SLEEP, &blk) end - def lock_key - "trace:write:lock:#{job.id}" - end - def archive_stream!(stream) clone_file!(stream, JobArtifactUploader.workhorse_upload_path) do |clone_path| create_build_trace!(job, clone_path) diff --git a/lib/gitlab/exclusive_lease_helpers.rb b/lib/gitlab/exclusive_lease_helpers.rb index 0de45414955..10762d83588 100644 --- a/lib/gitlab/exclusive_lease_helpers.rb +++ b/lib/gitlab/exclusive_lease_helpers.rb @@ -39,10 +39,5 @@ module Gitlab ensure lease&.cancel end - - def lock_taken?(key) - lease = Gitlab::ExclusiveLease.new(key, timeout: 0) - lease.exists? - end end end diff --git a/lib/gitlab/metrics/dashboard/validator.rb b/lib/gitlab/metrics/dashboard/validator.rb index 8edd9c397f9..1e8dc059968 100644 --- a/lib/gitlab/metrics/dashboard/validator.rb +++ b/lib/gitlab/metrics/dashboard/validator.rb @@ -4,24 +4,22 @@ module Gitlab module Metrics module Dashboard module Validator - DASHBOARD_SCHEMA_PATH = 'lib/gitlab/metrics/dashboard/validator/schemas/dashboard.json'.freeze + DASHBOARD_SCHEMA_PATH = Rails.root.join(*%w[lib gitlab metrics dashboard validator schemas dashboard.json]).freeze class << self def validate(content, schema_path = DASHBOARD_SCHEMA_PATH, dashboard_path: nil, project: nil) - errors = _validate(content, schema_path, dashboard_path: dashboard_path, project: project) - errors.empty? + errors(content, schema_path, dashboard_path: dashboard_path, project: project).empty? end def validate!(content, schema_path = DASHBOARD_SCHEMA_PATH, dashboard_path: nil, project: nil) - errors = _validate(content, schema_path, dashboard_path: dashboard_path, project: project) + errors = errors(content, schema_path, dashboard_path: dashboard_path, project: project) errors.empty? || raise(errors.first) end - private - - def _validate(content, schema_path, dashboard_path: nil, project: nil) - client = Validator::Client.new(content, schema_path, dashboard_path: dashboard_path, project: project) - client.execute + def errors(content, schema_path = DASHBOARD_SCHEMA_PATH, dashboard_path: nil, project: nil) + Validator::Client + .new(content, schema_path, dashboard_path: dashboard_path, project: project) + .execute end end end diff --git a/lib/gitlab/metrics/dashboard/validator/client.rb b/lib/gitlab/metrics/dashboard/validator/client.rb index c63415abcfc..588c677ca28 100644 --- a/lib/gitlab/metrics/dashboard/validator/client.rb +++ b/lib/gitlab/metrics/dashboard/validator/client.rb @@ -46,7 +46,7 @@ module Gitlab def validate_against_schema schemer.validate(content).map do |error| - Errors::SchemaValidationError.new(error) + ::Gitlab::Metrics::Dashboard::Validator::Errors::SchemaValidationError.new(error) end end end diff --git a/lib/gitlab/metrics/dashboard/validator/schemas/panel.json b/lib/gitlab/metrics/dashboard/validator/schemas/panel.json index 011eef53e40..2ae9608036e 100644 --- a/lib/gitlab/metrics/dashboard/validator/schemas/panel.json +++ b/lib/gitlab/metrics/dashboard/validator/schemas/panel.json @@ -4,7 +4,7 @@ "properties": { "type": { "type": "string", - "enum": ["area-chart", "anomaly-chart", "bar", "column", "stacked-column", "single-stat", "heatmap"], + "enum": ["area-chart", "line-chart", "anomaly-chart", "bar", "column", "stacked-column", "single-stat", "heatmap", "gauge"], "default": "area-chart" }, "title": { "type": "string" }, |