puppetlabs/puppetlabs-mcollective — pull request #152 by reidmv (2014-05-30 20:03:45+00:00)
Title: Pe compatibility (5 of 5)

Resolve #151 before considering.

This is the fifth of several PRs refactoring this module to support management of MCollective in PE deployments.

Get out of the business of managing middleware.

The puppetlabs/mcollective module should not be attempting to manage ActiveMQ, nor should it be attempting to manage RabbitMQ, nor any middleware software. This is a separation of responsibilities issue. Attempting to manage the middleware applications starts compromising what the purpose of the module is. The correct approach is to deal with integration of multiple technologies at a level above both of them. If the configuration needs to be shared, it can be modeled using a business logic, or "profile" kind of module.

Business Logic
/ \
/ \
mcollective activemq

Besides mixing responsibility, listing specific versions of ActiveMQ and RabbitMQ modules as dependencies impacts the usibility of tools like the Puppet module tool and librarian-puppet when using puppetlabs/mcollective either without ActiveMQ/RabbitMQ or with ActiveMQ/RabbitMQ modules from other authors.

This commit cleans the tendrils into ActiveMQ and RabbitMQ from the puppetlabs/mcollective module. After all, to mcollective, the details of how the middleware works should really just look like this.

http://docs.puppetlabs.com/mcollective/overview_components.html#middleware