Issue #16185 has been updated by eric sorenson.

Status changed from Unreviewed to Investigating
Target version set to 3.x


----------------------------------------
Feature #16185: Relationships should support dependency injection
https://projects.puppetlabs.com/issues/16185#change-76278

Author: Luke Kanies
Status: Investigating
Priority: Normal
Assignee: 
Category: 
Target version: 3.x
Affected Puppet version: 
Keywords: backlog
Branch: 


Currently, relationships are useful for determining dependencies for work 
ordering, but they have a major limitation:  They generally require a human to 
manage communicating any information that both sides of the relationship need.

For instance, if you're building a web service and a database service:

    db { foo:
      port => 1433,
      user => foo,
      password => abcd1234
    }
    web { foo:
      dbport => 1433,
      dbuser => foo,
      dbpassword => abcd1234,
      require => DB[foo]
    }

This is redundant.  Instead, it should be possible for the user to specify the 
information once -- in this case, when the database service is configured -- 
then the relationship, and have Puppet automatically pass the needed 
information.

A key part of delivering this correctly must be that the definition of the db 
and web services -- that is, the class or defined resource -- does not need to 
know who will be using its information.  One could currently use exported 
resources to have the db export information, and then the web service import 
that same information, but in that case, you've hard-coded the web service to 
require the db service.

Instead, we must rely on dependency injection, which allows the user of the web 
and db resources -- not their developer -- to decide what dependencies they 
have and where they get their information.


-- 
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