Skip to content

Commit

Permalink
Configurators::Base#prepare returns a symbol
Browse files Browse the repository at this point in the history
  • Loading branch information
imobachgs committed Feb 8, 2019
1 parent 519d0ed commit 908e43f
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 9 deletions.
3 changes: 2 additions & 1 deletion src/lib/y2configuration_management/clients/main.rb
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ def run
log.info("Provisioning Configuration Management")
config = Y2ConfigurationManagement::Configurations::Base.import(settings)
configurator = Y2ConfigurationManagement::Configurators::Base.for(config)
return :abort unless configurator.prepare
ret = configurator.prepare
return ret unless ret == :finish
if !Yast::PackageSystem.CheckAndInstallPackages(configurator.packages.fetch("install", []))
return :abort
end
Expand Down
4 changes: 4 additions & 0 deletions src/lib/y2configuration_management/configurators/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,10 @@ def services
# in the given configurator.
#
# @param opts [Hash] Configurator options
# @return [Symbol] :finish when configuration was successful; :back when the user
# asked to go back and configuration did not finihed; :abort when configuration
# failed or was aborted.
#
# @see .mode
def prepare(opts = {})
::FileUtils.mkdir_p(config.work_dir) if mode?(:masterless)
Expand Down
8 changes: 6 additions & 2 deletions src/lib/y2configuration_management/configurators/puppet.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,18 @@ class Puppet < Base
PRIVATE_KEY_BASE_PATH = "/var/lib/puppet/ssl/private_keys".freeze
PUBLIC_KEY_BASE_PATH = "/var/lib/puppet/ssl/public_keys".freeze

# @return [Symbol] :finish when configuration was successful; :back when the user
# :abort when configuration failed or was aborted.
mode(:masterless) do |_opts|
update_configuration
fetch_config(config.modules_url, config.work_dir)
fetch_config(config.modules_url, config.work_dir) ? :finish : :abort
end

# @return [Symbol] :finish when configuration was successful; :abort when configuration failed
# or was aborted.
mode(:client) do |_opts|
update_configuration
fetch_keys(config.keys_url, private_key_path, public_key_path)
fetch_keys(config.keys_url, private_key_path, public_key_path) ? :finish : :abort
end

# List of packages to install
Expand Down
7 changes: 4 additions & 3 deletions src/lib/y2configuration_management/configurators/salt.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,18 @@ class Salt < Base
PRIVATE_KEY_PATH = "/etc/salt/pki/minion/minion.pem".freeze
PUBLIC_KEY_PATH = "/etc/salt/pki/minion/minion.pub".freeze

# @see Base#prepare
mode(:masterless) do |reverse: false|
fetch_config(config.states_url, config.work_dir) if config.states_url
fetch_config(config.pillar_url, config.pillar_root) if config.pillar_url
update_configuration
sequence = Y2ConfigurationManagement::Salt::FormulaSequence.new(config, reverse: reverse)
sequence.run == :finish
Y2ConfigurationManagement::Salt::FormulaSequence.new(config, reverse: reverse).run
end

# @see Base#prepare
mode(:client) do |_opts|
fetch_keys(config.keys_url, private_key_path, public_key_path)
update_configuration
update_configuration ? :finish : :abort
end

# List of packages to install
Expand Down
3 changes: 2 additions & 1 deletion src/lib/y2configuration_management/salt/formula_sequence.rb
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ def sequence_hash
START => reverse ? "configure_formulas" : "choose_formulas",
"choose_formulas" => {
abort: :abort,
next: "configure_formulas"
next: "configure_formulas",
back: :back
},
"configure_formulas" => {
cancel: "choose_formulas",
Expand Down
4 changes: 2 additions & 2 deletions test/y2configuration_management/clients/main_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
subject(:main) { described_class.new }

describe "#run" do
let(:prepared) { true }
let(:prepared) { :finish }
let(:config) do
{ "configuration_management" => { "type" => "salt" } }
end
Expand Down Expand Up @@ -106,7 +106,7 @@
end

context "when the formulas configuration is not prepared correctly" do
let(:prepared) { false }
let(:prepared) { :abort }

it "does not run the provisioner" do
expect(provision).not_to receive(:run)
Expand Down

0 comments on commit 908e43f

Please sign in to comment.