module Chef::DSL::Recipe
Public Instance Methods
get_private_key(name)
click to toggle source
# File lib/cheffish/recipe_dsl.rb, line 91 def get_private_key(name) Cheffish.get_private_key(name, run_context.config) end
with_chef_data_bag(name)
click to toggle source
# File lib/cheffish/recipe_dsl.rb, line 32 def with_chef_data_bag(name) run_context.cheffish.with_data_bag(name, &block) end
with_chef_data_bag_item_encryption(encryption_options, &block)
click to toggle source
# File lib/cheffish/recipe_dsl.rb, line 40 def with_chef_data_bag_item_encryption(encryption_options, &block) run_context.cheffish.with_data_bag_item_encryption(encryption_options, &block) end
with_chef_environment(name, &block)
click to toggle source
# File lib/cheffish/recipe_dsl.rb, line 36 def with_chef_environment(name, &block) run_context.cheffish.with_environment(name, &block) end
with_chef_local_server(options, &block)
click to toggle source
# File lib/cheffish/recipe_dsl.rb, line 48 def with_chef_local_server(options, &block) options[:host] ||= "127.0.0.1" options[:log_level] ||= Chef::Log.level options[:port] ||= ChefZero::VERSION.to_f >= 2.2 ? 8901.upto(9900) : 8901 # Create the data store chef-zero will use options[:data_store] ||= begin unless options[:chef_repo_path] raise "chef_repo_path must be specified to with_chef_local_server" end # Ensure all paths are given %w{acl client cookbook container data_bag environment group node role}.each do |type| # Set the options as symbol keys and then copy to string keys string_key = "#{type}_path" symbol_key = "#{type}_path".to_sym options[symbol_key] ||= if options[:chef_repo_path].is_a?(String) Chef::Util::PathHelper.join(options[:chef_repo_path], "#{type}s") else options[:chef_repo_path].map { |path| Chef::Util::PathHelper.join(path, "#{type}s") } end # Copy over to string keys for things that use string keys (ChefFS)... # TODO: Fix ChefFS to take symbols or use something that is insensitive to the difference options[string_key] = options[symbol_key] end chef_fs = Chef::ChefFS::Config.new(options).local_fs chef_fs.write_pretty_json = true Chef::ChefFS::ChefFSDataStore.new(chef_fs) end # Start the chef-zero server Chef::Log.info("Starting chef-zero on port #{options[:port]} with repository at #{options[:data_store].chef_fs.fs_description}") chef_zero_server = ChefZero::Server.new(options) chef_zero_server.start_background run_context.cheffish.local_servers << chef_zero_server with_chef_server(chef_zero_server.url, &block) end
with_chef_server(server_url, options = {}, &block)
click to toggle source
# File lib/cheffish/recipe_dsl.rb, line 44 def with_chef_server(server_url, options = {}, &block) run_context.cheffish.with_chef_server({ chef_server_url: server_url, options: options }, &block) end