From a3dd70dd50032968c41b1356b7e1cdc7b45c34f3 Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Mon, 13 Jun 2022 16:03:47 -0700 Subject: [PATCH] Allow for nested plugins --- plugins/commands/serve/util/service_info.rb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/plugins/commands/serve/util/service_info.rb b/plugins/commands/serve/util/service_info.rb index f05867b2e..33086205e 100644 --- a/plugins/commands/serve/util/service_info.rb +++ b/plugins/commands/serve/util/service_info.rb @@ -12,7 +12,7 @@ module VagrantPlugins # @yieldparam [ServiceInfo] def with_info(context, broker:, &block) if broker.nil? - raise "NO BROKER FOR INFO" + raise "Broker is required but was not provided" end if !context.metadata["plugin_name"] raise KeyError, @@ -60,11 +60,10 @@ module VagrantPlugins # @param broker [Broker] def with_plugin(context, plugins, broker:, &block) with_info(context, broker: broker) do |info| - plugin = Array( - Vagrant.plugin("2"). - local_manager. - send(plugins)[info.plugin_name] - ).first + list = Array(plugins).inject({}) do |memo, key| + memo.merge(Vagrant.plugin("2").local_manager.send(key)) + end + plugin = Array(list[info.plugin_name]).first if !plugin raise NameError, "Failed to locate plugin '#{info.plugin_name}' within #{plugins} plugins" end