Sha256: 919de8d4d1d1e4c5b9b825edae3aef687e6b72381f430f34ca9ac9052bde3d7c

Contents?: true

Size: 1000 Bytes

Versions: 1

Compression:

Stored size: 1000 Bytes

Contents

module VagrantPlugins
  module GuestSmartos
    module Cap
      class ConfigureNetworks
        def self.configure_networks(machine, networks)
          su_cmd = machine.config.smartos.suexec_cmd

          networks.each do |network|
            device = "#{machine.config.smartos.device}#{network[:interface]}"
            ifconfig_cmd = "#{su_cmd} /sbin/ifconfig #{device}"

            machine.communicate.execute("#{ifconfig_cmd} plumb")

            if network[:type].to_sym == :static
              machine.communicate.execute("#{ifconfig_cmd} inet #{network[:ip]} netmask #{network[:netmask]}")
              machine.communicate.execute("#{ifconfig_cmd} up")
              machine.communicate.execute("#{su_cmd} sh -c \"echo '#{network[:ip]}' > /etc/hostname.#{device}\"")
            elsif network[:type].to_sym == :dhcp
              machine.communicate.execute("#{ifconfig_cmd} dhcp start")
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vagrant-cloudstack-1.2.0 vendor/bundle/bundler/gems/vagrant-c84e05fd063f/plugins/guests/smartos/cap/configure_networks.rb