diff options
author | danielsdeleo <dan@chef.io> | 2015-09-14 17:25:56 -0700 |
---|---|---|
committer | danielsdeleo <dan@chef.io> | 2015-09-17 14:29:49 -0700 |
commit | e441d37d36eedbd73b37166f982536b8702ff4fb (patch) | |
tree | b6f0c06ca7d10c5c5329ab43f4c878953d281540 /lib/chef/policy_builder | |
parent | 2890a01b06d7b341d8483f946eee788063baecc9 (diff) | |
download | chef-e441d37d36eedbd73b37166f982536b8702ff4fb.tar.gz |
Set the precedence of policyfile attrs and propagate them everywhere
Diffstat (limited to 'lib/chef/policy_builder')
-rw-r--r-- | lib/chef/policy_builder/policyfile.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/chef/policy_builder/policyfile.rb b/lib/chef/policy_builder/policyfile.rb index 5bcdd5f52f..ef3b7838cb 100644 --- a/lib/chef/policy_builder/policyfile.rb +++ b/lib/chef/policy_builder/policyfile.rb @@ -114,6 +114,7 @@ class Chef def finish_load_node(node) @node = node + select_policy_name_and_group validate_policyfile events.policyfile_loaded(policy) end @@ -295,6 +296,48 @@ class Chef Chef::Config[:policy_name] end + def select_policy_name_and_group + policy_name_to_set = + policy_name_from_json_attribs || + policy_name_from_config || + policy_name_from_node + + policy_group_to_set = + policy_group_from_json_attribs || + policy_group_from_config || + policy_group_from_node + + node.policy_name = policy_name_to_set + node.policy_group = policy_group_to_set + + Chef::Config[:policy_name] = policy_name_to_set + Chef::Config[:policy_group] = policy_group_to_set + end + + def policy_group_from_json_attribs + json_attribs["policy_group"] + end + + def policy_name_from_json_attribs + json_attribs["policy_name"] + end + + def policy_group_from_config + Chef::Config[:policy_group] + end + + def policy_name_from_config + Chef::Config[:policy_name] + end + + def policy_group_from_node + node.policy_group + end + + def policy_name_from_node + node.policy_name + end + # Builds a 'cookbook_hash' map of the form # "COOKBOOK_NAME" => "IDENTIFIER" # |