rspec-puppet: не удается найти требуемый класс - PullRequest
0 голосов
/ 25 мая 2018

Итак, у меня есть полностью функциональный класс 'ldap'.

Теперь я хочу сделать кое-что для определенных пользователей в моем каталоге ldap.

Я делаю это в новых 'users'модуль, сначала создав новый определенный_тип:

define users::admin (
  String $sshkey
) {

  file {"/home/${title}":
    ensure => directory,
    owner => $title,
    group => 'root',
    require => Class['ldap']
  }
  ...
}

Затем я использую этот определенный тип в файле init.pp моего модуля 'пользователя':

class users {
  users::admin {'ldt':
    sshkey => 'mysshkey',
  }
}

Но когда я пытаюсь использовать 'pdk test unit 'на этом я получаю следующую ошибку:

failed: rspec: ./spec/classes/users_spec.rb:8: error during compilation:
Could not find resource 'Class[Ldap]' in parameter 'require'
(file: ~/Projects/puppet/modules/users/spec/fixtures/modules/users
/manifests/admin.pp, line: 15) on node <mycomputer>

Ради полноты, вот мой admin_spec.rb (едва измененный по умолчанию из pdk):

require 'spec_helper'

describe 'users::admin' do
  let(:title) { 'namevar' }
  let(:params) do
    {
      'sshkey' => ''
    }
  end

  on_supported_os.each do |os, os_facts|
    context "on #{os}" do
      let(:facts) { os_facts }

      it { is_expected.to compile }
    end
  end
end

Iпопытался настроить мой .fixtures.yml следующим образом, но это не помогло:

fixtures:
  symlinks:
    ldap: "#{source_dir}"

Есть идеи о том, что я делаю неправильно?

РЕДАКТИРОВАТЬ: изменил мой .fictures.ymlto:

fixtures:
  symlinks:
    ldap: "#{source_dir}/../ldap"

Черт, я даже вручную добавил символическую ссылку на мой модуль ldap в папках spec / fixtures / modules.Все та же ошибка.

1 Ответ

0 голосов
/ 28 мая 2018

Таким образом, оказывается, что ошибка не имела никакого отношения к rspec или чему-либо еще.

Мне просто нужно было "включить ldap" в мой фактический код куклы.

...