Class: Clusters::AgentTokens::TrackUsageService

Inherits:
Object
  • Object
show all
Defined in:
app/services/clusters/agent_tokens/track_usage_service.rb

Constant Summary collapse

UPDATE_USED_COLUMN_EVERY =

The UPDATE_USED_COLUMN_EVERY defines how often the token DB entry can be updated

((40.minutes)..(55.minutes))

Instance Method Summary collapse

Constructor Details

#initialize(token) ⇒ TrackUsageService

Returns a new instance of TrackUsageService.



11
12
13
# File 'app/services/clusters/agent_tokens/track_usage_service.rb', line 11

def initialize(token)
  @token = token
end

Instance Method Details

#executeObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/services/clusters/agent_tokens/track_usage_service.rb', line 15

def execute
  track_values = { last_used_at: Time.current.utc }

  token.cache_attributes(track_values)

  if can_update_track_values?
    log_activity_event!(track_values[:last_used_at]) unless agent.connected?

    # Use update_column so updated_at is skipped
    token.update_columns(track_values)
  end
rescue StandardError => e
  Gitlab::ErrorTracking.track_exception(e, agent_id: token.agent_id)

  ServiceResponse.error(message: e.message)
end