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.
94 95 96 |
# File 'lib/chef/local_mode.rb', line 94 def self.chef_fs @chef_fs end |
.chef_zero_server ⇒ Object
Return the current chef-zero server set up by setup_server_connectivity.
89 90 91 |
# File 'lib/chef/local_mode.rb', line 89 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.
99 100 101 102 103 104 |
# File 'lib/chef/local_mode.rb', line 99 def self.destroy_server_connectivity if @chef_zero_server @chef_zero_server.stop @chef_zero_server = nil end end |
.parse_port(port) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/chef/local_mode.rb', line 106 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.
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 86 |
# File 'lib/chef/local_mode.rb', line 53 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 [: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_zero_server.start_background else @chef_zero_server.start_socketless end local_mode_url = @chef_zero_server.local_mode_url Chef::Log.info("Started chef-zero 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
41 42 43 44 45 46 47 48 |
# File 'lib/chef/local_mode.rb', line 41 def self.with_server_connectivity setup_server_connectivity begin yield ensure destroy_server_connectivity end end |