1. Any attribute that can take 'absent' as a value, either complains about it being invalid or puts the actual text value 'absent' in to the produced repo file.
exclude => absent
ends up looking like
in the .repo file.
2. yumrepo resource title should become the repo id, and the attribute name should become the name value in the .repo file. If you manage to produce a repo file by not specifying any attribute with absent you will be greeted by this error when running yum..
3. When using ensure => absent on an existing repository id of say 'base' for centos/rhel it removes the entire CentOS-Base.repo file which contains more than just the base repo. It should edit the repo in place.
4. The name attribute becomes the repo filename, where as the title (repository id) attribute should really be used as the file name. Because usually repository name's are long winded and contain lots of spaces..
As it stands I'll have to rollback our puppet clients and servers to the previous release until this is fixed/sane.