summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/functions/generate.rb
diff options
context:
space:
mode:
authorLuke Kanies <luke@puppetlabs.com>2010-05-10 23:50:05 -0700
committertest branch <puppet-dev@googlegroups.com>2010-02-17 06:50:53 -0800
commit2c153b12921d67354ea0968ad81590a124ac8b75 (patch)
treee1667858786446a5a56306823663960c2ec4905b /lib/puppet/parser/functions/generate.rb
parent052f98fdac20af4593372ecedaa13af97664a482 (diff)
downloadpuppet-2c153b12921d67354ea0968ad81590a124ac8b75.tar.gz
puppet-2c153b12921d67354ea0968ad81590a124ac8b75.tar.xz
puppet-2c153b12921d67354ea0968ad81590a124ac8b75.zip
Fixing #448 - relationships have their own syntax
You can now specify relationships directly in the language: File[/foo] -> Service[bar] Specifies a normal dependency while: File[/foo] ~> Service[bar] Specifies a subscription. You can also do relationship chaining, specifying multiple relationships on a single line: File[/foo] -> Package[baz] -> Service[bar] Note that while it's confusing, you don't have to have all of the arrows be the same direction: File[/foo] -> Service[bar] <~ Package[baz] This can provide some succinctness at the cost of readability. You can also specify full resources, rather than just resource refs: file { "/foo": ensure => present } -> package { bar: ensure => installed } But wait! There's more! You can also specify a subscription on either side of the relationship marker: yumrepo { foo: .... } package { bar: provider => yum, ... } Yumrepo <| |> -> Package <| provider == yum |> This, finally, provides easy many to many relationships in Puppet, but it also opens the door to massive dependency cycles. This last feature is a very powerful stick, and you can considerably hurt yourself with it. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
Diffstat (limited to 'lib/puppet/parser/functions/generate.rb')
0 files changed, 0 insertions, 0 deletions