Class: Chef::Provisioning::ConvergenceStrategy::InstallMsi
- Inherits:
-
PrecreateChefObjects
- Object
- Chef::Provisioning::ConvergenceStrategy
- PrecreateChefObjects
- Chef::Provisioning::ConvergenceStrategy::InstallMsi
- Defined in:
- lib/chef/provisioning/convergence_strategy/install_msi.rb
Instance Attribute Summary collapse
-
#chef_version ⇒ Object
readonly
Returns the value of attribute chef_version.
-
#install_msi_path ⇒ Object
readonly
Returns the value of attribute install_msi_path.
-
#install_msi_url ⇒ Object
readonly
Returns the value of attribute install_msi_url.
-
#prerelease ⇒ Object
readonly
Returns the value of attribute prerelease.
Attributes inherited from Chef::Provisioning::ConvergenceStrategy
Instance Method Summary collapse
- #converge(action_handler, machine) ⇒ Object
-
#initialize(convergence_options, config) ⇒ InstallMsi
constructor
A new instance of InstallMsi.
- #setup_convergence(action_handler, machine) ⇒ Object
Methods inherited from PrecreateChefObjects
#chef_server, #cleanup_convergence
Methods inherited from Chef::Provisioning::ConvergenceStrategy
Constructor Details
#initialize(convergence_options, config) ⇒ InstallMsi
Returns a new instance of InstallMsi.
9 10 11 12 13 14 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 9 def initialize(, config) super @chef_version ||= [:chef_version] @prerelease ||= [:prerelease] @chef_client_timeout = .has_key?(:chef_client_timeout) ? [:chef_client_timeout] : 120*60 # Default: 2 hours end |
Instance Attribute Details
#chef_version ⇒ Object (readonly)
Returns the value of attribute chef_version.
16 17 18 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 16 def chef_version @chef_version end |
#install_msi_path ⇒ Object (readonly)
Returns the value of attribute install_msi_path.
19 20 21 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 19 def install_msi_path @install_msi_path end |
#install_msi_url ⇒ Object (readonly)
Returns the value of attribute install_msi_url.
18 19 20 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 18 def install_msi_url @install_msi_url end |
#prerelease ⇒ Object (readonly)
Returns the value of attribute prerelease.
17 18 19 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 17 def prerelease @prerelease end |
Instance Method Details
#converge(action_handler, machine) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 42 def converge(action_handler, machine) super action_handler.open_stream(machine.node['name']) do |stdout| action_handler.open_stream(machine.node['name']) do |stderr| command_line = "chef-client" command_line << " -l #{config[:log_level].to_s}" if config[:log_level] machine.execute(action_handler, command_line, :stream_stdout => stdout, :stream_stderr => stderr, :timeout => @chef_client_timeout) end end end |
#setup_convergence(action_handler, machine) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 21 def setup_convergence(action_handler, machine) if !.has_key?(:client_rb_path) || !.has_key?(:client_pem_path) system_drive = machine.execute_always('$env:SystemDrive').stdout.strip = Cheffish::MergedConfig.new(, { :client_rb_path => "#{system_drive}\\chef\\client.rb", :client_pem_path => "#{system_drive}\\chef\\client.pem" }) end opts = {"prerelease" => prerelease} if [:bootstrap_proxy] opts["http_proxy"] = [:bootstrap_proxy] opts["https_proxy"] = [:bootstrap_proxy] end opts["install_msi_url"] = [:install_msi_url] if [:install_msi_url] super install_command = Mixlib::Install.new(chef_version, true, opts).install_command machine.execute(action_handler, install_command) end |