通过hiera调用其他类不在rspec-puppet中工作

时间:2015-08-20 11:25:57

标签: rspec puppet

使用rspec-puppet for hiera_hash

时遇到问题

以下是第一个例子

class users {

  include users::example1
  }

class users::example1 {

 $abc = {
    'example1' => {
      'ensure'   => 'present',
      'shell'    => '/usr/bin/ksh',
      'home'     => '/home/example1',
      password'  => 'xxxxxxxx',
      'mode'     => '0700',
    }
  }
  create_resources('users::example1',$abc)
}

我为此写了rspec,请在下面找到

require 'spec_helper'

describe 'users', :type => 'class' do

  it { should contain_class('users::example1')}
end

它没有任何问题

以下是第二个例子

class env {
      include env::filetype
    }

class env::filetype {

  $tmp = hiera_hash('env::abc')
  create_resources('logical::myfile, $tmp)
}

我在运行清单时遇到错误

Failures:

  1) env should contain Class[env::filetype]
     Failure/Error: it { should contain_class('env::filetype')}
     Puppet::Error:
       Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type logical::myfile at /etc//puppet/modules/env/spec/fixtures/modules/env/manifests/filetype.pp:7 on node 
     # ./spec/classes/env_spec.rb:5

Finished in 0.20231 secondsI 1 example, 1 failure

所以,我的疑问是rspec-puppet测试用例hiera将在同一个模块中工作,如果我们调用任何其他类来传递hiera中的数据,那么它将不支持rspec-puppet。

如果是这样,我们如何能够实现rspec-puppet

1 个答案:

答案 0 :(得分:0)

错误非常具体:

ArgumentError: Invalid resource type logical::myfile at /etc//puppet/modules/env/spec/fixtures/modules/env/manifests/filetype.pp:7

这可能意味着logical模块不可用于rspec-puppet。确保模块是测试套件固定装置的一部分。