[chef] Re: Trouble with ntp-cookbook


Chronological Thread 
  • From: Arnold Krille < >
  • To:
  • Subject: [chef] Re: Trouble with ntp-cookbook
  • Date: Wed, 11 Dec 2013 14:40:39 +0100

Hi,

I haven't solved this but created a fork+branch at
https://github.com/kampfschlaefer/ntp/tree/spec_check_for_content

- Arnold

Am Wed, 11 Dec 2013 13:54:34 +0100 schrieb Arnold Krille
< >:
> I created a small wrapper-cookbook for the ntp-cookbook. This wrapper
> searches for non-virtual machines in the current environment that have
> the wrapper-cookbook applied. Then it uses these machines as peers for
> ntp if itself is a non-virtual machine or as servers for ntp if itself
> is a virtual machine. Works great except for some slight problem: The
> list of peers/servers is in the order the search returned the
> machines, which changes with each call. I tried to sort my resulting
> list, but still the lists in the ntp.conf are not ordered. And the
> ordering in the ntp.conf changes with almost every chef-client run,
> resulting in fcheck finding lots of changes.
> 
> So I took a quick hack and added ordering in the ntp.conf-template in
> the ntp-cookbook. Works nicely in reality but is untested.
> 
> So I tried to prepare a real patch for the ntp-cookbook with
> corresponding rspec-test. But when I try to check
> "create_file_with_content" I get an error:
> 
>  Failure/Error: expect(chef_run).to
>  create_file_with_content('/etc/ntp.conf', /.*Chef.*/)
>  Chef::Mixin::Template::TemplateError: undefined method `[]' for
>  nil:NilClass
> 
> And I don't know why that error is happening. It looks as if the rspec
> tests don't set all the attributes the template needs. But its only
> the default tests, so if that fails, either there is an error in
> chef/chefspec/tests or the cookbook wouldn't be able to run on any
> machine (without setting attributes). The later I doubt...
> 
> Anyway, what I did is patch spec/unit/recipes/default_spec.rb in the
> ntp-cookbook with:
> 
> diff --git a/spec/unit/recipes/default_spec.rb
> b/spec/unit/recipes/default_spec.rb index fa9b4f7..4e2ce71 100644
> --- a/spec/unit/recipes/default_spec.rb
> +++ b/spec/unit/recipes/default_spec.rb
> @@ -1,4 +1,5 @@
>  require 'spec_helper'
> +require 'chefspec'
>  
>  describe 'ntp::default' do
>    let(:chef_run)
> { ChefSpec::ChefRunner.new.converge('ntp::default') } @@ -69,6 +70,10
> @@ describe 'ntp::default' do expect(chef_run).to
> create_file('/etc/ntp.conf') end
>  
> +    it 'creates the template with peer content' do
> +      expect(chef_run).to
> create_file_with_content('/etc/ntp.conf', /.*Chef.*/)
> +    end
> +
>      it 'is owned by ntp:ntp' do
>        expect(template.owner).to eq('root')
>        expect(template.group).to eq('root')
> 
> Anybody got an idea? Anybody can reproduce my findings?
> 
> I use ruby-2.0.0-p247 and everything else according to the Gemfile of
> the ntp-cookbook.
> 
> Thanks in advance,
> - Arnold



Archive powered by MHonArc 2.6.16.

§