rabbitmq / chef-cookbook

Development repository for Chef cookbook RabbitMQ
https://supermarket.chef.io/cookbooks/rabbitmq
Apache License 2.0
214 stars 423 forks source link

LWRP for managing exchanges using rabbitmq api client #251

Closed cmluciano closed 6 years ago

cmluciano commented 9 years ago

Refactor #118 using https://github.com/ruby-amqp/rabbitmq_http_api_client

josacar commented 8 years ago

@cmluciano I wonder why these new providers use a Gem and others use plain CLI. I consider HTTP APIs more stable than CLIs, but I wonder how we can contribute to add queues, exchanges and bindings support in this cookbook.

jsirex commented 8 years ago

:+1:

nickkeyzer commented 7 years ago

:+1:

michaelklishin commented 7 years ago

I don't think there's much opposition to doing this. rabbitmqctl does not manage topology items (e.g. queues), however, only rabbitmadmin does (which comes with the management plugin and relies on its API).

Key issue here is that this cookbook needs to

The latter will vary from system to system and this cookbook cannot make too many assumptions about that.

Please refrain from making bold claims that "HTTP APIs are more stable than CLIs" unless you can provide evidence backed by data.

michaelklishin commented 7 years ago

Also, definitions import may be a worthwhile alternative to use here. It's still an HTTP API call, however.

"Automatic" (on boot) definitions import from a static JSON file is also supported by RabbitMQ but since it happens on boot, things can get quite tricky for plugins, e.g. Shovel definitions, because there's a chichen-and-egg problem between definitions import and plugin activation. There's no obvious solution to this at the moment.

michaelklishin commented 6 years ago

Definitions import are now supported and are a much better way if you ask me.