GithubHelp home page GithubHelp logo

Comments (5)

michaelklishin avatar michaelklishin commented on June 26, 2024

I can only reproduce in one known case: when a plugin is implicitly enabled (as a dependency). Those plugins won't participate in plugin discovery as for some code paths they are not really enabled.

from rabbitmq-cli.

michaelklishin avatar michaelklishin commented on June 26, 2024

Some evidence:

rabbitmq-plugins list
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: [failed to contact rabbit@warp10 - status not shown]
 |/
[  ] rabbitmq_amqp1_0                  3.8.3
[  ] rabbitmq_auth_backend_cache       3.8.3
[  ] rabbitmq_auth_backend_http        3.8.3
[  ] rabbitmq_auth_backend_ldap        3.8.3
[  ] rabbitmq_auth_backend_oauth2      3.8.3
[  ] rabbitmq_auth_mechanism_ssl       3.8.3
[  ] rabbitmq_consistent_hash_exchange 3.8.3
[  ] rabbitmq_event_exchange           3.8.3
[e ] rabbitmq_federation               3.8.3
[E ] rabbitmq_federation_management    3.8.3
[  ] rabbitmq_jms_topic_exchange       3.8.3
[e ] rabbitmq_management               3.8.3
[e ] rabbitmq_management_agent         3.8.3
[  ] rabbitmq_mqtt                     3.8.3
[  ] rabbitmq_peer_discovery_aws       3.8.3
[  ] rabbitmq_peer_discovery_common    3.8.3
[  ] rabbitmq_peer_discovery_consul    3.8.3
[  ] rabbitmq_peer_discovery_etcd      3.8.3
[  ] rabbitmq_peer_discovery_k8s       3.8.3
[  ] rabbitmq_prometheus               3.8.3
[  ] rabbitmq_random_exchange          3.8.3
[  ] rabbitmq_recent_history_exchange  3.8.3
[  ] rabbitmq_sharding                 3.8.3
[E ] rabbitmq_shovel                   3.8.3
[  ] rabbitmq_shovel_management        3.8.3
[  ] rabbitmq_stomp                    3.8.3
[  ] rabbitmq_top                      3.8.3
[  ] rabbitmq_tracing                  3.8.3
[  ] rabbitmq_trust_store              3.8.3
[e ] rabbitmq_web_dispatch             3.8.3
[  ] rabbitmq_web_mqtt                 3.8.3
[  ] rabbitmq_web_mqtt_examples        3.8.3
[  ] rabbitmq_web_stomp                3.8.3
[  ] rabbitmq_web_stomp_examples       3.8.3

and rabbitmqctl help includes

Shovel plugin:

   delete_shovel                 Deletes a Shovel
   restart_shovel                Restarts a dynamic Shovel
   shovel_status                 Displays status of Shovel on a node

Use 'rabbitmqctl help <command>' to learn more about a specific command

from rabbitmq-cli.

michaelklishin avatar michaelklishin commented on June 26, 2024

One scenario in which I can reproduce this:

  • Enable rabbitmq_shovel_management or rabbitmq_federation_management
  • Enable rabbitmq_shovel which will be a no-op
  • Observe no plugin commands discovered
  • Disable rabbitmq_shovel_management
  • Enable rabbitmq_shovel
  • Observe plugin commands in help

CLI tools entirely depend on rabbit_plugins in discovering what plugins are enabled and should be placed on the code path.

I cannot reproduce any other way when the plugin that provides the command is enabled explicitly (not as a dependency of another plugin).

from rabbitmq-cli.

michaelklishin avatar michaelklishin commented on June 26, 2024

RabbitMQ.CLI.Core.CodePath is where most of the relevant functions reside, e.g. https://github.com/rabbitmq/rabbitmq-cli/blob/master/lib/rabbitmq/cli/core/code_path.ex#L19.

from rabbitmq-cli.

lukebakken avatar lukebakken commented on June 26, 2024

OK, yes this is due to the plugin being enabled implicitly. It's pretty confusing behavior but I suspect most people enable both rabbitmq_shovel and rabbitmq_shovel_management at the same time. We can close this until someone else gets tripped up by it 😄

from rabbitmq-cli.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.