Issue #11339 has been updated by Jeff McCune.
Here's the code I ran against:
<pre>
$ rake
(in /workspace/puppet-2.7.x)
* puppet
ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding
2.7.19rc3-60-g07f0b0e 07f0b0e
* facter
ticket/1.6.x/15464_a_gemfile_would_improve_contributor_on-boarding
1.6.11-8-g0b49eae 0b49eae
* hiera 1.x
1.0.0rc4-6-g3b89fbe 3b89fbe
* rspec-puppet master
v0.1.4-2-g4afd64e 4afd64e
* puppetlabs_spec_helper
ticket/master/15464_a_gemfile_would_improve_contributor_on-boarding
0.3.0-2-g12e9794 12e9794
* fog 0.7.2
v0.7.2 c7ec7c9
* rbvmomi master
N/A 5dc0ca3
* stdlib 3.x
3.0.1 44e99a7
* hiera_puppet v0.3.0
v0.3.0 06e70f3
* mount_providers master
0.0.1 2d0dabe
* pe_mcollective master
0.0.45-2-g64c6523 64c6523
* pe_accounts master
1.0.3 0725c16
* pe_compliance master
0.0.5 dddc001
* cloud_provisioner master
1.0.4-2-gf68dacd f68dacd
* cloud_provisioner_vmware master
v1.0.0-5-g6eaab64 6eaab64
* hiera_puppet v0.3.0
v0.3.0 06e70f3
* json gem
1.7.4 N/A
* mocha gem
0.10.5 N/A
* multi_json gem
1.3.6 N/A
* rack gem
1.4.1 N/A
* rspec gem
2.10.0 N/A
* rspec-core gem
2.10.1 N/A
* rspec-expectations gem
2.10.0 N/A
* rspec-mocks gem
2.10.1 N/A
* rspec-puppet gem
0.1.4 N/A
</pre>
----------------------------------------
Bug #11339: Class ordering bug?
https://projects.puppetlabs.com/issues/11339#change-69300
Author: Justin Honold
Status: Accepted
Priority: Normal
Assignee:
Category: language
Target version: 2.7.x
Affected Puppet version: 2.7.9
Keywords:
Branch:
Using Puppet 2.7.9 on CentOS 6 with Ruby 1.8.7.
"foo" module's init.pp:
class foo {
include foo::one, foo::two, foo::three
}
Class['foo::one'] -> Class['foo::two'] -> Class['foo::three']
First I stop the Master, then start it interactively using --debug and
--no-daemonize. Then I apply on a client, without including the 'foo' class.
Next I tell it to include the 'foo' class. Results:
notice: foo::three
notice: /Stage[main]/Foo::Three/Notify[foo::three]/message: defined
'message' as 'foo::three'
notice: foo::two
notice: /Stage[main]/Foo::Two/Notify[foo::two]/message: defined 'message'
as 'foo::two'
notice: foo::one
notice: /Stage[main]/Foo::One/Notify[foo::one]/message: defined 'message'
as 'foo::one'
Three runs, then two, then one.
Here's the second run:
notice: foo::one
notice: /Stage[main]/Foo::One/Notify[foo::one]/message: defined 'message'
as 'foo::one'
notice: foo::two
notice: /Stage[main]/Foo::Two/Notify[foo::two]/message: defined 'message'
as 'foo::two'
notice: foo::three
notice: /Stage[main]/Foo::Three/Notify[foo::three]/message: defined
'message' as 'foo::three'
One, then two, then three. With the second run, I also see these corresponding
entries in the Master's debug output:
debug: Adding relationship from Class[Foo::One] to Class[Foo::Two] with
'before'
debug: Adding relationship from Class[Foo::Two] to Class[Foo::Three] with
'before'
I expected this ordering to be picked up on the first run, but it only goes on
the second and later. Bug? User error?
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.