On May 9, 2:33 pm, Jake - USPS <
jacob.m.mcc...@usps.gov> wrote:
> John,
>
> Thanks so much for the response. It sounds to me like what I am trying to
> do should be working, but because you can not verify a couple things you
> can't comment on if I've implemented it correctly or not.
>
> So firstly, I am including the class 'oracle_db::hugepages'. This is
> assigned to the system from an ENC and is how resource
> 'Oracle_db::Hugepages/Oracle_db::Etc_sysctl_conf[vm.nr_hugepages]/Notify[vm.nr_hugepages:3'
> is getting applied to the system.
Ok.
> Next, the notify is in my code fragment, in the define
> 'oracle_db::etc_sysctl_conf'.
>
> oracle_db/manifests/init.pp:
>
> class oracle_db {
> etc_sysctl_conf { 'kernel.shmall':
> value => '1',
> }
>
> }
>
> define oracle_db::etc_sysctl_conf ( $attr = $name, $value ) {
> *notify{"${attr}:${value}": }*
>
> }
>
> And I'll just post hugepages again quick ...
>
> oracle_db/manifests/hugepages.pp
>
> class oracle_db::hugepages inherits oracle_db {
> Etc_sysctl_conf['kernel.shmall'] {
> value => '2',
> }
> etc_sysctl_conf { "vm.nr_hugepages":
> value => '3';
> }
>
> }
>
> So what I would expect is on my system that has BOTH oracle_db and
> oracle_db::hugepages assigned to it (same results when only hugepages
> assigned) that I would get the following output:
>
> 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'
>
> But instead get the following:
>
> 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'
>
> And here is some unfiltered output:
[...]
I think your expectations are correct. Just in case, however, I
recommend that you use fully-qualified names throughout your
manifests, and that you lay out classes and definitions as expected by
the autoloader. In particular:
oracle_db/manifests/hugepages.pp
====
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';
}
}
====
and move the definition to its own file:
oracle_db/manifests/etc_sysctl_conf.pp
====
define oracle_db::etc_sysctl_conf ( $attr = $name, $value ) {
*notify{"${attr}:${value}": }*
}
====
I would have expected Puppet to throw a compilation error if it
couldn't resolve the resource type, but it would be wise to cover that
possibility anyway. You could also try restarting the master to
ensure that it recompiles the catalog. If none of that works then it
looks like a regression to me.
John