It is needed to disambiguate from profiles::logstash and just logstash
classes. If I remove it, then it will complain that logstash is already
loaded when it tries to load profiles::logstash.
On Wednesday, June 4, 2014 3:52:01 PM UTC-4, Garrett Honeycutt wrote:
>
> On 6/4/14, 3:13 PM, Brian Wilkins wrote:
> > I think you missed the part where it is complaining about line 10 in my
> > profiles::logstash::install module
> >
> > class { '::logstash':
> >
> > Removing ::logstash from the spec file has the same complaint.
> >
> > Brian
> >
> > On Wednesday, June 4, 2014 3:11:14 PM UTC-4, Garrett Honeycutt wrote:
> >
> > On 6/4/14, 2:30 PM, Brian Wilkins wrote:
> > > I am trying to write unit tests of my puppet modules. In my
> > > profiles::logstash::install, I disambiguate the call to
> > > /etc/puppet/modules/logstash by using ::logstash in my class
> > definition
> > > like so:
> > >
> > > class profiles::logstash::install() {
> > > $ensure = $profiles::logstash::enable ? {true => present,
> > default =>
> > > absent}
> > > $status = $profiles::logstash::start ? {true => enabled, default
> =>
> > > disabled}
> > >
> > > class { '::logstash':
> > > ensure => $ensure,
> > > status => $status,
> > > version => $profiles::logstash::version
> > > }
> > > }
> > >
> > > However, when I run my spec file:
> > >
> > > require 'spec_helper'
> > >
> > > describe "profiles::logstash" do
> > > it { should contain_class("::logstash") }
> > > it { should contain_class("profiles::logstash::install") }
> > > it { should contain_class("profiles::logstash::config") }
> > > end
> > >
> > > I get the errors:
> > >
> > > 1) profiles::logstash
> > > Failure/Error: it { should contain_class("::logstash") }
> > > Puppet::Error:
> > > Puppet::Parser::AST::Resource failed with error
> ArgumentError:
> > > Could not find declared class ::logstash at
> > >
> >
> /etc/puppet/modules/profiles/spec/fixtures/modules/profiles/manifests/logstash/install.pp:10
>
>
> >
> > > on node els4167.els.dev
> > > # ./spec/classes/logstash_spec.rb:4
> > >
> > > 2) profiles::logstash
> > > Failure/Error: it { should
> > > contain_class("profiles::logstash::install") }
> > > Puppet::Error:
> > > Puppet::Parser::AST::Resource failed with error
> ArgumentError:
> > > Could not find declared class ::logstash at
> > >
> >
> /etc/puppet/modules/profiles/spec/fixtures/modules/profiles/manifests/logstash/install.pp:10
>
>
> >
> > > on node els4167.els.dev
> > > # ./spec/classes/logstash_spec.rb:5
> > >
> > > 3) profiles::logstash
> > > Failure/Error: it { should
> > > contain_class("profiles::logstash::config") }
> > > Puppet::Error:
> > > Puppet::Parser::AST::Resource failed with error
> ArgumentError:
> > > Could not find declared class ::logstash at
> > >
> >
> /etc/puppet/modules/profiles/spec/fixtures/modules/profiles/manifests/logstash/install.pp:10
>
>
> >
> > > on node els4167.els.dev
> > > # ./spec/classes/logstash_spec.rb:6
> > >
> > > How do I get rspec to find my class /etc/puppet/modules/logstash
> > and get
> > > it to reference ::logstash as a disambiguation?
> >
> > Hi Brian,
> >
> > Using ::class is not needed and should not be done. If you still
> > want to
> > do that in your class, try changing the spec by dropping the
> preceding
> > double colons.
> >
> > Best regards,
> > -g
> >
> > --
> > Garrett Honeycutt
> > @learnpuppet
> > Puppet Training with LearnPuppet.com
> > Mobile: +1.206.414.8658
> >
>
> Hi Brian,
>
> Recommend dropping the preceding double colons all around. It is not
> needed at all.
>
> Br,
> -g
>
>
>
> --
> Garrett Honeycutt
> @learnpuppet
> Puppet Training with LearnPuppet.com
> Mobile: +1.206.414.8658
>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/141ee867-2464-4187-9e55-5aab364c1700%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.