Upgrade from facter 3.11.14 to 4.2.5 (puppet-agent 5 to 7) broke some of
our custom facts, that use other (custom) facts.
Managed to find the smallest examples of two custom facts that reproduce
the problem.
First fact, that uses a core fact:
Facter.add(:my_fact) do
hostname=Facter.value(:networking)['hostname']
setcode do
hostname
end
end
Second fact, that uses the first fact:
my_fact = Facter.value(:my_fact)
Facter.add(:my_new_fact) do
setcode do
my_fact
end
end
The first fact works, it's the second one that stops working with
puppet7/facter4.
puppet5/facter3:
amvdi-it133:~# facter -p my_fact my_new_fact
my_fact => amvdi-it133
my_new_fact => amvdi-it133
puppet7/facter4:
mvdi-it133:~# facter -p my_fact my_new_fact
my_fact => amvdi-it133
my_new_fact =>
Seems to have to do with calling Facter.vaiue in the first fact.
This still does not work:
Facter.add(:my_fact) do
unused=Facter.value(:networking)['hostname']
hostname="testing"
setcode do
...
But this does:
Facter.add(:my_fact) do
hostname="testing"
setcode do
...
# facter -p my_fact my_new_fact
my_fact => testing
my_new_fact => testing
Also found that it works if I change the second fact to do the Facter.value
inside the setcode block:
Facter.add(:my_new_fact) do
setcode do
my_fact = Facter.value(:my_fact)
my_fact
end
end
Learning this I went back to the first fact and changed it to do the
Facter.value inside the setcode block too like this:
Facter.add(:my_fact) do
setcode do
hostname=Facter.value(:networking)['hostname']
hostname
end
end
That also makes it work regardless of where I do Facter.value in the second
fact.
I'm at a loss as to what the fact is going on here. Is it a bug? Or is
there a reasonable explanation for it? (I'm a complete Ruby noob, )
Regards,
Mark.
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/3b0fe404-3218-41b0-82d0-9f4927a776b1n%40googlegroups.com.