Module: Chef::LocalMode
- Defined in:
- lib/chef/local_mode.rb
Class Method Summary collapse
-
.chef_fs ⇒ Object
Return the chef_fs object for the current chef-zero server.
-
.chef_zero_server ⇒ Object
Return the current chef-zero server set up by setup_server_connectivity.
-
.destroy_server_connectivity ⇒ Object
If chef_zero_server is non-nil, stop it and remove references to it.
- .parse_port(port) ⇒ Object
-
.setup_server_connectivity ⇒ Object
If Chef::Config.chef_zero.enabled is true, sets up a chef-zero server according to the Chef::Config.chef_zero and path options, and sets chef_server_url to point at it.
-
.with_server_connectivity ⇒ Object
Create a chef local server (if the configuration requires one) for the duration of the given block.
Class Method Details
.chef_fs ⇒ Object
Return the chef_fs object for the current chef-zero server.
93 94 95 |
# File 'lib/chef/local_mode.rb', line 93 def self.chef_fs @chef_fs end |
.chef_zero_server ⇒ Object
Return the current chef-zero server set up by setup_server_connectivity.
88 89 90 |
# File 'lib/chef/local_mode.rb', line 88 def self.chef_zero_server @chef_zero_server end |
.destroy_server_connectivity ⇒ Object
If chef_zero_server is non-nil, stop it and remove references to it.
98 99 100 101 102 103 |
# File 'lib/chef/local_mode.rb', line 98 def self.destroy_server_connectivity if @chef_zero_server @chef_zero_server.stop @chef_zero_server = nil end end |
.parse_port(port) ⇒ Object
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/chef/local_mode.rb', line 105 def self.parse_port(port) if port.is_a?(String) parts = port.split(",") if parts.size == 1 a, b = parts[0].split("-", 2) if b a.to_i.upto(b.to_i) else [ a.to_i ] end else array = [] parts.each do |part| array += parse_port(part).to_a end array end else port end end |
.setup_server_connectivity ⇒ Object
If Chef::Config.chef_zero.enabled is true, sets up a chef-zero server according to the Chef::Config.chef_zero and path options, and sets chef_server_url to point at it.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/chef/local_mode.rb', line 51 def self.setup_server_connectivity if Chef::Config.chef_zero.enabled destroy_server_connectivity require "chef_zero/server" require_relative "chef_fs/chef_fs_data_store" require_relative "chef_fs/config" @chef_fs = Chef::ChefFS::Config.new.local_fs @chef_fs.write_pretty_json = true data_store = Chef::ChefFS::ChefFSDataStore.new(@chef_fs) data_store = ChefZero::DataStore::V1ToV2Adapter.new(data_store, "chef") = {} [:data_store] = data_store [:log_level] = Chef::Log.level [:osc_compat] = Chef::Config.chef_zero.osc_compat [:single_org] = Chef::Config.chef_zero.single_org [:host] = Chef::Config.chef_zero.host [:port] = parse_port(Chef::Config.chef_zero.port) @chef_zero_server = ChefZero::Server.new() if Chef::Config[:listen] Chef.deprecated(:local_listen, "Starting local-mode server in deprecated socket mode") @chef_zero_server.start_background else @chef_zero_server.start_socketless end local_mode_url = @chef_zero_server.local_mode_url Chef::Log.info("Started #{ChefUtils::Dist::Zero::PRODUCT} at #{local_mode_url} with #{@chef_fs.fs_description}") Chef::Config.chef_server_url = local_mode_url end end |
.with_server_connectivity ⇒ Object
Create a chef local server (if the configuration requires one) for the duration of the given block.
# This ...
with_server_connectivity { stuff }
# Is exactly equivalent to this ...
Chef::LocalMode.setup_server_connectivity
begin
stuff
ensure
Chef::LocalMode.destroy_server_connectivity
end
39 40 41 42 43 44 45 46 |
# File 'lib/chef/local_mode.rb', line 39 def self.with_server_connectivity setup_server_connectivity begin yield ensure destroy_server_connectivity end end |