Skip to content

Instantly share code, notes, and snippets.

@purplexa
Created April 6, 2017 20:08
Show Gist options
  • Save purplexa/850e429ade46a990b66e32fcd4318c4f to your computer and use it in GitHub Desktop.
Save purplexa/850e429ade46a990b66e32fcd4318c4f to your computer and use it in GitHub Desktop.
Puppet containment and evaluation
class alfa {
notice("Evaluating Class['alfa']")
notify { 'class alfa': }
include helium
include hydrogen
Class['hydrogen'] -> Class['helium']
}
class bravo {
notice("Evaluating Class['bravo']")
notify { 'class bravo': }
include beryllium
include lithium
Class['lithium'] -> Class['beryllium']
}
class charlie {
notice("Evaluating Class['charlie']")
notify { 'class charlie': }
contain carbon
contain boron
Class['boron'] -> Class['carbon']
}
class one {
notice("Evaluating Class['one']")
notify { 'class one': }
}
class two {
notice("Evaluating Class['two']")
notify { 'class two': }
}
class three {
notice("Evaluating Class['three']")
notify { 'class three': }
}
class four {
notice("Evaluating Class['four']")
notify { 'class four': }
}
class five {
notice("Evaluating Class['five']")
notify { 'class five': }
}
class six {
notice("Evaluating Class['six']")
notify { 'class six': }
}
class hydrogen {
notice("Evaluating Class['hydrogen']")
notify { 'class hydrogen': }
include one
}
class helium {
notice("Evaluating Class['helium']")
notify { 'class helium': }
include two
}
class lithium {
notice("Evaluating Class['lithium']")
notify { 'class lithium': }
contain three
}
class beryllium {
notice("Evaluating Class['beryllium']")
notify { 'class beryllium': }
contain four
}
class boron {
notice("Evaluating Class['boron']")
notify { 'class boron': }
contain five
}
class carbon {
notice("Evaluating Class['carbon']")
notify { 'class carbon': }
contain six
}
include bravo
include charlie
include alfa
Class['alfa'] -> Class['bravo'] -> Class['charlie']
Notice: Scope(Class[Bravo]): Evaluating Class['bravo']
Notice: Scope(Class[Beryllium]): Evaluating Class['beryllium']
Notice: Scope(Class[Four]): Evaluating Class['four']
Notice: Scope(Class[Lithium]): Evaluating Class['lithium']
Notice: Scope(Class[Three]): Evaluating Class['three']
Notice: Scope(Class[Charlie]): Evaluating Class['charlie']
Notice: Scope(Class[Carbon]): Evaluating Class['carbon']
Notice: Scope(Class[Six]): Evaluating Class['six']
Notice: Scope(Class[Boron]): Evaluating Class['boron']
Notice: Scope(Class[Five]): Evaluating Class['five']
Notice: Scope(Class[Alfa]): Evaluating Class['alfa']
Notice: Scope(Class[Helium]): Evaluating Class['helium']
Notice: Scope(Class[Two]): Evaluating Class['two']
Notice: Scope(Class[Hydrogen]): Evaluating Class['hydrogen']
Notice: Scope(Class[One]): Evaluating Class['one']
Notice: Compiled catalog for foo in environment production in 0.10 seconds
Notice: class lithium
Notice: /Stage[main]/Lithium/Notify[class lithium]/message: defined 'message' as 'class lithium'
Notice: class three
Notice: /Stage[main]/Three/Notify[class three]/message: defined 'message' as 'class three'
Notice: class beryllium
Notice: /Stage[main]/Beryllium/Notify[class beryllium]/message: defined 'message' as 'class beryllium'
Notice: class four
Notice: /Stage[main]/Four/Notify[class four]/message: defined 'message' as 'class four'
Notice: class alfa
Notice: /Stage[main]/Alfa/Notify[class alfa]/message: defined 'message' as 'class alfa'
Notice: class bravo
Notice: /Stage[main]/Bravo/Notify[class bravo]/message: defined 'message' as 'class bravo'
Notice: class charlie
Notice: /Stage[main]/Charlie/Notify[class charlie]/message: defined 'message' as 'class charlie'
Notice: class boron
Notice: /Stage[main]/Boron/Notify[class boron]/message: defined 'message' as 'class boron'
Notice: class five
Notice: /Stage[main]/Five/Notify[class five]/message: defined 'message' as 'class five'
Notice: class carbon
Notice: /Stage[main]/Carbon/Notify[class carbon]/message: defined 'message' as 'class carbon'
Notice: class six
Notice: /Stage[main]/Six/Notify[class six]/message: defined 'message' as 'class six'
Notice: class two
Notice: /Stage[main]/Two/Notify[class two]/message: defined 'message' as 'class two'
Notice: class hydrogen
Notice: /Stage[main]/Hydrogen/Notify[class hydrogen]/message: defined 'message' as 'class hydrogen'
Notice: class helium
Notice: /Stage[main]/Helium/Notify[class helium]/message: defined 'message' as 'class helium'
Notice: class one
Notice: /Stage[main]/One/Notify[class one]/message: defined 'message' as 'class one'
Notice: Applied catalog in 0.09 seconds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment