class Chef::Telemetry::Session

Public Class Methods

new() click to toggle source
# File lib/chef/telemetry/session.rb, line 8
def initialize
  @id = if live_session?
          File.read(session_file).chomp
        else
          new_session
        end
end

Public Instance Methods

id() click to toggle source
# File lib/chef/telemetry/session.rb, line 16
def id
  FileUtils.touch(session_file)
  @id
end

Private Instance Methods

live_session?() click to toggle source
# File lib/chef/telemetry/session.rb, line 23
def live_session?
  expiry = Time.now - 600
  File.file?(session_file) && File.stat(session_file).mtime > expiry
end
new_session() click to toggle source
# File lib/chef/telemetry/session.rb, line 32
def new_session
  id = SecureRandom.uuid
  FileUtils.mkdir_p(File.dirname(session_file))
  File.open(session_file, "w") { |f| f.write(id) }
  id
end
session_file() click to toggle source
# File lib/chef/telemetry/session.rb, line 28
def session_file
  File.join(ChefConfig::PathHelper.home(".chef"), "TELEMETRY_SESSION_ID").freeze
end