Issue #7184 has been updated by Michael Stahnke.

Status changed from Merged - Pending Release to Closed

Released as part of 2.7.3rc1
----------------------------------------
Feature #7184: bind actions first, faces second, to support multiple versions 
with external extension
https://projects.puppetlabs.com/issues/7184

Author: Daniel Pittman
Status: Closed
Priority: High
Assignee: Daniel Pittman
Category: Faces
Target version: 2.7.3
Affected Puppet version: development
Keywords: 
Branch: 


At the moment we bind to the face first, then find the action associated with 
that.  For external actions we really want to be binding to the action *first*, 
then running it in the context of the face version it was defined against.  
This gives coherent behaviour for the external user, and makes face versioning 
much more useful for them.

Specifically, the following properties:

 * actions can only be found in one of:
    * bound to the default face version, inside that file
    * in the load path as `lib/puppet/face/#{face}/#{action}.rb`
 * the *first* instance of `#{action}` is the one used
 * when loading an action, identify the face it wants, and load that

This means that invoking an action that binds to version 1 of a face *can't* 
call an action that binds to version 2 of the face, or vice-versa, without them 
making special arrangements for that to happen.  This is desirable; we are not 
including any "proxy" connection between the two in this version of the feature.

The general expectation of use is that folks will build their actions depending 
on one of two things:

 * actions provided in the core face, for the version they bind to
 * other actions they write, binding to the same core face version

Given that, these restrictions seem reasonable, without making actions vanish 
just because the default version of a face changes.



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