class HammerCLIForeman::Sessions
Constants
- STORAGE_DIR
Public Class Methods
configured?(url)
click to toggle source
# File lib/hammer_cli_foreman/sessions.rb, line 36 def self.configured?(url) ensure_mode(storage, '40700') && ensure_mode(session_file(url), '100600') end
enabled?()
click to toggle source
# File lib/hammer_cli_foreman/sessions.rb, line 23 def self.enabled? HammerCLI::Settings.get(:foreman, :use_sessions) end
ensure_mode(file, expected_mode)
click to toggle source
# File lib/hammer_cli_foreman/sessions.rb, line 40 def self.ensure_mode(file, expected_mode) return true unless File.exist?(file) mode = File.stat(file).mode.to_s(8) if mode != expected_mode warn _("Invalid permissions for %{file}: %{mode}, expected %{expected_mode}.") % { :mode => mode, :expected_mode => expected_mode, :file => file } false else true end end
get(url)
click to toggle source
# File lib/hammer_cli_foreman/sessions.rb, line 7 def self.get(url) raise _('Sessions are not enabled, please check your Hammer settings.') unless enabled? unless File.exist?(storage) FileUtils.mkdir_p(storage, mode: 0700) end unless configured?(url) warn _('Using session auth with invalid permissions on session files is not recommended.') end HammerCLIForeman::Session.new(session_file(url)) end
session_file(url)
click to toggle source
# File lib/hammer_cli_foreman/sessions.rb, line 27 def self.session_file(url) raise _('The url is empty. Session can not be created.') if url.nil? || url.empty? uri = URI.parse(url) File.join(storage, "#{uri.scheme}_#{uri.host}") rescue URI::InvalidURIError raise _('The url (%s) is not a valid URL. Session can not be created.') % url end
storage()
click to toggle source
# File lib/hammer_cli_foreman/sessions.rb, line 19 def self.storage STORAGE_DIR end