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.
77 78 79 |
# File 'lib/chef/local_mode.rb', line 77 def self.chef_fs @chef_fs end |
.chef_zero_server ⇒ Object
Return the current chef-zero server set up by setup_server_connectivity.
72 73 74 |
# File 'lib/chef/local_mode.rb', line 72 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.
82 83 84 85 86 87 |
# File 'lib/chef/local_mode.rb', line 82 def self.destroy_server_connectivity if @chef_zero_server @chef_zero_server.stop @chef_zero_server = nil end end |
.parse_port(port) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/chef/local_mode.rb', line 89 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.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/chef/local_mode.rb', line 47 def self.setup_server_connectivity if Chef::Config.chef_zero.enabled destroy_server_connectivity require 'chef_zero/server' require 'chef/chef_fs/chef_fs_data_store' require 'chef/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 [:host] = Chef::Config.chef_zero.host [:port] = parse_port(Chef::Config.chef_zero.port) @chef_zero_server = ChefZero::Server.new() @chef_zero_server.start_background Chef::Log.info("Started chef-zero at #{@chef_zero_server.url} with #{@chef_fs.fs_description}") Chef::Config.chef_server_url = @chef_zero_server.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
35 36 37 38 39 40 41 42 |
# File 'lib/chef/local_mode.rb', line 35 def self.with_server_connectivity setup_server_connectivity begin yield ensure destroy_server_connectivity end end |