Sha256: 635f242ff29a0961a50b0c2ae946675fde95044459a615e6e7886505c3e1de6e

Contents?: true

Size: 1.85 KB

Versions: 22

Compression:

Stored size: 1.85 KB

Contents

require "vagrant"

module VagrantPlugins
  module CommunicatorWinRM
    autoload :Errors, File.expand_path("../errors", __FILE__)

    class Plugin < Vagrant.plugin("2")
      name "winrm communicator"
      description <<-DESC
      This plugin allows Vagrant to communicate with remote machines using
      WinRM.
      DESC

      communicator("winrm") do
        require File.expand_path("../communicator", __FILE__)
        init!
        Communicator
      end

      config("winrm") do
        require_relative "config"
        Config
      end

      protected

      def self.init!
        return if defined?(@_init)
        @_init = true

        # Setup the I18n
        I18n.load_path << File.expand_path(
          "templates/locales/comm_winrm.yml", Vagrant.source_root)
        I18n.reload!

        # Check if vagrant-winrm plugin is installed and
        # output warning to user if found
        if !ENV["VAGRANT_IGNORE_WINRM_PLUGIN"] &&
            Vagrant::Plugin::Manager.instance.installed_plugins.keys.include?("vagrant-winrm")
            $stderr.puts <<-EOF
WARNING: Vagrant has detected the `vagrant-winrm` plugin. Vagrant ships with
WinRM support builtin and no longer requires the `vagrant-winrm` plugin. To
prevent unexpected errors please uninstall the `vagrant-winrm` plugin using
the command shown below:

  vagrant plugin uninstall vagrant-winrm

To disable this warning, set the environment variable `VAGRANT_IGNORE_WINRM_PLUGIN`
EOF
        end
        # Load the WinRM gem
        require "vagrant/util/silence_warnings"
        Vagrant::Util::SilenceWarnings.silence! do
          require "winrm"
        end
      end

      # @private
      # Reset the cached init value. This is not considered a public
      # API and should only be used for testing.
      def self.reset!
        send(:remove_instance_variable, :@_init)
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 3 rubygems

Version Path
vagrant-unbundled-2.3.6.0 plugins/communicators/winrm/plugin.rb
tamtam-vagrant-reload-1.2.1 vendor/cache/vagrant-2092df529ae7/plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.3.3.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.3.2.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.19.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.18.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.16.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.14.0 plugins/communicators/winrm/plugin.rb
vagrant-aws-mkubenka-0.7.2.pre.24 vendor/bundle/ruby/2.7.0/bundler/gems/vagrant-22795b161bf6/plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.10.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.9.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.8.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.7.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.6.2 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.6.1 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.6.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.5.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.4.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.3.0 plugins/communicators/winrm/plugin.rb
vagrant-unbundled-2.2.2.0 plugins/communicators/winrm/plugin.rb