lib/bolt/secret.rb in bolt-2.7.0 vs lib/bolt/secret.rb in bolt-2.8.0
- old
+ new
@@ -1,18 +1,34 @@
# frozen_string_literal: true
+require 'bolt/plugin'
+
module Bolt
class Secret
+ KNOWN_KEYS = {
+ 'createkeys' => %w[keysize private_key public_key],
+ 'encrypt' => %w[public_key],
+ 'decrypt' => %w[private_key public_key]
+ }.freeze
+
def self.execute(plugins, outputter, options)
- plugin = options[:plugin] || 'pkcs7'
+ name = options[:plugin] || 'pkcs7'
+ plugin = plugins.by_name(name)
+
+ unless plugin
+ raise Bolt::Plugin::PluginError::Unknown, name
+ end
+
case options[:action]
when 'createkeys'
- plugins.get_hook(plugin, :secret_createkeys).call
+ opts = { 'force' => options[:force] }.compact
+ result = plugins.get_hook(name, :secret_createkeys).call(opts)
+ outputter.print_message(result)
when 'encrypt'
- encrypted = plugins.get_hook(plugin, :secret_encrypt).call('plaintext_value' => options[:object])
+ encrypted = plugins.get_hook(name, :secret_encrypt).call('plaintext_value' => options[:object])
outputter.print_message(encrypted)
when 'decrypt'
- decrypted = plugins.get_hook(plugin, :secret_decrypt).call('encrypted_value' => options[:object])
+ decrypted = plugins.get_hook(name, :secret_decrypt).call('encrypted_value' => options[:object])
outputter.print_message(decrypted)
end
0
end