2015-11-08 2 views
0

J'ai quelques tests d'acceptation beaker-rspec couvrant un module Puppet que je crée, et je voudrais savoir comment activer la journalisation de débogage sur les appels Puppet sous-jacents (par exemple, savoir exactement ce qui se passe quand je appelez le apply_manifest). Je suis assez sûr que j'ai été capable d'obtenir la notation de débogage fonctionnant sur Beaker lui-même (export BEAKER_debug=yes?), Mais cela semble seulement me dire ce que fait Beaker, pas nécessairement Puppet.Comment activer le niveau de journalisation de débogage de Puppet de Beaker

Si elle aide, voici quelques extraits de fichiers pertinents:

spec/fixtures/spec_helper_acceptance.rb

require 'beaker-rspec/spec_helper' 
require 'beaker-rspec/helpers/serverspec' 
require 'beaker/librarian' 

RSpec.configure do |c| 
    module_root = File.expand_path(File.join(File.dirname(__FILE__), '..')) 

    c.formatter = :documentation 

    # Configure all nodes in nodeset 
    c.before :suite do 
    install_puppet 
    install_librarian 
    librarian_install_modules(module_root, 'mymodule') 
    end 
end 

spec/acceptance/example_spec.rb

require 'spec_helper_acceptance' 

apply_manifest_opts = { 
    :catch_failures => true, 
    # I seem to need this otherwise Puppet doesn't pick up the required modules. 
    # Is this where I can also enable debug logging in Puppet? 
    :modulepath  => '/etc/puppetlabs/puppet/modules/', 
} 

default_pp = <<-EOS 
    class { 'mymodule': } 
EOS 

describe 'the mymodule class' do 
    describe 'given default params' do 
    it 'should return successfully' do 
     expect(apply_manifest(default_pp, apply_manifest_opts).exit_code).to be_zero 
    end 
    end 
end 

J'essaie vraiment de comprendre pourquoi le test échoue the mymodule class given default params should return successfully, mais pour l'instant je reçois seulement

Failure/Error: expect(apply_manifest(default_pp, apply_manifest_opts).exit_code).to be_zero 
     expected `2.zero?` to return true, got false 

ce qui n'est pas très utile. Voyez-vous mon problème?

Je vais accepter les réponses qui répondent à ma question directement, ou donnez-moi un autre moyen de calculer pourquoi le code de sortie est différent de zéro.

Répondre

0

J'avais raison sur mon intuition qu'il fallait juste une option supplémentaire fournie à apply_manifest. Il m'a juste fallu un certain temps pour déterminer exactement où la documentation était sur la façon de le faire.

apply_manifest_opts = { 
    :catch_failures => true, 
    # I seem to need this otherwise Puppet doesn't pick up the required modules. 
    :modulepath  => '/etc/puppetlabs/puppet/modules/', 
    :debug   => true, 
} 

Source:

http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#apply_manifest_on-instance_method