Skip to content

Instantly share code, notes, and snippets.

@s0enke
Last active December 30, 2015 11:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s0enke/7821956 to your computer and use it in GitHub Desktop.
Save s0enke/7821956 to your computer and use it in GitHub Desktop.
as puppet is declarative and the catalogue is a graph, we can just include the realization of virtual resources anywhere in code. even at the stage where the virtual resource gets declared
# this leads to the realization of both declared resources:
# soenke♥kellerautomat:~/projects/playground (master)$ puppet apply manifests/init.pp
# virtual resource 2
# /Stage[main]/Some_module/Virtual_resource_declarer2[virtual resource 2]/Virtual_resource[virtual resource 2]/Notify[virtual resource 2]/message: defined 'message' as 'virtual resource 2'
# virtual resource 1
# /Stage[main]/Some_module/Virtual_resource_declarer1[virtual resource 1]/Virtual_resource[virtual resource 1]/Notify[virtual resource 1]/message: defined 'message' as 'virtual resource 1'
# Finished catalog run in 0.61 seconds
node default {
include some_module
}
class some_module {
virtual_resource_declarer1 { 'virtual resource 1' : }
virtual_resource_declarer2 { 'virtual resource 2' : }
}
define virtual_resource_declarer1() {
include realizor
@virtual_resource { $name : }
}
define virtual_resource_declarer2() {
include realizor
@virtual_resource { $name : }
}
class realizor {
Virtual_Resource <| |>
}
define virtual_resource() {
notify { $name : }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment