[root@foobar]# facter --puppet | grep -i centos
lsbdistdescription => CentOS Linux release 7.1.1503 (Core)
lsbdistid => CentOS
os => {"name"=>"RedHat", "family"=>"RedHat", "lsb"=>{"distcodename"=>"Core", "distid"=>"CentOS", "distdescription"=>"CentOS Linux release 7.1.1503 (Core) ", "release"=>":core-4.1-amd64:core-4.1-noarch", "distrelease"=>"7.1.1503", "majdistrelease"=>"7", "minordistrelease"=>"1"}}
[root@foobar]# facter --puppet | grep -i redhat
operatingsystem => RedHat
os => {"name"=>"RedHat", "family"=>"RedHat", "lsb"=>{"distcodename"=>"Core", "distid"=>"CentOS", "distdescription"=>"CentOS Linux release 7.1.1503 (Core) ", "release"=>":core-4.1-amd64:core-4.1-noarch", "distrelease"=>"7.1.1503", "majdistrelease"=>"7", "minordistrelease"=>"1"}}
osfamily => RedHat
[root@foobar]# facter --puppet | grep operatingsystem
operatingsystem => RedHat
It looks like CentOS 7.1.1503 is confusing facter into thinking it's a RedHat system and not setting operatingsystemmajrelease at all.