Sha256: 38ba6b5416af98027c0db39ed5930db8eb08a3a51fb0e58072f42ee708e2ed3b

Contents?: true

Size: 1.93 KB

Versions: 27

Compression:

Stored size: 1.93 KB

Contents

module VagrantPlugins
  module Parallels
    module Cap
      # Reads the forwarded ports that currently exist on the machine
      # itself.
      #
      # This also may not match up with configured forwarded ports, because
      # Vagrant auto port collision fixing may have taken place.
      #
      # @return [Hash<Integer, Integer>] Host => Guest port mappings.
      def self.forwarded_ports(machine)
        return nil if machine.state.id != :running

        {}.tap do |result|
          machine.provider.driver.read_forwarded_ports.each do |fp|
            result[fp[:hostport]] = fp[:guestport]
          end
        end
      end

      # Returns host's IP address that can be used to access the host machine
      # from the VM.
      #
      # @return [String] Host's IP address
      def self.host_address(machine)
        shared_iface = machine.provider.driver.read_shared_interface
        return shared_iface[:ip] if shared_iface

        nil
      end

      # Reads the network interface card MAC addresses and returns them.
      #
      # @return [Hash<Integer, String>] Adapter => MAC address
      def self.nic_mac_addresses(machine)
        nic_macs = machine.provider.driver.read_mac_addresses

        # Make numeration starting from 1, as it is expected in Vagrant.
        Hash[nic_macs.map.with_index{ |mac, index| [index+1, mac] }]
      end

      # Returns guest's IP address that can be used to access the VM from the
      # host machine.
      #
      # @return [String] Guest's IP address
      def self.public_address(machine)
        return nil if machine.state.id != :running

        ssh_info = machine.ssh_info
        return nil if !ssh_info
        ssh_info[:host]
      end

      # Returns a list of the snapshots that are taken on this machine.
      #
      # @return [Array<String>] Snapshot Name
      def self.snapshot_list(machine)
        machine.provider.driver.list_snapshots(machine.id).keys
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
vagrant-parallels-2.4.5 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.4.4 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.4.2 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.4.1 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.4.0 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.3.1 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.3.0 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.2.6 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.2.5 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.2.4 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.2.3 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.2.2 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.2.1 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.2.0 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.1.0 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.0.1 lib/vagrant-parallels/cap.rb
vagrant-parallels-2.0.0 lib/vagrant-parallels/cap.rb
vagrant-parallels-1.7.8 lib/vagrant-parallels/cap.rb
vagrant-parallels-1.7.7 lib/vagrant-parallels/cap.rb
vagrant-parallels-1.7.6 lib/vagrant-parallels/cap.rb