Issue #16187 has been updated by Luke Kanies.

You'd definitely have to compile the catalog for all dependent hosts, but you 
basically need to do that anyway.  Either you've compiled it, and you know 
there's a dependency and you can actually build your service, or you haven't 
compiled it, so you don't know the dependency exists or the service can't 
build.  You don't need to do it all at the same time, but you at least have to 
have them all be recent enough.

It's that "wait an infinite amount of time for the system to converge" that I 
can't tolerate.

Nothing is perfect, but I think the graph has the best combination of function, 
simplicity and actually being possible.
----------------------------------------
Feature #16187: Relationships should work between hosts
https://projects.puppetlabs.com/issues/16187#change-74343

Author: Luke Kanies
Status: Unreviewed
Priority: Normal
Assignee: 
Category: 
Target version: 
Affected Puppet version: 
Keywords: backlog
Branch: 


Currently, one can only specify a relationship within a given host's graph.  
This means that the system can easily figure out, using dependencies, the order 
of work for a given node, but it cannot figure out the order of work across 
nodes.  If a web service running on one host depends on a db service running on 
another, you can use exported resources to share configuration (albeit in 
non-ideal ways), but you cannot specify this dependency.

This means you cannot get a view of the true service dependencies in the 
system, and you always have a thin view of the world.

We need a way to specify that a given service or resource depends on a service 
or resource on another host.

This feature could be done in a very simple way, but could also get very 
sophisticated.  For instance, I've got a prototype that blocks a host's 
transaction until some remote resource is in the state you want: 
[[https://github.com/puppetlabs/puppetlabs-external_resource]]

    external_resource { "file exists":
      frequency => 1,
      timeout => 30,
      check => "/bin/ls /tmp/myfile"
    }

    notify { "File exists": require => Remote_resource["file exists"] }

This allows you to cause one service to wait until dependent (and potentially 
remote) services are available.  A very similar feature should exist for remote 
relationships:  We need some way of ordering operations so that we do not try 
to bring the web server up before its database server is up.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to