Project

General

Profile

« Previous | Next » 

Revision e7968a9d

Added by Michael Moll about 7 years ago

Fixes #6945 - use autosign path for puppetca

View differences:

config/settings.d/puppetca.yml.example
:enabled: false
#:ssldir: /var/lib/puppet/ssl
#:puppetdir: /etc/puppet
#:autosignfile: /etc/puppet/autosign.conf
#:puppetca_use_sudo: true
#:sudo_command: /usr/bin/sudo
extra/migrations/20170523000000_migrate_autosign_setting.rb
require 'yaml'
class MigrateAutosignSetting < ::Proxy::Migration
def migrate
puppetca_config = path(src_dir, "settings.d", "puppetca.yml")
if !File.exist?(puppetca_config)
duplicate_original_configuration
return
end
to_migrate = YAML.load_file(puppetca_config)
output = migrate_autosign_configuration(to_migrate)
copy_original_configuration_except(path("settings.d", "puppetca.yml"))
write_to_files(output)
end
def remap_parameter(aparameter, avalue)
module_name = :puppetca
if aparameter == :puppetdir
parameter_name = :autosignfile
parameter_value = avalue + '/autosign.conf'
else
parameter_name = aparameter
parameter_value = avalue
end
[module_name, parameter_name, parameter_value]
end
def migrate_autosign_configuration(to_migrate)
migrated = Hash.new { |h,k| h[k] = Hash.new }
to_migrate.each do |option, value|
module_name, parameter_name, parameter_value = remap_parameter(option, value)
migrated[module_name][parameter_name] = parameter_value
end
migrated
end
def write_to_files(output)
output.keys.each do |m|
next if output[m].empty? || m == :unknown
File.open(path(dst_dir, "settings.d", "#{m}.yml"),'w') do |f|
f.write(strip_ruby_symbol_encoding(output[m].to_yaml))
end
end
end
end
modules/puppetca/puppetca_main.rb
Proxy::PuppetCa::Plugin.settings.ssldir
end
def puppetdir
Proxy::PuppetCa::Plugin.settings.puppetdir
end
def autosign_file
"#{puppetdir}/autosign.conf"
Proxy::PuppetCa::Plugin.settings.autosignfile
end
# parse the puppetca --list output
modules/puppetca/puppetca_plugin.rb
http_rackup_path File.expand_path("http_config.ru", File.expand_path("../", __FILE__))
https_rackup_path File.expand_path("http_config.ru", File.expand_path("../", __FILE__))
default_settings :ssldir => '/var/lib/puppet/ssl', :puppetdir => '/etc/puppet'
default_settings :ssldir => '/var/lib/puppet/ssl', :autosignfile => '/etc/puppet/autosign.conf'
plugin :puppetca, ::Proxy::VERSION
end
test/migrations/autosign_migration_test.rb
require 'test_helper'
require File.join(File.dirname(__FILE__),'../../extra/migrate_settings')
::Proxy::Migration.inject_migrations_instance(::Proxy::Migrations.new("dummy"))
require File.join(File.dirname(__FILE__),'../../extra/migrations/20170523000000_migrate_autosign_setting.rb')
class ProxyAutosignMigrationTest < Test::Unit::TestCase
def setup
@migration = MigrateAutosignSetting.new("/tmp")
end
def test_autosign_parameter_remapping
assert_equal [:puppetca, :autosignfile, '/etc/puppet/autosign.conf'], @migration.remap_parameter(:puppetdir, '/etc/puppet')
end
end
test/puppetca/puppetca_config_test.rb
def test_omitted_settings_have_default_values
Proxy::PuppetCa::Plugin.load_test_settings({})
assert_equal '/var/lib/puppet/ssl', Proxy::PuppetCa::Plugin.settings.ssldir
assert_equal '/etc/puppet', Proxy::PuppetCa::Plugin.settings.puppetdir
assert_equal '/etc/puppet/autosign.conf', Proxy::PuppetCa::Plugin.settings.autosignfile
end
end

Also available in: Unified diff