Vincent Miszczak
2014-Aug-20 11:04 UTC
[Puppet Users] "require" broken with create_resources() ?
Hello,
I have a define like this :
define application::install($root,$url,$user="root")
{
include git
#Puppet wants a command to start with /something...
$cmd="/bin/echo 1&&{ cd $root||mkdir $root&&cd $root ;
}&&git clone -b
prod $url ."
$unless="/bin/ls -alh $root |grep '.git'"
exec{"$cmd":
command=>$cmd,
unless=>$unless,
user=>$user,
require=>Package["git"]
}
}
being called with a class :
class applications($apps)
{
create_resources(application::install,$apps)
}
and
$apps = {
test => {
url=> "https://mygitrepos/myapp.git",
root=> "/opt/apps/myapp",
user=>"root",
require=>Class[myclass],
}
}
class "myclass" is included by some other module
I get :
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
Invalid relationship: Application::Install[test] { require =>
Class[myclass] }, because Class[myclass] doesn't seem to be in the catalog
but the class *is* really included.
For instance, if I do not require in $apps but require in the exec{}, it
will work just fine. Ofc I won't do this because I need things to be
dynamic.
Expected behavior is it should work, unless I missed something.
Any help welcome.
--
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 puppet-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/4a25b0c0-64a6-4b4d-bdd6-cf13a0ed5738%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.