Sha256: 5d4a8ddd6e6354085e36dd6c166250a9572b3c5602a783b39fecb7f963bc9b2f

Contents?: true

Size: 1.26 KB

Versions: 19

Compression:

Stored size: 1.26 KB

Contents

# A general Vagrant system implementation for "solaris 11".
#
# Contributed by Jan Thomas Moldung <janth@moldung.no>

module VagrantPlugins
  module GuestSolaris11
    module Cap
      class ConfigureNetworks
        def self.configure_networks(machine, networks)
          networks.each do |network|
            device = "#{machine.config.solaris11.device}#{network[:interface]}"
            su_cmd = machine.config.solaris11.suexec_cmd
            mask = "#{network[:netmask]}"
            cidr = mask.split(".").map { |e| e.to_i.to_s(2).rjust(8, "0") }.join.count("1").to_s

            if network[:type].to_sym == :static
              if machine.communicate.test("ipadm | grep #{device}/v4")
                machine.communicate.execute("#{su_cmd} ipadm delete-addr #{device}/v4")
              end
              machine.communicate.execute("#{su_cmd} ipadm create-addr -T static -a #{network[:ip]}/#{cidr} #{device}/v4")
            elsif network[:type].to_sym == :dhcp
              if machine.communicate.test("ipadm show-if -o all | grep #{device} | tr -s ' ' | cut -d ' ' -f 6  | grep '4\|6'")
                machine.communicate.execute("#{su_cmd} ipadm create-addr -T addrconf #{device}/v4")
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

19 entries across 15 versions & 3 rubygems

Version Path
vagrant-unbundled-2.2.3.0 plugins/guests/solaris11/cap/configure_networks.rb
vagrant-unbundled-2.2.2.0 plugins/guests/solaris11/cap/configure_networks.rb
vagrant-unbundled-2.2.0.0 plugins/guests/solaris11/cap/configure_networks.rb
vagrant-unbundled-2.1.4.0 plugins/guests/solaris11/cap/configure_networks.rb
vagrant-unbundled-2.1.2.0 plugins/guests/solaris11/cap/configure_networks.rb
vagrant-packet-0.1.2 vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/solaris11/cap/configure_networks.rb
vagrant-packet-0.1.2 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/solaris11/cap/configure_networks.rb
vagrant-packet-0.1.2 vendor/bundle/ruby/2.4.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/solaris11/cap/configure_networks.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/solaris11/cap/configure_networks.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/solaris11/cap/configure_networks.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/solaris11/cap/configure_networks.rb
vagrant-unbundled-2.1.1.0 plugins/guests/solaris11/cap/configure_networks.rb
vagrant-unbundled-2.0.4.0 plugins/guests/solaris11/cap/configure_networks.rb
vagrant-unbundled-2.0.3.0 plugins/guests/solaris11/cap/configure_networks.rb
vagrant-aws-detiber-0.7.2.pre.4 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-419afb4dcffe/plugins/guests/solaris11/cap/configure_networks.rb
vagrant-aws-detiber-0.7.2.pre.3 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-419afb4dcffe/plugins/guests/solaris11/cap/configure_networks.rb
vagrant-aws-detiber-0.7.2.pre.2 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-419afb4dcffe/plugins/guests/solaris11/cap/configure_networks.rb
vagrant-unbundled-2.0.2.0 plugins/guests/solaris11/cap/configure_networks.rb
vagrant-unbundled-2.0.1.0 plugins/guests/solaris11/cap/configure_networks.rb