lib/kitchen/provisioner/nodes.rb in kitchen-nodes-0.5.0 vs lib/kitchen/provisioner/nodes.rb in kitchen-nodes-0.6.0
- old
+ new
@@ -17,11 +17,13 @@
# limitations under the License.
require 'kitchen'
require 'kitchen/provisioner/chef_zero'
require 'kitchen/provisioner/finder'
+require 'kitchen/provisioner/run_list_expansion_from_kitchen'
require 'net/ping'
+require 'chef/run_list'
module Kitchen
module Provisioner
# Nodes provisioner for Kitchen.
#
@@ -67,30 +69,46 @@
rescue
nil
end
end
+ def recipes
+ rl = config[:run_list].map do |item|
+ ::Chef::RunList::RunListItem.new item
+ end
+ rle = RunListExpansionFromKitchen.new(
+ chef_environment,
+ rl,
+ config[:roles_path]
+ )
+ rle.expand
+ rle.recipes
+ end
+
def chef_environment
env = '_default'
if config[:client_rb] && config[:client_rb][:environment]
env = config[:client_rb][:environment]
end
env
end
+ # rubocop:disable Metrics/AbcSize
def node_template
{
id: instance.name,
chef_environment: chef_environment,
automatic: {
ipaddress: ipaddress,
platform: instance.platform.name.split('-')[0].downcase,
- fqdn: fqdn
+ fqdn: fqdn,
+ recipes: recipes
},
normal: config[:attributes],
run_list: config[:run_list]
}
end
+ # rubocop:enable Metrics/AbcSize
def node_dir
File.join(config[:test_base_path], 'nodes')
end