Details
-
Bug
-
Status: Closed
-
Normal
-
Resolution: Fixed
-
PUP 4.3.1
-
Puppet Developer Experience
-
1
-
PDE 2017-02-08, PDE 2017-02-22, PDE 2017-03-08, PDE 2017-03-22, PDE 2017-04-05, PDE 2017-04-19
-
Bug Fix
-
-
No Action
-
covered by unit tests
Description
The behavior of Resources in require => parameter and in relations is different.
When compiling the catalog of the two following nodes, the first one fails on the client side, and the second one on the server side. This is very annoying because you think that the catalog can be applied successfully (e.g if you test using puppet master compile).
node missing1 { |
notify {'a': |
require => Notify['b'], |
}
|
}
|
|
node missing2 { |
notify {'a': } |
Notify['b'] -> Notify['a'] |
}
|
When validation is added it must:
- Allow the value to be a resource reference tree
- Update the language specification and documentation and clearly state that trailing punctuation makes two type references not considered equal. (i.e. File[/tmp/foo/], and File[/tmp//foo]) as this knowledge is implementation specific and may even depend on the provider and underlying target system state). i.e. this will not be supported:
file { '/tmp/': } ... notify { 'a': require => File['/tmp'] } (note the trailing forward slash).
- Support Aliases (the relationship operators do not do that correctly).
notify { 'a': alias => 'b'} ... notify { 'c': require => Notify['b'] }
Note that this ticket was originally added to Puppet 4.4.0, but was reverted before release in PUP-5850 as that implementation caused too much downstream breakage.
Attachments
Issue Links
- is blocked by
-
PUP-6984 resource references to aliased resources does not always work
-
- Closed
-
- relates to
-
PUP-5839 Potential regressions in relationship validation
-
- Closed
-
-
PUP-5855 Deprecate inexact resource reference matches
-
- Closed
-
- supports
-
PUP-5853 5.y TechDebt - to be resolved in Puppet 5.x
-
- Closed
-
-
PUP-5882 4.x TechDebt - to be resolved in Puppet 4.x
-
- Closed
-
- links to