Project

General

Profile

Download (1.42 KB) Statistics
| Branch: | Tag: | Revision:
require 'yaml'

class MigratePuppetCaSettings < ::Proxy::Migration
def migrate
copy_original_configuration_except(path('settings.d', 'puppetca.yml'),
path('settings.d', 'puppetca_puppet_cert.yml.example'))

module_settings = YAML.load_file(path(src_dir, 'settings.d', 'puppetca.yml'))
if File.exist?(path(src_dir, 'settings.d', 'puppetca_puppet_cert.yml'))
provider_settings = YAML.load_file(path(src_dir, 'settings.d', 'puppetca_puppet_cert.yml'))
else
provider_settings = {}
end

write_yaml(path(dst_dir, 'settings.d', 'puppetca_puppet_cert.yml'),
transform_provider_yaml(module_settings, provider_settings))
write_yaml(path(dst_dir, 'settings.d', 'puppetca.yml'), transform_puppetca_yaml(module_settings))
end

def transform_puppetca_yaml(input)
settings_moved_to_provider.each do |setting|
input.delete(setting)
end
input
end

def transform_provider_yaml(module_settings, provider_settings)
provider_settings = {} unless provider_settings.is_a? Hash
settings_moved_to_provider.each do |setting|
provider_settings[setting] = module_settings[setting]
end
provider_settings
end

def write_yaml(filepath, yaml)
File.open(filepath, 'w') do |f|
f.write(yaml.to_yaml)
end
end

def settings_moved_to_provider
[
:ssldir,
:puppetca_use_sudo,
:sudo_command
]
end
end
(9-9/9)