Class: Vagrant::Hosts::Linux
Overview
Represents a Linux based host, such as Ubuntu.
Class Method Summary
collapse
Instance Method Summary
collapse
#retryable
Constructor Details
#initialize(*args) ⇒ Linux
Returns a new instance of Linux.
22
23
24
25
26
27
|
# File 'lib/vagrant/hosts/linux.rb', line 22
def initialize(*args)
super
@logger = Log4r::Logger.new("vagrant::hosts::linux")
@nfs_server_binary = "/etc/init.d/nfs-kernel-server"
end
|
Class Method Details
.match? ⇒ Boolean
12
13
14
|
# File 'lib/vagrant/hosts/linux.rb', line 12
def self.match?
Util::Platform.linux?
end
|
.precedence ⇒ Object
16
17
18
19
20
|
# File 'lib/vagrant/hosts/linux.rb', line 16
def self.precedence
2
end
|
Instance Method Details
#nfs? ⇒ Boolean
29
30
31
32
33
34
|
# File 'lib/vagrant/hosts/linux.rb', line 29
def nfs?
retryable(:tries => 10, :on => TypeError) do
system("cat /proc/filesystems | grep nfsd > /dev/null 2>&1")
end
end
|
#nfs_export(id, ip, folders) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/vagrant/hosts/linux.rb', line 36
def nfs_export(id, ip, folders)
output = TemplateRenderer.render('nfs/exports_linux',
:uuid => id,
:ip => ip,
:folders => folders)
@ui.info I18n.t("vagrant.hosts.linux.nfs_export")
sleep 0.5
nfs_cleanup(id)
output.split("\n").each do |line|
system(%Q[sudo su root -c "echo '#{line}' >> /etc/exports"])
end
system("sudo #{@nfs_server_binary} restart")
end
|
#nfs_prune(valid_ids) ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/vagrant/hosts/linux.rb', line 58
def nfs_prune(valid_ids)
return if !File.exist?("/etc/exports")
@logger.info("Pruning invalid NFS entries...")
output = false
File.read("/etc/exports").lines.each do |line|
if line =~ /^# VAGRANT-BEGIN: (.+?)$/
if valid_ids.include?($1.to_s)
@logger.debug("Valid ID: #{$1.to_s}")
else
if !output
@ui.info I18n.t("vagrant.hosts.linux.nfs_prune")
output = true
end
@logger.info("Invalid ID, pruning: #{$1.to_s}")
nfs_cleanup($1.to_s)
end
end
end
end
|