Issue #14399 has been reported by Jacob McCann.
----------------------------------------
Bug #14399: Can not override define parameter
https://projects.puppetlabs.com/issues/14399
Author: Jacob McCann
Status: Unreviewed
Priority: Normal
Assignee:
Category:
Target version:
Affected Puppet version: 2.7.14
Keywords:
Branch:
When inheriting another class and trying to override a parameter for a define,
the new value does not get set.
What I am doing:
oracle_db/manifests/init.pp
<pre>
class oracle_db {
etc_sysctl_conf { 'kernel.shmall':
value => '1',
}
}
</pre>
oracle_db/manifests/etc_sysctl_conf.pp
<pre>
define oracle_db::etc_sysctl_conf ( $attr = $name, $value ) {
notify{"${attr}:${value}": }
}
</pre>
oracle_db/manifests/hugepages.pp
<pre>
class oracle_db::hugepages inherits oracle_db {
Oracle_db::Etc_sysctl_conf['kernel.shmall'] {
value => '2',
}
oracle_db::etc_sysctl_conf { "vm.nr_hugepages":
value => '3';
}
}
</pre>
So I am trying to override oracle_db::etc_sysctl_conf['kernel.shmall'] resource
in oracle_db::hugepages to change value parameter from 1 (set in oracle_db) to
2.
I then have oracle_db and oracle_db::hugepages assigned to the system via an
ENC. I've also tested with just having oracle_db::hugepages assigned via ENC.
The results I get are:
<pre>
notice: kernel.shmall:1
notice:
/Stage[main]/Oracle_db/Oracle_db::Etc_sysctl_conf[kernel.shmall]/Notify[kernel.shmall:1]/message:
defined 'message' as 'kernel.shmall:1'
notice: vm.nr_hugepages:3
notice:
/Stage[main]/Oracle_db::Hugepages/Oracle_db::Etc_sysctl_conf[vm.nr_hugepages]/Notify[vm.nr_hugepages:3]/message:
defined 'message' as 'vm.nr_hugepages:3'
</pre>
And what I would expect is for kernel.shmall to have a value of 2 instead (the
following is hand-edited to show what I would expect):
<pre>
notice: kernel.shmall:2
notice:
/Stage[main]/Oracle_db/Oracle_db::Etc_sysctl_conf[kernel.shmall]/Notify[kernel.shmall:2]/message:
defined 'message' as 'kernel.shmall:2'
notice: vm.nr_hugepages:3
notice:
/Stage[main]/Oracle_db::Hugepages/Oracle_db::Etc_sysctl_conf[vm.nr_hugepages]/Notify[vm.nr_hugepages:3]/message:
defined 'message' as 'vm.nr_hugepages:3'
</pre>
Complete output from a run:
<pre>
hostA:~ # puppet agent --test
info: Retrieving plugin
info: Loading facts in usps_bu_eth
info: Loading facts in usps_puppet_db_server
info: Loading facts in usps_syslog_client_ip
info: Loading facts in usps_puppet_master_host
info: Loading facts in hcs_service
info: Loading facts in packages
info: Loading facts in usps_patch_bundle
info: Loading facts in usps_bu_net_zone
info: Loading facts in memorysize
info: Loading facts in usps_puppet_basedir
info: Loading facts in usps_os_dist
info: Loading facts in usps_is_dmz
info: Loading facts in network
info: Loading facts in usps_os_version
info: Loading facts in jumpver_facts
info: Loading facts in usps_bu_macaddress
info: Loading facts in usps_patch_repo
info: Loading facts in usps_public_int
info: Loading facts in usps_patch_status
info: Loading facts in concat_basedir
info: Loading facts in usps_bu_int
info: Loading facts in usps_is_ctm_server
info: Loading facts in usps_is_puppet_master
info: Loading facts in usps_puppet_env
info: Loading facts in usps_puppet_ca_server
info: Loading facts in usps_puppet_report_server
info: Loading facts in usps_bu_net
info: Loading facts in usps_puppet_is_ca
info: Loading facts in usps_bu_ip
info: Loading facts in usps_patch_env
info: Loading facts in usps_bootloader
info: Loading facts in usps_patch_date
info: Loading facts in usps_bu_eth
info: Loading facts in usps_puppet_db_server
info: Loading facts in usps_syslog_client_ip
info: Loading facts in usps_puppet_master_host
info: Loading facts in hcs_service
info: Loading facts in packages
info: Loading facts in usps_patch_bundle
info: Loading facts in usps_bu_net_zone
info: Loading facts in memorysize
info: Loading facts in usps_puppet_basedir
info: Loading facts in usps_os_dist
info: Loading facts in usps_is_dmz
info: Loading facts in network
info: Loading facts in usps_os_version
info: Loading facts in jumpver_facts
info: Loading facts in usps_bu_macaddress
info: Loading facts in usps_patch_repo
info: Loading facts in usps_public_int
info: Loading facts in usps_patch_status
info: Loading facts in concat_basedir
info: Loading facts in usps_bu_int
info: Loading facts in usps_is_ctm_server
info: Loading facts in usps_is_puppet_master
info: Loading facts in usps_puppet_env
info: Loading facts in usps_puppet_ca_server
info: Loading facts in usps_puppet_report_server
info: Loading facts in usps_bu_net
info: Loading facts in usps_puppet_is_ca
info: Loading facts in usps_bu_ip
info: Loading facts in usps_patch_env
info: Loading facts in usps_bootloader
info: Loading facts in usps_patch_date
Could not retrieve macaddress_eth2: undefined method `[]' for nil:NilClass
Could not retrieve macaddress_eth3: undefined method `[]' for nil:NilClass
Could not retrieve macaddress_eth8: undefined method `[]' for nil:NilClass
Could not retrieve macaddress_eth9: undefined method `[]' for nil:NilClass
Could not retrieve macaddress_eth12: undefined method `[]' for nil:NilClass
Could not retrieve macaddress_eth13: undefined method `[]' for nil:NilClass
Could not retrieve macaddress_eth14: undefined method `[]' for nil:NilClass
Could not retrieve macaddress_eth15: undefined method `[]' for nil:NilClass
info: Caching catalog for hostA
info: Applying configuration version '1336591539'
notice: kernel.shmall:1
notice:
/Stage[main]/Oracle_db/Oracle_db::Etc_sysctl_conf[kernel.shmall]/Notify[kernel.shmall:1]/message:
defined 'message' as 'kernel.shmall:1'
notice: vm.nr_hugepages:3
notice:
/Stage[main]/Oracle_db::Hugepages/Oracle_db::Etc_sysctl_conf[vm.nr_hugepages]/Notify[vm.nr_hugepages:3]/message:
defined 'message' as 'vm.nr_hugepages:3'
notice: Finished catalog run in 17.88 seconds
</pre>
This has been tested using 2.7.9 and 2.7.14.
Some discussion on this in @ <a
href='https://groups.google.com/forum/?fromgroups#!topic/puppet-users/buQxiN6Hlj4'>https://groups.google.com/forum/?fromgroups#!topic/puppet-users/buQxiN6Hlj4</a>
--
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.