class NetboxClientRuby::Secrets::SessionKey
Constants
- PATH
Public Class Methods
new()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 13 def initialize session_key end
Public Instance Methods
reload()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 21 def reload NetboxClientRuby::Secrets.session_key = request['session_key'] end
session_key()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 17 def session_key NetboxClientRuby::Secrets.session_key ||= request['session_key'] end
Private Instance Methods
auth_config()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 105 def auth_config netbox_config.auth end
connection()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 40 def connection NetboxClientRuby::Connection.new(request_encoding: :url_encoded) end
decode_private_key(encoded_private_key)
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 55 def decode_private_key(encoded_private_key) begin private_key = OpenSSL::PKey::RSA.new encoded_private_key, rsa_private_key_password return private_key if private_key.private? rescue OpenSSL::PKey::RSAError if rsa_private_key_password.empty? raise LocalError, "The private key at '#{rsa_private_key_path}' requires a password, but none was given, or the key data is corrupted. (The corresponding configuration is 'netbox.auth.rsa_private_key.password'.)" else raise LocalError, "The password given for the private key at '#{rsa_private_key_path}' is not valid or the key data is corrupted. (The corresponding configuration is 'netbox.auth.rsa_private_key.password'.)" end end raise LocalError, "The file at '#{rsa_private_key_path}' is not a private key, but a private key is required for get-session-key. (The corresponding configuration is 'netbox.auth.rsa_private_key.path'.)" end
netbox_config()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 109 def netbox_config NetboxClientRuby.config.netbox end
open_private_key_file()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 90 def open_private_key_file return File.new rsa_private_key_path if File.exist? rsa_private_key_path raise LocalError, "No file exists at the given path '#{rsa_private_key_path}', but it's required for get-session-key. (The corresponding configuration is 'netbox.auth.rsa_private_key.path'.)" end
post()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 36 def post connection.post PATH, private_key: private_key end
private_key()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 48 def private_key key_file = open_private_key_file encoded_private_key = read_private_key_file(key_file) private_key = decode_private_key(encoded_private_key) private_key.to_pem end
read_private_key_file(key_file)
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 82 def read_private_key_file(key_file) encoded_private_key = key_file.read return encoded_private_key unless encoded_private_key.nil? || encoded_private_key.empty? raise LocalError, "The file at '#{rsa_private_key_path}' is empty, but a private key is required for get-session-key. (The corresponding configuration is 'netbox.auth.rsa_private_key.path'.)" end
request()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 27 def request if authorization_token response(post) else raise LocalError, "The authorization_token has not been configured, but it's required for get-session-key." end end
rsa_private_key_config()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 101 def rsa_private_key_config auth_config.rsa_private_key end
rsa_private_key_password()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 74 def rsa_private_key_password pwd = rsa_private_key_config.password # If nil is not converted to '', then OpenSSL will block and ask on console for the password. # We really don't want that. return '' if pwd.nil? pwd end
rsa_private_key_path()
click to toggle source
# File lib/netbox_client_ruby/api/secrets/session_key.rb, line 97 def rsa_private_key_path @rsa_private_key_path ||= File.expand_path(rsa_private_key_config.path) end