Class: Bosh::Agent::Platform::Linux::Network
- Inherits:
-
Object
- Object
- Bosh::Agent::Platform::Linux::Network
show all
- Defined in:
- lib/bosh_agent/platform/linux/network.rb
Instance Method Summary
collapse
Constructor Details
#initialize(template_dir) ⇒ Network
Returns a new instance of Network.
6
7
8
9
10
11
12
13
|
# File 'lib/bosh_agent/platform/linux/network.rb', line 6
def initialize(template_dir)
@template_dir = template_dir
@config = Bosh::Agent::Config
@infrastructure = @config.infrastructure
@logger = @config.logger
@networks = []
@dns = []
end
|
Instance Method Details
61
62
63
64
65
66
|
# File 'lib/bosh_agent/platform/linux/network.rb', line 61
def dns
default_dns_network = networks.values.detect do |settings|
settings.fetch('default', []).include?('dns') && settings["dns"]
end
default_dns_network ? default_dns_network["dns"] : []
end
|
#setup_dhcp_from_settings ⇒ Object
55
56
57
58
59
|
# File 'lib/bosh_agent/platform/linux/network.rb', line 55
def setup_dhcp_from_settings
unless dns.empty?
write_dhcp_conf
end
end
|
#setup_networking ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/bosh_agent/platform/linux/network.rb', line 15
def setup_networking
case @config.infrastructure_name
when "vsphere"
setup_networking_from_settings
when "aws"
setup_dhcp_from_settings
when "openstack"
setup_dhcp_from_settings
else
raise Bosh::Agent::FatalError, "Setup networking failed, unsupported infrastructure #{Bosh::Agent::Config.infrastructure_name}"
end
end
|
#setup_networking_from_settings ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/bosh_agent/platform/linux/network.rb', line 29
def setup_networking_from_settings
mac_addresses = detect_mac_addresses
networks.values.each do |v|
mac = v["mac"]
unless mac_addresses.has_key?(mac)
raise Bosh::Agent::FatalError, "#{mac} from settings not present in instance"
end
v["interface"] = mac_addresses[mac]
begin
net_cidr = NetAddr::CIDR.create("#{v['ip']} #{v['netmask']}")
v["network"] = net_cidr.network
v["broadcast"] = net_cidr.broadcast
rescue NetAddr::ValidationError => e
raise Bosh::Agent::FatalError, e.to_s
end
end
write_network_interfaces
write_resolv_conf
gratuitous_arp
end
|