vagrant-save 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vagrant-save/command.rb +2 -0
- data/lib/vagrant-save/uploader.rb +39 -12
- data/lib/vagrant-save/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5540fc991600353117fac991a4377e267d9b772c
|
4
|
+
data.tar.gz: 9f2c4d86870c8169864e111ec81d3bc9c4a17659
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d862bea58a04973a5a32d0ddf2d0d287c40f503f7cdfb876029ba3834dee2d42eeb7064e11e5615d6f4d77d69a6cd6d010cee9281d2c310b0418861e54d7a3c
|
7
|
+
data.tar.gz: 2109dbe663cb5d30bae8e4f1cef47e7f326dd1adc5959ddd989b9c82d675a9e31d4bb699bdb03eda865952b970d6226231e3f233b9325d16d642c0528fd7b170
|
data/lib/vagrant-save/command.rb
CHANGED
@@ -55,26 +55,34 @@ module VagrantPlugins
|
|
55
55
|
|
56
56
|
File.open(file) do |f|
|
57
57
|
|
58
|
-
uri
|
58
|
+
uri = URI.parse(post_url)
|
59
59
|
full_size = f.size
|
60
|
+
full = format_bytes(full_size.to_f)
|
60
61
|
|
61
62
|
http = Net::HTTP.new(uri.host, uri.port)
|
63
|
+
|
62
64
|
http.open_timeout = 10000
|
63
65
|
http.read_timeout = 10000
|
64
66
|
|
65
67
|
req = Net::HTTP::Post.new(uri.path)
|
66
68
|
req.set_form({"box" => f}, 'multipart/form-data')
|
67
69
|
|
68
|
-
|
70
|
+
previous_info = ""
|
69
71
|
|
70
72
|
Net::HTTP::UploadProgress.new(req) do |progress|
|
71
|
-
|
72
|
-
|
73
|
+
if progress.upload_size.to_f >= full_size.to_f
|
74
|
+
info = "Upload complete, commiting new box"
|
75
|
+
else
|
76
|
+
frac = progress.upload_size.to_f / full_size.to_f
|
77
|
+
percent = (frac * 100).round.to_s + "%"
|
78
|
+
part = format_bytes(progress.upload_size.to_f)
|
79
|
+
info = "#{percent} (#{part} / #{full})"
|
80
|
+
end
|
73
81
|
|
74
|
-
if
|
75
|
-
|
82
|
+
if info != previous_info
|
83
|
+
previous_info = info
|
76
84
|
@env.ui.clear_line
|
77
|
-
@env.ui.
|
85
|
+
@env.ui.info(info, new_line: false)
|
78
86
|
end
|
79
87
|
end
|
80
88
|
res = http.request(req)
|
@@ -89,12 +97,22 @@ module VagrantPlugins
|
|
89
97
|
provider
|
90
98
|
end
|
91
99
|
|
100
|
+
def format_bytes(num)
|
101
|
+
units = ["Byte", "KB", "MB", "GB", "TB"]
|
102
|
+
index = (Math.log(num) / Math.log(2)).to_i / 10
|
103
|
+
bytes = num / ( 1024 ** index )
|
104
|
+
bytes = bytes.round(2).to_s.gsub(/\.0+$/, "")
|
105
|
+
|
106
|
+
"#{bytes} #{units[index]}"
|
107
|
+
end
|
108
|
+
|
92
109
|
# @param [Vagrant::Machine] machine
|
93
110
|
# @param [int] keep
|
94
111
|
# @return int
|
95
112
|
def clean(machine, keep)
|
96
113
|
|
97
114
|
client = HTTPClient.new
|
115
|
+
|
98
116
|
client.connect_timeout = 10000
|
99
117
|
client.send_timeout = 10000
|
100
118
|
client.receive_timeout = 10000
|
@@ -104,18 +122,27 @@ module VagrantPlugins
|
|
104
122
|
@logger.debug("Load versions from #{data_url}")
|
105
123
|
|
106
124
|
res = client.get(data_url)
|
107
|
-
data = JSON.parse(res.http_body)
|
108
|
-
saved_versions = data['versions'].map{ |v| v.version}
|
109
125
|
|
110
|
-
@logger.debug("
|
126
|
+
@logger.debug("Got response #{res.inspect}")
|
127
|
+
|
128
|
+
data = JSON.parse(res.body)
|
129
|
+
|
130
|
+
@logger.debug("Traverse versions in #{data.inspect}")
|
131
|
+
|
132
|
+
saved_versions = data['versions'].map{ |v|
|
133
|
+
@logger.debug("Received version #{v.inspect}")
|
134
|
+
v['version']
|
135
|
+
}
|
136
|
+
|
137
|
+
@logger.debug("Got #{saved_versions.length} versions: #{saved_versions.inspect}")
|
111
138
|
|
112
139
|
if saved_versions.length > keep
|
113
140
|
machine.ui.info('Cleaning up old versions')
|
114
141
|
|
115
|
-
saved_versions
|
116
|
-
saved_versions.slice(keep, saved_versions.length).each { |v|
|
142
|
+
saved_versions.sort.reverse.slice(keep, saved_versions.length).each { |v|
|
117
143
|
delete_url = data_url + '/' + v
|
118
144
|
|
145
|
+
machine.ui.info("Deleting version #{v}")
|
119
146
|
@logger.debug("Sending delete #{delete_url}")
|
120
147
|
|
121
148
|
client.delete(delete_url)
|
data/lib/vagrant-save/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-save
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Georg Grossberger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: vagrant-export
|