Possible namespace collisions between libraries and proxy modules
The modular smart proxy has modules named after the component being managed, but in the case of both Chef and Puppet, the proxy module filesystem namespace matches that of the Puppet and Chef gems. This is dangerous as it could create conflicts.
$ head modules/puppet/puppet.rb require 'puppet/puppet_plugin' module Proxy::Puppet; end
This is required as "puppet/puppet", and similarly we have things like "puppet/environment". The Puppet code/gem itself is in the same namespace, so we've been very lucky if none of the files we have in modules/*/*.rb match another in one of those projects.
They should probably move into a proxy/ subdirectory to match the namespace of the modules and classes they declare.
#3 Updated by Dmitri Dolguikh over 6 years ago
- Status changed from Assigned to Ready For Testing