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.

Reply via email to