Hi, I have create the following module:
modules/foo `-- manifests |-- definitions | `-- line.pp `-- init.pp $ cat modules/foo/manifests/init.pp import "definitions/*.pp" $ cat modules/foo/manifests/definitions/line.pp define myline($file, $line, $ensure = 'present') { .... } I try to use the definition in a class: class testfile { file { "/tmp/testfile": ensure => present, } myline { test: file => "/tmp/testfile", line => "# This is a test", ensure => present, } } Now, if I do a catalog run on a fresh client, it errors out like this: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type myline at /etc/puppet/manifests/classes/testfile.pp:7 on node martijn. However, if I first do a run /without/ the 'testfile' class included for the node, and then re-enable it, everything is fine, and the class/define do everything they're supposed to do. Is the way I am trying to do things supposed to work? What is the reason that this doesn't work? Is it an issue with loading order? How can I ensure that the module is loaded/available before the 'testfile' class is evaluated? Thanks, Martijn.
smime.p7s
Description: S/MIME Cryptographic Signature