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