vagrant-tagprovision 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/vagrant-tagprovision/action.rb +32 -38
- data/lib/vagrant-tagprovision/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a669262d9b0838f6a37ace1a3ba9702366ec425
|
4
|
+
data.tar.gz: bd7db8ceabcead76e3a777d51c261c7eb6f165c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68c5409eda074c01fcfc4cbe5fbb2fb16b81882c629250bfaf98912d0639430cb70c12d80596926d881532c7551f49ef0b8eba2bcbfbf372fc5ddbad558bab3e
|
7
|
+
data.tar.gz: 67a097342c639f490ebc0893bf2d29db8db5815e0716442f2fb2658d1a5225b547b16578e09fd9124f46ce57eee89264d521c92737a875c1d4c18f8399738498
|
@@ -10,7 +10,13 @@ module VagrantPlugins
|
|
10
10
|
@machine = env[:machine].name.to_s
|
11
11
|
@machinfo = env[:machine]
|
12
12
|
@commit_hash = `git rev-parse HEAD`
|
13
|
+
@commit_hash.strip!
|
13
14
|
@current_user = `whoami`
|
15
|
+
@time = Time.new
|
16
|
+
@tag = "provisioned_#{@machine}_#{@time.year}#{@time.month}#{@time.day}#{@time.hour}#{@time.min}#{@time.sec}"
|
17
|
+
machine_env = @machinfo.env;
|
18
|
+
@tmp_path = machine_env.tmp_path;
|
19
|
+
|
14
20
|
end
|
15
21
|
|
16
22
|
def call(env)
|
@@ -26,29 +32,19 @@ module VagrantPlugins
|
|
26
32
|
|
27
33
|
case action
|
28
34
|
when :up
|
29
|
-
env[:ui].info("Vagrant Hook Up: #{@machine}")
|
35
|
+
#env[:ui].info("Vagrant Hook Up: #{@machine}")
|
30
36
|
when :reload
|
31
|
-
env[:ui].info("Vagrant Hook Reload: #{@machine}")
|
37
|
+
#env[:ui].info("Vagrant Hook Reload: #{@machine}")
|
32
38
|
|
33
39
|
when :provision
|
34
|
-
env[:ui].info("
|
35
|
-
|
36
|
-
@
|
37
|
-
@tag = "provisioned_#{@machine}_#{@time.year}#{@time.month}#{@time.day}#{@time.hour}#{@time.min}#{@time.sec}"
|
38
|
-
@pwd = `pwd`
|
39
|
-
machine_env = @machinfo.env;
|
40
|
-
@tmp_path = machine_env.tmp_path;
|
41
|
-
|
42
|
-
|
43
|
-
machine = @machinfo
|
44
|
-
|
45
|
-
|
46
|
-
if (machine.communicate.test("uname -s | grep SunOS"))
|
40
|
+
env[:ui].info("Logging provisioning information to guest machine: #{@machine}")
|
41
|
+
|
42
|
+
if (@machinfo.communicate.test("uname -s | grep SunOS"))
|
47
43
|
reallogfile = '/var/log/provision_log'
|
48
44
|
move_cmd = 'mv'
|
49
|
-
elsif (
|
45
|
+
elsif (@machinfo.communicate.test("test -d $Env:SystemRoot"))
|
50
46
|
windir = ""
|
51
|
-
|
47
|
+
@machinfo.communicate.execute("echo %SYSTEMROOT%", {:shell => :cmd}) do |type, contents|
|
52
48
|
windir << contents.gsub("\r\n", '') if type == :stdout
|
53
49
|
end
|
54
50
|
reallogfile = "#{windir}\\System32\\drivers\\var\\provision_log"
|
@@ -58,33 +54,35 @@ module VagrantPlugins
|
|
58
54
|
move_cmd = 'mv -f'
|
59
55
|
end
|
60
56
|
|
61
|
-
file = @tmp_path.join("hosts.#{
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
57
|
+
file = @tmp_path.join("hosts.#{@machinfo.name}_#{@commit_hash}")
|
58
|
+
|
59
|
+
# Make sure the log files exist and are writable.
|
60
|
+
@machinfo.communicate.sudo("touch #{reallogfile}")
|
61
|
+
@machinfo.communicate.sudo("chmod 666 #{reallogfile}")
|
62
|
+
@machinfo.communicate.sudo("touch /tmp/provision_logs")
|
63
|
+
@machinfo.communicate.sudo("chmod 666 /tmp/provision_logs")
|
64
|
+
|
65
|
+
# download the current log file
|
66
|
+
@machinfo.communicate.download(reallogfile, file)
|
67
67
|
|
68
|
-
if update_file(file,
|
68
|
+
if update_file(file, @machinfo, false)
|
69
69
|
|
70
70
|
# upload modified file and remove temporary file
|
71
|
-
|
71
|
+
@machinfo.communicate.upload(file, '/tmp/provision_logs')
|
72
72
|
if windir
|
73
|
-
|
74
|
-
elsif
|
75
|
-
|
73
|
+
@machinfo.communicate.sudo("#{move_cmd} /tmp/provision_logs/hosts.#{@machinfo.name} #{reallogfile}")
|
74
|
+
elsif @machinfo.communicate.test('test -f /.dockerinit')
|
75
|
+
@machinfo.communicate.sudo("cat /tmp/provision_logs > #{reallogfile}")
|
76
76
|
else
|
77
|
-
|
77
|
+
@machinfo.communicate.sudo("#{move_cmd} /tmp/provision_logs #{reallogfile}")
|
78
78
|
end
|
79
|
-
end
|
80
|
-
|
81
|
-
|
82
|
-
env[:ui].info("Vagrant Hook Provision: #{@tmp_path}")
|
83
|
-
|
79
|
+
end
|
80
|
+
env[:ui].info("Finished logging provisioning information to guest machine: #{@machine}")
|
84
81
|
end
|
85
82
|
end
|
86
83
|
|
87
84
|
def update_file(file, resolving_machine = nil, include_id = true)
|
85
|
+
#update the file with the current state of the vagrant config and the user provisioning
|
88
86
|
file = Pathname.new(file)
|
89
87
|
file_content_line = "Provisioned on #{@time.inspect} using commit #{@commit_hash} by #{@current_user}"
|
90
88
|
old_file_content = file.read
|
@@ -92,10 +90,6 @@ module VagrantPlugins
|
|
92
90
|
file.open('wb') { |io| io.write(new_file_content) }
|
93
91
|
old_file_content != new_file_content
|
94
92
|
end
|
95
|
-
|
96
|
-
def notification(config, config_file)
|
97
|
-
|
98
|
-
end
|
99
93
|
end
|
100
94
|
end
|
101
95
|
end
|