Why does rspec puppet that_requires matcher fail?

85 views
Skip to first unread message

Haani Niyaz

unread,
Dec 14, 2015, 5:32:53 PM12/14/15
to Puppet Users
Puppet code:

# manifests/splunk/service.pp
class tpp::splunk::service
 exec { 'splunk-accept-license':
      command
=> '/opt/splunkforwarder/bin/splunk enable boot-start --accept-license --answer-yes --no-prompt',
      creates
=> '/etc/init.d/splunk',
      before  
=> Service['splunk'],
     
require => Class['splunk::install'],
   
}

...
}




The following rspec test works with require as shown below:

 it { is_expected.to contain_exec('splunk-accept-license')
     
.with(
       
'command' => '/opt/splunkforwarder/bin/splunk enable boot-start --accept-license --answer-yes --no-prompt',
       
'creates' => '/etc/init.d/splunk',
       
'require' => 'Class[Tpp::Splunk::Install]',
     
)}

However if I use the that_requires matcher it fails:

  it { should contain_exec('splunk-accept-license')
     
.that_requires('Class[Tpp::Splunk::Install]')
   
}


Can someone shed some light as to why this might be the case?

Thanks.

Haani Niyaz

unread,
Dec 14, 2015, 8:50:31 PM12/14/15
to Puppet Users
Forgot to add the error!

  1) tpp::splunk::service when tpp is installed should contain Exec[splunk-accept-license] that requires Class[tpp::Splunk::Install]



     
Failure/Error: it { should contain_exec('splunk-accept-license').that_requires('Class[tpp::Splunk::Install]')}

       expected that the catalogue would contain
Exec[splunk-accept-license] with that requires Class[tpp::Splunk::Install]

     
# ./spec/classes/splunk/service_spec.rb:28:in `block (3 levels) in <top (required)>'



Lowe Schmidt

unread,
Jan 4, 2016, 7:31:40 AM1/4/16
to puppet...@googlegroups.com
you depend on Class['splunk::install'] not Class['tpp::splunk::install'].

check your manifest.

--
Lowe Schmidt | +46 723 867 157

--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/72a6385e-96df-4775-964d-8bb8a15698b2%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Haani Niyaz

unread,
Jan 4, 2016, 10:05:19 PM1/4/16
to Puppet Users
It is not the source of the problem. I discovered the following before posting the issue. If I removed Tpp in the require dependency as below:

it { is_expected.to contain_exec('splunk-accept-license')
     
.with(
       
'command' => '/opt/splunkforwarder/bin/splunk enable boot-start --accept-license --answer-yes --no-prompt',
       
'creates' => '/etc/init.d/splunk',

       
'require' => 'Class[Splunk::Install]',
     
)}

I get the following error:
 expected that the catalogue would contain Exec[splunk-accept-license] with require set to "Class[Splunk::Install]" but it is set to Class[Tpp::Splunk::Install]{:name=>"Tpp::Splunk::Install"}



But works if added as in my original post.
Reply all
Reply to author
Forward
0 new messages