Module: LittleMonster::Core::Counters

Defined in:
lib/little_monster/core/counters.rb

Defined Under Namespace

Classes: DuplicatedCounterError, MissedCounterError

Instance Method Summary collapse

Instance Method Details

#counter(counter_name) ⇒ Object

Raises:



20
21
22
23
24
# File 'lib/little_monster/core/counters.rb', line 20

def counter(counter_name)
  resp = LittleMonster::Core::API.get("/jobs/#{job_id}/counters/#{counter_name}", {}, critical: true)
  raise MissedCounterError if resp.code == 404
  resp.body
end

#counter_endpoint(name) ⇒ Object



26
27
28
# File 'lib/little_monster/core/counters.rb', line 26

def counter_endpoint(name)
  "#{LittleMonster.api_url.chomp('/')}/jobs/#{job_id}/counters/#{name}"
end

#increase_counter(counter_name, unique_id, type, output = '') ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/little_monster/core/counters.rb', line 5

def increase_counter(counter_name, unique_id, type, output = '')
  begin
    resp = LittleMonster::Core::API.put(
      "/jobs/#{job_id}/counters/#{counter_name}",
      { body: { type: type, unique_id: unique_id, output: output } },
      critical: true
    )
  rescue LittleMonster::APIUnreachableError => e
    logger.error "Could not increase counter #{counter_name}, Api unreachable"
    raise e
  end
  #raise DuplicatedCounterError if resp.code == 412
  true
end

#init_counters(*counter_names) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/little_monster/core/counters.rb', line 30

def init_counters(*counter_names)
  counter_names.each do |counter_name|
    resource = "/jobs/#{job_id}/counters"
    values = { body: { name: counter_name } }
    begin
      res = LittleMonster::Core::API.post(resource, values, critical: true)
      raise MissedCounterError, "Could not post to #{resource}" if !res.success? && res.code != 409 # counter already exists
    rescue LittleMonster::APIUnreachableError => e
      logger.error "Could not init counter #{resource} with #{values} , Api unreachable"
      raise e
    end
  end
  true
end