Class: Gitlab::Verify::BatchVerifier

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/verify/batch_verifier.rb

Direct Known Subclasses

CiSecureFiles, JobArtifacts, LfsObjects, Uploads

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(batch_size:, start: nil, finish: nil) ⇒ BatchVerifier

Returns a new instance of BatchVerifier.



8
9
10
11
12
13
14
# File 'lib/gitlab/verify/batch_verifier.rb', line 8

def initialize(batch_size:, start: nil, finish: nil)
  @batch_size = batch_size
  @start = start
  @finish = finish

  fix_google_api_logger
end

Instance Attribute Details

#batch_sizeObject (readonly)

Returns the value of attribute batch_size.



6
7
8
# File 'lib/gitlab/verify/batch_verifier.rb', line 6

def batch_size
  @batch_size
end

#finishObject (readonly)

Returns the value of attribute finish.



6
7
8
# File 'lib/gitlab/verify/batch_verifier.rb', line 6

def finish
  @finish
end

#startObject (readonly)

Returns the value of attribute start.



6
7
8
# File 'lib/gitlab/verify/batch_verifier.rb', line 6

def start
  @start
end

Instance Method Details

#describe(_object) ⇒ Object

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/gitlab/verify/batch_verifier.rb', line 30

def describe(_object)
  raise NotImplementedError
end

#nameObject

Raises:

  • (NotImplementedError)


26
27
28
# File 'lib/gitlab/verify/batch_verifier.rb', line 26

def name
  raise NotImplementedError
end

#run_batches(&blk) ⇒ Object

Yields a Range of IDs and a Hash of failed verifications (object => error)



17
18
19
20
21
22
23
24
# File 'lib/gitlab/verify/batch_verifier.rb', line 17

def run_batches(&blk)
  all_relation.in_batches(of: batch_size, start: start, finish: finish) do |batch| # rubocop: disable Cop/InBatches
    range = batch.first.id..batch.last.id
    failures = run_batch_for(batch)

    yield(range, failures)
  end
end