Sha256: f6aaba9a67613954e0d3d8c57e17799f6a4a58f25eb93824f2178b55343aa8e7
Contents?: true
Size: 1.77 KB
Versions: 13
Compression:
Stored size: 1.77 KB
Contents
module ForemanSalt module SmartProxies class SaltKeys attr_reader :name, :state, :fingerprint, :smart_proxy_id def initialize(opts) @name, @state, @fingerprint, @smart_proxy_id = opts.flatten end class << self def all(proxy) raise ::Foreman::Exception, N_('Must specify a Smart Proxy to use') if proxy.nil? unless (keys = Rails.cache.read("saltkeys_#{proxy.id}")) api = ProxyAPI::Salt.new(url: proxy.url) keys = api.key_list.map do |name, properties| new([name.strip, properties['state'], properties['fingerprint'], proxy.id]) end.compact Rails.cache.write("saltkeys_#{proxy.id}", keys, expires_in: 1.minute) if Rails.env.production? end keys end def find(proxy, name) all(proxy).find { |c| c.name == name } end def find_by_state(proxy, state) all(proxy).select { |c| c.state == state } end end def accept proxy = SmartProxy.find(smart_proxy_id) Rails.cache.delete("saltkeys_#{proxy.id}") if Rails.env.production? ProxyAPI::Salt.new(url: proxy.url).key_accept name end def reject proxy = SmartProxy.find(smart_proxy_id) Rails.cache.delete("saltkeys_#{proxy.id}") if Rails.env.production? ProxyAPI::Salt.new(url: proxy.url).key_reject name end def delete proxy = SmartProxy.find(smart_proxy_id) Rails.cache.delete("saltkeys_#{proxy.id}") if Rails.env.production? ProxyAPI::Salt.new(url: proxy.url).key_delete name end def to_param name end def to_s name end def <=>(other) name <=> other.name end end end end
Version data entries
13 entries across 13 versions & 1 rubygems