Hi,

the scoping of the class is indeed needed, but i believe that is a parser issue.

I did the test wit class { '::vim': version => '7.4' }

on my master with puppet master --compile <certname> i got following :

{
  "metadata": {
    "api_version": 1
  },
  "data": {
    "classes": [
      "settings",

     <snip>

     "vim",

    <snip>

And that is what you should check in your rspec file.

In your manifests, you need indeed the scoping, in your spec, you don't

hth

jo


On 04/06/14 21:56, Brian Wilkins wrote:
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] <mailto:[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 <https://groups.google.com/d/msgid/puppet-users/141ee867-2464-4187-9e55-5aab364c1700%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.


--
Johan De Wit

Open Source Consultant

Red Hat Certified Engineer              (805008667232363)
Puppet Certified Professional 2013/2014 (PCP0000006)
_________________________________________________________
Open-Future Phone +32 (0)2/255 70 70
Zavelstraat 72              Fax       +32 (0)2/255 70 71
3071 KORTENBERG             Mobile    +32 (0)474/42 40 73
BELGIUM                     http://www.open-future.be
_________________________________________________________

Next Events:
Puppet Advanced Training | 
https://www.open-future.be/puppet-advanced-training-10-till-12th-june
Puppet Introduction Course | 
https://www.open-future.be/puppet-introduction-course-13th-june
Linux Training | https://www.open-future.be/linux-training-16-till-20th-june
Subscribe to our newsletter | http://eepurl.com/BUG8H

--
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/538F89F2.20600%40open-future.be.
For more options, visit https://groups.google.com/d/optout.

Reply via email to