On 30/01/12 17:48, Felix Frank wrote: > Hi, > > thanks for your elaborate design sketch. > > Sorry for limiting my quote severely. > > On 01/30/2012 06:28 PM, Nick wrote: >> +package { 'libfoo': ensure => present } > > Is this different from John's "constraint" proposal?
It did sound similar, yes - but unless I misunderstand it, not identical. For example, I don't understand how Constraints would avoid the problems with unifying resources that Nan mentioned. John's example appeared to be wrapping an existing Resource with something which puts constraints on it, i.e. a layer on top of "Resources". It implies a regular Resource to wrap somewhere. Whereas what I had in mind was something which in principle at least, was more basic than a Resource. With an "Assertion" there is nothing being managed, or mutated, by definition. It defines conditions on a resource (lower-case 'r') which can be checked, and merged, but doesn't imply that any Resource (upper-case 'R') need to be declared. It's quite possible that one wouldn't bother, if you don't need to manage or mutate anything. So Resources (upper case 'R') could be thought of as extensions to Assertions which also supply rules to mutate a system's state, should the conditions of the Assertion not be met, so that the conditions *are* met. > To me this didn't become clear: Does the manifest still need to declare > an actual package { "libfoo" } somewhere, or is this implied by at least > one assertion regarding any of its parameters? To be explicit: if an Assertion "+package { libfoo: }" is declared, it just means "libfoo must be installed for this manifest to work". I don't think it needs to mandate a declaration of a full-blown "package { libfoo: }" somewhere. In fact, I can probably imagine circumstances when something might be invoked which indirectly takes care of the "libfoo" package (or file, or whatever) - and then being forced to manage the "libfoo" package in Puppet just because you want to assert its presence could be a liability. N -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.