Issue #20286 has been updated by eric sorenson.

Description updated
Priority changed from Urgent to Normal

----------------------------------------
Bug #20286: Custom factor value is empty
https://projects.puppetlabs.com/issues/20286#change-89646

* Author: vinod kumar
* Status: Unreviewed
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* Keywords: 
* Branch: 
* Affected Facter version: 
----------------------------------------
Follow the steps:

1. Created a custom factory

<pre>
export FACTER_TENANT="GroupA"
export FACTER_FOO="bar"
</pre>

2. Verified the same using 
<pre>
root@ip-10-197-64-16:~# facter | grep 'tenant'
tenant => GroupA
root@ip-10-197-64-16:~# facter | grep 'foo'
foo => bar
</pre>

3. Puppet Agent Version details:

<pre>
root@ip-10-197-64-16:~# ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
root@ip-10-197-64-16:~# puppet --version
2.7.18
root@ip-10-197-64-16:~# facter -v
1.6.9
root@ip-10-197-64-16:~#
</pre>

4. test.pp file at server side:

<pre>
class mysql{
file {"/tmp/facts.yaml":
        ensure => present,
        content => inline_template("<%= scope.to_hash.reject { |k,v| ! 
(k.is_a?(String) && v.is_a?(String) ) }.to_yaml %>");
}
notify {"node vinod called ...":}
notify {'msg':
        message => "network_eth0 : ${network_eth0} , tenant : ${tenant} , foo : 
$foo ... ${foo}"
        }
}
# default will run on every client if not specified the node name

node default {
        include mysql
}

</pre>

5. puppet.conf at server level:

<pre>
[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY

[test]
manifest = $confdir/manifests/test.pp

</pre>

6. Server version details:

<pre>
root@domU-12-31-39-09-20-C6:/etc/puppet# puppet --version
3.1.0
root@domU-12-31-39-09-20-C6:/etc/puppet# ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
root@domU-12-31-39-09-20-C6:/etc/puppet# facter -v
1.6.17
root@domU-12-31-39-09-20-C6:/etc/puppet#

</pre>

7. Now, executed the following command at puppet client:

<pre>
root@ip-10-197-64-16:~# sudo puppet agent --server puppet --waitforcert 60 
--test --debug --environment test
debug: Failed to load library 'rubygems' for feature 'rubygems'
debug: Failed to load library 'selinux' for feature 'selinux'
debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does 
not exist
debug: Puppet::Type::User::ProviderPw: file pw does not exist
debug: Failed to load library 'ldap' for feature 'ldap'
debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist
debug: /File[/var/lib/puppet/state/classes.txt]: Autorequiring 
File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/client_data]: Autorequiring File[/var/lib/puppet]
debug: 
/File[/var/lib/puppet/ssl/certs/ip-10-197-64-16.us-west-1.compute.internal.pem]:
 Autorequiring File[/var/lib/puppet/ssl/certs]
debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/state/last_run_summary.yaml]: Autorequiring 
File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/state/graphs]: Autorequiring 
File[/var/lib/puppet/state]
debug: 
/File[/var/lib/puppet/ssl/private_keys/ip-10-197-64-16.us-west-1.compute.internal.pem]:
 Autorequiring File[/var/lib/puppet/ssl/private_keys]
debug: /File[/var/lib/puppet/state/last_run_report.yaml]: Autorequiring 
File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
debug: /File[/etc/puppet/puppet.conf]: Autorequiring File[/etc/puppet]
debug: 
/File[/var/lib/puppet/ssl/public_keys/ip-10-197-64-16.us-west-1.compute.internal.pem]:
 Autorequiring File[/var/lib/puppet/ssl/public_keys]
debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring 
File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/state/resources.txt]: Autorequiring 
File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/ssl/private]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring 
File[/var/lib/puppet/ssl/certs]
debug: Finishing transaction 70359361794880
debug: 
/File[/var/lib/puppet/ssl/certs/ip-10-197-64-16.us-west-1.compute.internal.pem]:
 Autorequiring File[/var/lib/puppet/ssl/certs]
debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/private]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring 
File[/var/lib/puppet/ssl/certs]
debug: 
/File[/var/lib/puppet/ssl/public_keys/ip-10-197-64-16.us-west-1.compute.internal.pem]:
 Autorequiring File[/var/lib/puppet/ssl/public_keys]
debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring 
File[/var/lib/puppet/ssl]
debug: 
/File[/var/lib/puppet/ssl/private_keys/ip-10-197-64-16.us-west-1.compute.internal.pem]:
 Autorequiring File[/var/lib/puppet/ssl/private_keys]
debug: Finishing transaction 70359360269220
debug: Using cached certificate for ca
debug: Using cached certificate for ip-10-197-64-16.us-west-1.compute.internal
debug: Finishing transaction 70359359768000
debug: Loaded state in 0.03 seconds
debug: Executing '/etc/puppet/etckeeper-commit-pre'
debug: catalog supports formats: b64_zlib_yaml dot pson raw yaml; using pson
debug: Using cached certificate for ca
debug: Using cached certificate for ip-10-197-64-16.us-west-1.compute.internal
debug: Using cached certificate_revocation_list for ca
info: Caching catalog for ip-10-197-64-16.us-west-1.compute.internal
debug: Creating default schedules
debug: Loaded state in 0.00 seconds
info: Applying configuration version '1366289441'
debug: /Schedule[daily]: Skipping device resources because running on a host
debug: /Schedule[monthly]: Skipping device resources because running on a host
debug: /Schedule[hourly]: Skipping device resources because running on a host
debug: /Stage[main]/Mysql/File[/tmp/facts.yaml]/content: Executing 'diff -u 
/tmp/facts.yaml /tmp/puppet-file20130418-12048-ny0a68-0'
notice: /Stage[main]/Mysql/File[/tmp/facts.yaml]/content:
--- /tmp/facts.yaml     2013-04-18 12:50:25.470892681 +0000
+++ /tmp/puppet-file20130418-12048-ny0a68-0     2013-04-18 12:51:08.358892680 
+0000
@@ -1,85 +1,85 @@
 ---
-  network_eth0: "10.197.64.0"
-  lsbdistdescription: "Ubuntu 12.10"
-  swapfree: "0.00 kB"
-  timezone: UTC
-  lsbdistrelease: "12.10"
-  ec2_instance_type: t1.micro
-  path: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
-  arp_eth0: "fe:ff:ff:ff:ff:ff"
+  facterversion: "1.6.9"
+  architecture: amd64
+  ec2_local_ipv4: "10.197.64.16"
+  ec2_hostname: ip-10-197-64-16.us-west-1.compute.internal
+  operatingsystemrelease: "12.10"
+  ipaddress: "10.197.64.16"
   ec2_ami_launch_index: "0"
-  uptime: "0:38 hours"
+  uptime_hours: "0"
+  processorcount: "1"
+  ipaddress_eth0: "10.197.64.16"
+  timezone: UTC
+  memoryfree: "475.00 MB"
+  ec2_block_device_mapping_ami: /dev/sda1
   interfaces: "eth0,lo"
+  is_virtual: "true"
+  domain: us-west-1.compute.internal
+  fqdn: ip-10-197-64-16.us-west-1.compute.internal
+  kernelrelease: "3.5.0-21-generic"
   augeasversion: "0.10.0"
+  lsbdistrelease: "12.10"
+  kernelmajversion: "3.5"
+  ec2_kernel_id: aki-8d396bc8
+  sshecdsakey: 
"AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOSDwPx0qpKtluYZIgNlgaZYAqQnq/rfyk+IZW6McrGbe5S+HlGwMRrHdFG1lDGYpuA2mu52ZDOudV74qhzA7yw="
+  rubyversion: "1.8.7"
   processor0: "Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz"
-  ec2_public_ipv4: "54.241.226.80"
+  ec2_instance_type: t1.micro
+  swapfree: "0.00 kB"
+  hardwaremodel: x86_64
+  uniqueid: c50a1040
+  rubysitedir: /usr/local/lib/site_ruby/1.8
+  ec2_public_hostname: ec2-54-241-226-80.us-west-1.compute.amazonaws.com
+  uptime: "0:39 hours"
+  ps: "ps -ef"
+  ec2_ami_manifest_path: "(unknown)"
+  ec2_block_device_mapping_ephemeral0: sdb
+  swapsize: "0.00 kB"
+  uptime_days: "0"
+  kernel: Linux
+  id: root
+  hostname: ip-10-197-64-16
+  environment: test
+  clientversion: "2.7.18"
+  network_eth0: "10.197.64.0"
+  physicalprocessorcount: "1"
+  ec2_placement_availability_zone: us-west-1c
+  kernelversion: "3.5.0"
+  lsbdistdescription: "Ubuntu 12.10"
+  clientcert: ip-10-197-64-16.us-west-1.compute.internal
+  ec2_reservation_id: r-68314a31
   operatingsystem: Ubuntu
   sshrsakey: 
"AAAAB3NzaC1yc2EAAAADAQABAAABAQCsFwtMHV0tvZO1ErdZa/qGN7/si/dC7il1NR4qLRlnVb8s9nPxs3QnXf9yTSAEOorfjILBFJOzQMitDQu6IsMr6wqgumYQXsxVSZi5KU7uqj30iAsMr0VqlXcFwnCSg7hoYse3ILUHqYQkEET4kd8H06jYhD2g5lCrDBD8FJCLXKOIC9tatNNzZ4KDMvFKRgC2wuIN4KAuIo5rhkj+1r+rKuACQ/4mC8gqdG7nC/kwcjQM754bUEvRUQQpdJEVQ+GNSyFaZ6BxOewax/1mZANIwUmrEebNmc1sTCh+xzzDOI6iEj2sDi+2mQmOxDIpPFyimPgFdxggRJzBNF6NPYHX"
-  ipaddress: "10.197.64.16"
-  kernelrelease: "3.5.0-21-generic"
+  macaddress: "22:00:0a:c5:40:10"
+  osfamily: Debian
   ec2_security_groups: default
+  network_lo: "127.0.0.0"
+  netmask_eth0: "255.255.255.192"
   ec2_block_device_mapping_root: /dev/sda1
-  memorytotal: "589.91 MB"
-  netmask: "255.255.255.192"
-  sshecdsakey: 
"AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOSDwPx0qpKtluYZIgNlgaZYAqQnq/rfyk+IZW6McrGbe5S+HlGwMRrHdFG1lDGYpuA2mu52ZDOudV74qhzA7yw="
-  hardwaremodel: x86_64
-  macaddress_eth0: "22:00:0a:c5:40:10"
-  uniqueid: c50a1040
-  processorcount: "1"
-  id: root
+  path: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
   ec2_instance_id: i-156c094d
-  ec2_placement_availability_zone: us-west-1c
-  kernelmajversion: "3.5"
+  lsbdistcodename: quantal
+  netmask: "255.255.255.192"
+  netmask_lo: "255.0.0.0"
+  ec2_profile: default-paravirtual
+  lsbdistid: Ubuntu
   lsbmajdistrelease: "12"
-  uptime_days: "0"
-  ec2_hostname: ip-10-197-64-16.us-west-1.compute.internal
+  ec2_local_hostname: ip-10-197-64-16.us-west-1.compute.internal
+  ec2_ami_id: ami-26745463
+  puppetversion: "2.7.18"
   memorysize: "589.91 MB"
-  clientversion: "2.7.18"
+  arp_eth0: "fe:ff:ff:ff:ff:ff"
+  ec2_public_ipv4: "54.241.226.80"
+  memorytotal: "589.91 MB"
+  uptime_seconds: "2381"
+  arp: "fe:ff:ff:ff:ff:ff"
+  sshdsakey: 
"AAAAB3NzaC1kc3MAAACBAJvbTyk/H9yOyLGBS9gZ0lr5xKk6kJ2o7m4q8Yzl/m5oHMBKdae6kaE3guKruiPTdOMSfRjVY+EsJyHTvWM1N9JWtr+5dnOL5c262qVrdGAru+Gu2giWObVaAfKP4jwxHJ0rgclU8eVVF3F6xPNBNtRtVBAdKf/VCqy/oVqjuxWpAAAAFQCBakFHGF0Jc8IVBIaXD9leN1sLowAAAIB8hu/BeaD+BNoHHNVQIzkc+BtlGp8FWMLA3HR9ICkiDRxsQEqg7wf6SFmDi1CJOIsGt6vpLCRWp4E9inRW9jzco3Itjq3E9CVCxVP7+UWFiw9L93LARiZyqEkuf/oCELldVgDCg9Z74xfK0o050CGWkxCkk5bHe4zM2I9WxZtcyQAAAIAJkz4Aqar/PXsubaPzByhxWRnTJfL1FsPFt+06d+itn7zezP/5noi/meHbZdfsuwl23PHPr79LQkxv+ehgwBZIaXDcdnXebOm7d3JRAoYekCdhcVEQy5iMdAn8Xe/RM+2uYH/Le97o85T0X+zS6I+U5qxFU820HFeeEKDonszK5g=="
   virtual: xenu
   selinux: "false"
-  lsbdistcodename: quantal
-  ec2_kernel_id: aki-8d396bc8
-  ipaddress_eth0: "10.197.64.16"
-  environment: test
-  osfamily: Debian
-  ec2_public_hostname: ec2-54-241-226-80.us-west-1.compute.amazonaws.com
-  hostname: ip-10-197-64-16
-  ec2_block_device_mapping_ami: /dev/sda1
-  facterversion: "1.6.9"
-  arp: "fe:ff:ff:ff:ff:ff"
-  uptime_seconds: "2338"
-  ec2_ami_manifest_path: "(unknown)"
-  operatingsystemrelease: "12.10"
-  architecture: amd64
-  memoryfree: "475.02 MB"
   hardwareisa: x86_64
-  kernel: Linux
-  ec2_local_hostname: ip-10-197-64-16.us-west-1.compute.internal
-  lsbdistid: Ubuntu
-  uptime_hours: "0"
-  sshdsakey: 
"AAAAB3NzaC1kc3MAAACBAJvbTyk/H9yOyLGBS9gZ0lr5xKk6kJ2o7m4q8Yzl/m5oHMBKdae6kaE3guKruiPTdOMSfRjVY+EsJyHTvWM1N9JWtr+5dnOL5c262qVrdGAru+Gu2giWObVaAfKP4jwxHJ0rgclU8eVVF3F6xPNBNtRtVBAdKf/VCqy/oVqjuxWpAAAAFQCBakFHGF0Jc8IVBIaXD9leN1sLowAAAIB8hu/BeaD+BNoHHNVQIzkc+BtlGp8FWMLA3HR9ICkiDRxsQEqg7wf6SFmDi1CJOIsGt6vpLCRWp4E9inRW9jzco3Itjq3E9CVCxVP7+UWFiw9L93LARiZyqEkuf/oCELldVgDCg9Z74xfK0o050CGWkxCkk5bHe4zM2I9WxZtcyQAAAIAJkz4Aqar/PXsubaPzByhxWRnTJfL1FsPFt+06d+itn7zezP/5noi/meHbZdfsuwl23PHPr79LQkxv+ehgwBZIaXDcdnXebOm7d3JRAoYekCdhcVEQy5iMdAn8Xe/RM+2uYH/Le97o85T0X+zS6I+U5qxFU820HFeeEKDonszK5g=="
-  rubysitedir: /usr/local/lib/site_ruby/1.8
-  ec2_ami_id: ami-26745463
-  domain: us-west-1.compute.internal
-  netmask_lo: "255.0.0.0"
-  network_lo: "127.0.0.0"
-  ec2_profile: default-paravirtual
-  ec2_local_ipv4: "10.197.64.16"
-  ps: "ps -ef"
-  swapsize: "0.00 kB"
-  puppetversion: "2.7.18"
-  clientcert: ip-10-197-64-16.us-west-1.compute.internal
+  macaddress_eth0: "22:00:0a:c5:40:10"
   ipaddress_lo: "127.0.0.1"
-  physicalprocessorcount: "1"
   ec2_public_keys_0_openssh_key: "ssh-rsa 
AAAAB3NzaC1yc2EAAAADAQABAAABAQDK7pUmGi4OTs6EpdJWLrfqA0rg8aql+Iwfuo67zNazx+le0UT2aaCv1HzvYEpqV5NZ4cw52Y1e3BY0Sb+3E/oy0vqRBTko5zUzJLawDNKj8r0CzHo0Z23lQmpkMiFUPfNJUqP+dGQjzRnst+V3nwrGwDkioUYs4+P3xYabywJIPLbwOZSDFf1ilxSWgTKybc7aI7GHlmXClpSfA2Npoxd0DAiqeaSVMwd8P4akmT8wP9pX9VcqesJ+pWn5lstubz8pRKslPPiUnCNYatArMH+M8lspTtuWGdnZnxnj4lWgGTZXHCfswg/SycZs2Wl6A6ALfY5EhgDqILg1AR3T0hKr
 ubuntukey"
-  ec2_reservation_id: r-68314a31
-  macaddress: "22:00:0a:c5:40:10"
-  netmask_eth0: "255.255.255.192"
-  ec2_block_device_mapping_ephemeral0: sdb
-  kernelversion: "3.5.0"
-  fqdn: ip-10-197-64-16.us-west-1.compute.internal
-  is_virtual: "true"
-  rubyversion: "1.8.7"
   serverversion: "3.1.0"
   servername: domU-12-31-39-09-20-C6.compute-1.internal
   serverip: "10.210.39.52"

debug: Finishing transaction 70359359761460
info: FileBucket adding {md5}ed62b8bff66653979c7880f7f52fc129
info: /Stage[main]/Mysql/File[/tmp/facts.yaml]: Filebucketed /tmp/facts.yaml to 
puppet with sum ed62b8bff66653979c7880f7f52fc129
notice: /Stage[main]/Mysql/File[/tmp/facts.yaml]/content: content changed 
'{md5}ed62b8bff66653979c7880f7f52fc129' to 
'{md5}5f21d91a482859a803856695d81c720b'
debug: /Stage[main]/Mysql/File[/tmp/facts.yaml]: The container Class[Mysql] 
will propagate my refresh event
debug: /Schedule[never]: Skipping device resources because running on a host
notice: node vinod called ...
notice: /Stage[main]/Mysql/Notify[node vinod called ...]/message: defined 
'message' as 'node vinod called ...'
debug: /Stage[main]/Mysql/Notify[node vinod called ...]: The container 
Class[Mysql] will propagate my refresh event
debug: /Schedule[weekly]: Skipping device resources because running on a host
notice: network_eth0 : 10.197.64.0 , tenant :  , foo :  ...
notice: /Stage[main]/Mysql/Notify[msg]/message: defined 'message' as 
'network_eth0 : 10.197.64.0 , tenant :  , foo :  ... '
debug: /Stage[main]/Mysql/Notify[msg]: The container Class[Mysql] will 
propagate my refresh event
debug: Class[Mysql]: The container Stage[main] will propagate my refresh event
debug: /Schedule[puppet]: Skipping device resources because running on a host
debug: Finishing transaction 70359360008500
debug: Storing state
debug: Stored state in 0.00 seconds
notice: Finished catalog run in 0.29 seconds
debug: Executing '/etc/puppet/etckeeper-commit-post'
debug: Value of 'preferred_serialization_format' (pson) is invalid for report, 
using default (b64_zlib_yaml)
debug: report supports formats: b64_zlib_yaml raw yaml; using b64_zlib_yaml
root@ip-10-197-64-16:~#
root@ip-10-197-64-16:~#
</pre>

Observation:

I see that the values for facter 'tenant' and 'foo' are blank where as 
'network_eth0' is showing properly.


-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to