Class: Beaker::TestmodeSwitcher::BeakerAgentRunner
- Inherits:
-
BeakerRunnerBase
- Object
- RunnerBase
- BeakerRunnerBase
- Beaker::TestmodeSwitcher::BeakerAgentRunner
- Includes:
- MasterManipulator::Site
- Defined in:
- lib/beaker/testmode_switcher/beaker_runners.rb
Overview
All functionality specific to running in ‘agent’ mode
Instance Attribute Summary
Attributes inherited from BeakerRunnerBase
Instance Method Summary collapse
-
#execute_manifest(manifest, opts = {}) ⇒ Object
upload the manifest to the master and inject it into the site.pp then run a puppet agent on the default host.
-
#execute_manifest_on(hosts, manifest, opts = {}) ⇒ Object
upload the manifest to the master and inject it into the site.pp then run a puppet agent on all hosts.
Methods inherited from BeakerRunnerBase
#create_remote_file_ex, #initialize, #resource, #scp_to_ex, #shell_ex
Methods inherited from RunnerBase
#get_acceptable_puppet_run_exit_codes, #handle_puppet_run_returned_exit_code
Constructor Details
This class inherits a constructor from Beaker::TestmodeSwitcher::BeakerRunnerBase
Instance Method Details
#execute_manifest(manifest, opts = {}) ⇒ Object
upload the manifest to the master and inject it into the site.pp then run a puppet agent on the default host
74 75 76 |
# File 'lib/beaker/testmode_switcher/beaker_runners.rb', line 74 def execute_manifest(manifest, opts = {}) execute_manifest_on(default, manifest, opts) end |
#execute_manifest_on(hosts, manifest, opts = {}) ⇒ Object
upload the manifest to the master and inject it into the site.pp then run a puppet agent on all hosts
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/beaker/testmode_switcher/beaker_runners.rb', line 80 def execute_manifest_on(hosts, manifest, opts = {}) environment_base_path = on(master, puppet('config', 'print', 'environmentpath')).stdout.rstrip prod_env_site_pp_path = File.join(environment_base_path, 'production', 'manifests', 'site.pp') site_pp = create_site_pp(master, manifest: manifest) inject_site_pp(master, prod_env_site_pp_path, site_pp) cmd = ['agent', '--test', '--environment production', '--detailed-exitcodes'] cmd << "--debug" if opts[:debug] cmd << "--noop" if opts[:noop] cmd << "--trace" if opts[:trace] # acceptable_exit_codes are passed because we want detailed-exit-codes but want to # make our own assertions about the responses res = on(hosts, puppet(*cmd), dry_run: opts[:dry_run], environment: opts[:environment] || {}, acceptable_exit_codes: (0...256)) if res.is_a? Array res.each do |result| handle_puppet_run_returned_exit_code(get_acceptable_puppet_run_exit_codes(opts), result.exit_code) end else handle_puppet_run_returned_exit_code(get_acceptable_puppet_run_exit_codes(opts), res.exit_code) end res end |