Sha256: 241aacf4ca415cae053dc50cf44213ed6d96ce9b21fe16f03e5b740c3ba3a1f2
Contents?: true
Size: 1.97 KB
Versions: 5
Compression:
Stored size: 1.97 KB
Contents
module ForemanSalt class SmartProxies::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.new(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).select{|c| c.name == name}.first end def find_by_state(proxy, state) all(proxy).select{|c| c.state == state} end end def accept raise ::Foreman::Exception.new(N_("unable to re-accept an accepted key")) unless state == "unaccepted" 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 raise ::Foreman::Exception.new(N_("unable to reject an accepted key")) unless state == "unaccepted" 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 self.name <=> other.name end end end
Version data entries
5 entries across 5 versions & 1 rubygems