More adjustments

- Use the generated_by() utility function to
  give the ruby template a better header comment
- Set special parameters after selecting the basic
  chef parameters.
This commit is contained in:
Joshua Harlow 2014-10-11 16:59:50 -07:00
parent d40f2a152a
commit 4b53ce5e10
3 changed files with 31 additions and 11 deletions

View File

@ -79,13 +79,6 @@ def is_installed():
def get_template_params(iid, chef_cfg, log): def get_template_params(iid, chef_cfg, log):
params = CHEF_RB_TPL_DEFAULTS.copy() params = CHEF_RB_TPL_DEFAULTS.copy()
params.update({
'server_url': chef_cfg['server_url'],
'node_name': util.get_cfg_option_str(chef_cfg, 'node_name', iid),
'environment': util.get_cfg_option_str(chef_cfg, 'environment',
'_default'),
'validation_name': chef_cfg['validation_name'],
})
# Allow users to overwrite any of the keys they want (if they so choose), # Allow users to overwrite any of the keys they want (if they so choose),
# when a value is None, then the value will be set to None and no boolean # when a value is None, then the value will be set to None and no boolean
# or string version will be populated... # or string version will be populated...
@ -101,7 +94,17 @@ def get_template_params(iid, chef_cfg, log):
params[k] = util.get_cfg_option_bool(chef_cfg, k) params[k] = util.get_cfg_option_bool(chef_cfg, k)
else: else:
params[k] = util.get_cfg_option_str(chef_cfg, k) params[k] = util.get_cfg_option_str(chef_cfg, k)
params['generated_on'] = datetime.now().isoformat() # These ones are overwritten to be exact values...
params.update({
'generated_by': util.make_header(),
'server_url': util.get_cfg_option_str(chef_cfg, 'server_url'),
'node_name': util.get_cfg_option_str(chef_cfg, 'node_name',
default=iid),
'environment': util.get_cfg_option_str(chef_cfg, 'environment',
default='_default'),
'validation_name': util.get_cfg_option_str(chef_cfg,
'validation_name'),
})
return params return params

View File

@ -9,12 +9,11 @@ you need to add the following to config:
validation_name: XYZ validation_name: XYZ
server_url: XYZ server_url: XYZ
-#} -#}
{{generated_by}}
{# {#
The reason these are not in quotes is because they are ruby The reason these are not in quotes is because they are ruby
symbols that will be placed inside here, and not actual strings... symbols that will be placed inside here, and not actual strings...
#} #}
# This is a generated file, created on {{generated_on}}.
{% if log_level %} {% if log_level %}
log_level {{log_level}} log_level {{log_level}}
{% endif %} {% endif %}

View File

@ -1,5 +1,5 @@
import os
import json import json
import os
from cloudinit.config import cc_chef from cloudinit.config import cc_chef
@ -38,6 +38,24 @@ class TestChef(t_help.FilesystemMockingTestCase):
self.assertFalse(os.path.isdir(d)) self.assertFalse(os.path.isdir(d))
def test_basic_config(self): def test_basic_config(self):
# This should create a file of the format...
"""
# Created by cloud-init v. 0.7.6 on Sat, 11 Oct 2014 23:57:21 +0000
log_level :info
ssl_verify_mode :verify_none
log_location "/var/log/chef/client.log"
validation_client_name "bob"
validation_key "/etc/chef/validation.pem"
client_key "/etc/chef/client.pem"
chef_server_url "localhost"
environment "_default"
node_name "iid-datasource-none"
json_attribs "/etc/chef/firstboot.json"
file_cache_path "/var/cache/chef"
file_backup_path "/var/backups/chef"
pid_file "/var/run/chef/client.pid"
Chef::Log::Formatter.show_time = true
"""
tpl_file = util.load_file('templates/chef_client.rb.tmpl') tpl_file = util.load_file('templates/chef_client.rb.tmpl')
self.patchUtils(self.tmp) self.patchUtils(self.tmp)
self.patchOS(self.tmp) self.patchOS(self.tmp)