smart_proxy_pulp 1.2.0 → 1.2.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cfca5cf9a70d4e21a551238e05bf7cfd7021bbd
|
4
|
+
data.tar.gz: 9f70189e1dac7544f34ddd7f7983106268333dd1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 573fd5cd53098343c9e6daa779c127562fd7017a461dedcac0692480203a3312300779f06cc249bcc56f5882350493ada62c98a02dc2e96d5cdc6d97d6732a66
|
7
|
+
data.tar.gz: af4aaee752664afe0394559852ec62ec76f55db52b9c79450c54e08762ef75babbe8680c3f3f92cb3cb2c1c95b387f4163c2eb1967e60678c05b445a8ee6c874
|
@@ -10,7 +10,8 @@ module PulpProxy
|
|
10
10
|
raise(::Proxy::Error::ConfigurationError, 'Unable to continue - must provide a path.') if opts[:path].nil?
|
11
11
|
@paths_hash = validate_path(path_hash(opts[:path]))
|
12
12
|
@path = @paths_hash.values
|
13
|
-
@
|
13
|
+
@size_format = opts[:size] || :kilobyte
|
14
|
+
@size = SIZE[@size_format]
|
14
15
|
@stat = {}
|
15
16
|
find_df
|
16
17
|
get_stat
|
@@ -32,22 +33,55 @@ module PulpProxy
|
|
32
33
|
[command_path, "-B", "#{size}", *path]
|
33
34
|
end
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
# Inspired and copied from Facter
|
37
|
+
# @ https://github.com/puppetlabs/facter/blob/2.x/lib/facter/core/execution/base.rb
|
38
|
+
# @TODO: Refactor http://projects.theforeman.org/issues/15235 when removing support for 1.8.7
|
39
|
+
def with_env(values)
|
40
|
+
old = {}
|
41
|
+
values.each do |var, value|
|
42
|
+
# save the old value if it exists
|
43
|
+
if old_val = ENV[var]
|
44
|
+
old[var] = old_val
|
45
|
+
end
|
46
|
+
# set the new (temporary) value for the environment variable
|
47
|
+
ENV[var] = value
|
48
|
+
end
|
49
|
+
# execute the caller's block, capture the return value
|
50
|
+
rv = yield
|
51
|
+
# use an ensure block to make absolutely sure we restore the variables
|
52
|
+
ensure
|
53
|
+
# restore the old values
|
54
|
+
values.each do |var, value|
|
55
|
+
if old.include?(var)
|
56
|
+
ENV[var] = old[var]
|
57
|
+
else
|
58
|
+
# if there was no old value, delete the key from the current environment variables hash
|
59
|
+
ENV.delete(var)
|
41
60
|
end
|
42
|
-
stdout.read.split("\n")
|
43
61
|
end
|
44
|
-
|
62
|
+
# return the captured return value
|
63
|
+
rv
|
64
|
+
end
|
65
|
+
|
66
|
+
def get_stat
|
67
|
+
with_env 'LC_ALL' => 'C' do
|
68
|
+
raw = Open3::popen3(*command) do |stdin, stdout, stderr, thread|
|
69
|
+
unless stderr.read.empty?
|
70
|
+
error_line = stderr.read
|
71
|
+
logger.error "[#{command_path}] #{error_line}"
|
72
|
+
raise(::Proxy::Error::ConfigurationError, "#{command_path} raised an error: #{error_line}")
|
73
|
+
end
|
74
|
+
stdout.read.split("\n")
|
75
|
+
end
|
76
|
+
|
77
|
+
logger.debug "[#{command_path}] #{raw.to_s}"
|
45
78
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
79
|
+
titles = normalize_titles(raw)
|
80
|
+
raw.each_with_index do |line, index|
|
81
|
+
mount_path = path[index]
|
82
|
+
values = normalize_values(line.split)
|
83
|
+
@stat[hash_key_for(mount_path)] = Hash[titles.zip(values)].merge({:path => mount_path, :size => @size_format})
|
84
|
+
end
|
51
85
|
end
|
52
86
|
end
|
53
87
|
|
@@ -55,6 +89,11 @@ module PulpProxy
|
|
55
89
|
path.is_a?(Hash) ? path : Hash[path, path]
|
56
90
|
end
|
57
91
|
|
92
|
+
def hash_key_for(path)
|
93
|
+
@paths_hash.select { |k,v| v == path}.first[0]
|
94
|
+
end
|
95
|
+
|
96
|
+
|
58
97
|
def normalize_titles(raw)
|
59
98
|
replacers = {"mounted on" => :mounted, "use%" => :percent}
|
60
99
|
raw.shift.downcase.gsub(/(use%|mounted on)/) { |m| replacers.fetch(m,m)}.split.map(&:to_sym)
|
@@ -21,7 +21,7 @@ module PulpProxy
|
|
21
21
|
|
22
22
|
get '/status/disk_usage' do
|
23
23
|
size = (params[:size] && DiskUsage::SIZE.keys.include?(params[:size].to_sym)) ? params[:size].to_sym : :kilobyte
|
24
|
-
monitor_dirs = ::PulpProxy::Plugin.settings.
|
24
|
+
monitor_dirs = Hash[::PulpProxy::Plugin.settings.marshal_dump.select { |key, _| key == :pulp_dir || key == :pulp_content_dir || key == :mongodb_dir }]
|
25
25
|
begin
|
26
26
|
pulp_disk = DiskUsage.new({:path => monitor_dirs, :size => size})
|
27
27
|
pulp_disk.to_json
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_proxy_pulp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitri Dolguikh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-unit
|