class Vagrant::Plugin::V2::Manager
This class maintains a list of all the registered plugins as well as provides methods that allow querying all registered components of those plugins as a single unit.
Attributes
Public Class Methods
# File lib/vagrant/plugin/v2/manager.rb, line 12 def initialize @logger = Log4r::Logger.new("vagrant::plugin::v2::manager") @registered = [] end
Public Instance Methods
This returns all the action hooks.
@return [Array]
# File lib/vagrant/plugin/v2/manager.rb, line 20 def action_hooks(hook_name) result = [] @registered.each do |plugin| result += plugin.components.action_hooks[Plugin::ALL_ACTIONS] result += plugin.components.action_hooks[hook_name] end result end
This returns all the registered commands.
@return [Registry<Symbol, Array<Proc, Hash>>]
# File lib/vagrant/plugin/v2/manager.rb, line 34 def commands Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.commands) end end end
This returns all the registered communicators.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 45 def communicators Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.communicator) end end end
This returns all the registered configuration classes.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 56 def config Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.configs[:top]) end end end
This returns all the registered guest capabilities.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 78 def guest_capabilities results = Hash.new { |h, k| h[k] = Registry.new } @registered.each do |plugin| plugin.components.guest_capabilities.each do |guest, caps| results[guest].merge!(caps) end end results end
This returns all the registered guests.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 67 def guests Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.guests) end end end
This returns all the registered host capabilities.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 104 def host_capabilities results = Hash.new { |h, k| h[k] = Registry.new } @registered.each do |plugin| plugin.components.host_capabilities.each do |host, caps| results[host].merge!(caps) end end results end
This returns all the registered guests.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 93 def hosts Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.hosts) end end end
This returns all the registered provider capabilities.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 130 def provider_capabilities results = Hash.new { |h, k| h[k] = Registry.new } @registered.each do |plugin| plugin.components.provider_capabilities.each do |provider, caps| results[provider].merge!(caps) end end results end
This returns all the config classes for the various providers.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 145 def provider_configs Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.configs[:provider]) end end end
This returns all registered providers.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 119 def providers Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.providers) end end end
This returns all the config classes for the various provisioners.
@return [Registry]
# File lib/vagrant/plugin/v2/manager.rb, line 156 def provisioner_configs Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.configs[:provisioner]) end end end
This returns all registered provisioners.
@return [Hash]
# File lib/vagrant/plugin/v2/manager.rb, line 167 def provisioners Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.provisioner) end end end
This returns all the config classes for the various pushes.
@return [Registry]
# File lib/vagrant/plugin/v2/manager.rb, line 189 def push_configs Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.configs[:push]) end end end
This returns all registered pushes.
@return [Registry]
# File lib/vagrant/plugin/v2/manager.rb, line 178 def pushes Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.pushes) end end end
This registers a plugin. This should NEVER be called by the public and should only be called from within Vagrant. Vagrant will automatically register V2 plugins when a name is set on the plugin.
# File lib/vagrant/plugin/v2/manager.rb, line 212 def register(plugin) if !@registered.include?(plugin) @logger.info("Registered plugin: #{plugin.name}") @registered << plugin end end
This clears out all the registered plugins. This is only used by unit tests and should not be called directly.
# File lib/vagrant/plugin/v2/manager.rb, line 221 def reset! @registered.clear end
This returns all synced folder implementations.
@return [Registry]
# File lib/vagrant/plugin/v2/manager.rb, line 200 def synced_folders Registry.new.tap do |result| @registered.each do |plugin| result.merge!(plugin.components.synced_folders) end end end
This unregisters a plugin so that its components will no longer be used. Note that this should only be used for testing purposes.
# File lib/vagrant/plugin/v2/manager.rb, line 227 def unregister(plugin) if @registered.include?(plugin) @logger.info("Unregistered: #{plugin.name}") @registered.delete(plugin) end end