I'm unclear how this works. I'm assuming $ipaddress6 is the global facter ipv6 address (in which case you'll want to write $::ipaddress6), but that means that if $ipv6_enable is true (and I'm assuming true == 'true' holds since a non-empty string evaluates to true) and an address is configured, you issue a warning. Shouldn't it check for ! $::ipaddress6?