class ClusterSecretAdapter
Constants
- CCLI_FLAG_LABEL
Public Instance Methods
fetch_all_secrets()
click to toggle source
# File lib/adapters/cluster_secret_adapter.rb, line 23 def fetch_all_secrets raise client_missing_error unless client_installed? raise client_not_logged_in_error unless client_logged_in? secrets, _err = cmd.run("#{client} get secret -o yaml -l #{CCLI_FLAG_LABEL}=true") Psych.load(secrets)['items'].map do |secret| secret.to_yaml end end
fetch_secret(name)
click to toggle source
# File lib/adapters/cluster_secret_adapter.rb, line 9 def fetch_secret(name) raise client_missing_error unless client_installed? raise client_not_logged_in_error unless client_logged_in? begin out, _err = cmd.run("#{client} get -o yaml secret --field-selector='metadata.name=#{name}' " \ "-l #{CCLI_FLAG_LABEL}=true") Psych.load(out)['items'].first.to_yaml rescue TTY::Command::ExitError raise OpenshiftSecretNotFoundError end end
insert_secret(secret)
click to toggle source
# File lib/adapters/cluster_secret_adapter.rb, line 33 def insert_secret(secret) raise client_missing_error unless client_installed? raise client_not_logged_in_error unless client_logged_in? File.open("/tmp/#{secret.name}.yml", 'w') do |file| file.write secret.to_yaml end cmd.run("#{client} delete -f /tmp/#{secret.name}.yml --ignore-not-found=true") cmd.run("#{client} create -f /tmp/#{secret.name}.yml") end
Private Instance Methods
client()
click to toggle source
# File lib/adapters/cluster_secret_adapter.rb, line 59 def client raise 'implement in subclass' end
client_installed?()
click to toggle source
# File lib/adapters/cluster_secret_adapter.rb, line 47 def client_installed? cmd.run!("which #{client}").success? end
client_logged_in?()
click to toggle source
# File lib/adapters/cluster_secret_adapter.rb, line 51 def client_logged_in? cmd.run!("#{client} get secret").success? end
client_missing_error()
click to toggle source
# File lib/adapters/cluster_secret_adapter.rb, line 63 def client_missing_error raise 'implement in subclass' end
client_not_logged_in_error()
click to toggle source
# File lib/adapters/cluster_secret_adapter.rb, line 67 def client_not_logged_in_error raise 'implement in subclass' end
cmd()
click to toggle source
# File lib/adapters/cluster_secret_adapter.rb, line 55 def cmd @cmd ||= TTY::Command.new(printer: :null) end