Sha256: 22ff64da8b2df8dee25fb424ceb89e69cd6f1991dbc0e2963c53617d71221df2

Contents?: true

Size: 1.78 KB

Versions: 15

Compression:

Stored size: 1.78 KB

Contents

require 'log4r'

require 'vagrant/util/platform'

require_relative 'pd_11'

module VagrantPlugins
  module Parallels
    module Driver
      # Driver for Parallels Desktop 12 and later.
      class PD_12 < PD_11
        def initialize(uuid)
          super(uuid)

          @logger = Log4r::Logger.new('vagrant_parallels::driver::pd_12')
        end

        def create_host_only_network(options)
          # Create the interface
          execute_prlsrvctl('net', 'add', options[:network_id], '--type', 'host-only')

          # Get the IP so we can determine v4 vs v6
          ip = IPAddr.new(options[:adapter_ip])
          if ip.ipv4?
            args = ['--ip', "#{options[:adapter_ip]}/#{options[:netmask]}"]
            if options[:dhcp]
              args.concat(['--dhcp-ip', options[:dhcp][:ip],
                           '--ip-scope-start', options[:dhcp][:lower],
                           '--ip-scope-end', options[:dhcp][:upper]])
            end
          elsif ip.ipv6?
            # Convert prefix length to netmask ("32" -> "ffff:ffff::")
            options[:netmask] = IPAddr.new(IPAddr::IN6MASK, Socket::AF_INET6)
                                  .mask(options[:netmask]).to_s

            args = ['--host-assign-ip6', 'on',
                    '--ip6', "#{options[:adapter_ip]}/#{options[:netmask]}"]
            # DHCPv6 setting is not supported by Vagrant yet.
          else
            raise IPAddr::AddressFamilyError, 'BUG: unknown address family'
          end

          execute_prlsrvctl('net', 'set', options[:network_id], *args)

          # Return the details
          {
            name:    options[:network_id],
            ip:      options[:adapter_ip],
            netmask: options[:netmask],
            dhcp:    options[:dhcp]
          }
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
vagrant-parallels-2.4.2 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.4.1 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.4.0 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.3.1 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.3.0 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.2.6 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.2.5 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.2.4 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.2.3 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.2.2 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.2.1 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.2.0 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.1.0 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.0.1 lib/vagrant-parallels/driver/pd_12.rb
vagrant-parallels-2.0.0 lib/vagrant-parallels/driver/pd_12.rb