openfact 5.6.1 → 5.7.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 +4 -4
- data/lib/facter/resolvers/ec2.rb +19 -7
- data/lib/facter/resolvers/windows/virtualization.rb +1 -1
- data/lib/facter/util/resolvers/http.rb +34 -5
- data/lib/facter/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a40ca49d6a933b0b0a72db330d0c4eb03e5b391f7604e22e23ef12753257987a
|
|
4
|
+
data.tar.gz: 82062ea6a8217bd955e37c2f33f30653e4e20a1869b00de7dd99eb15007574e5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e90cd6387fb767064000a5b5681ce56796666b267c5d6ca11b60eca0b875aa3fe8177b09e421831fd09c73fc09823b229523d7960e1d74e47bafec941f307e30
|
|
7
|
+
data.tar.gz: 6a6d9b5468083643e89518afbbcba2eb4c6ca7f3498b1324e8a27faa0c844d6660e4ae6c0991f5f01b24fb97951cda9fe06200b933632890551b0d256127baaa
|
data/lib/facter/resolvers/ec2.rb
CHANGED
|
@@ -18,14 +18,19 @@ module Facter
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def read_facts(fact_name)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
if fact_name == :metadata
|
|
22
|
+
metadata = {}
|
|
23
|
+
query_for_metadata(EC2_METADATA_ROOT_URL, metadata)
|
|
24
|
+
@fact_list[:metadata] = metadata
|
|
25
|
+
else
|
|
26
|
+
@fact_list[:userdata] = get_data_from(EC2_USERDATA_ROOT_URL).strip.force_encoding('UTF-8')
|
|
27
|
+
end
|
|
28
|
+
|
|
24
29
|
@fact_list[fact_name]
|
|
25
30
|
end
|
|
26
31
|
|
|
27
32
|
def query_for_metadata(url, container)
|
|
28
|
-
metadata =
|
|
33
|
+
metadata = get_metadata_from(url)
|
|
29
34
|
metadata.each_line do |line|
|
|
30
35
|
next if line.empty?
|
|
31
36
|
|
|
@@ -34,14 +39,15 @@ module Facter
|
|
|
34
39
|
|
|
35
40
|
if http_path_component.end_with?('/')
|
|
36
41
|
child = {}
|
|
37
|
-
|
|
38
|
-
child.reject! { |key, _info| key == http_path_component }
|
|
42
|
+
query_for_metadata("#{url}#{http_path_component}", child)
|
|
39
43
|
name = http_path_component.chomp('/')
|
|
40
44
|
container[name] = child
|
|
41
45
|
else
|
|
42
|
-
container[http_path_component] =
|
|
46
|
+
container[http_path_component] = get_metadata_from("#{url}#{http_path_component}").strip
|
|
43
47
|
end
|
|
44
48
|
end
|
|
49
|
+
|
|
50
|
+
container
|
|
45
51
|
end
|
|
46
52
|
|
|
47
53
|
def build_path_component(line)
|
|
@@ -55,6 +61,12 @@ module Facter
|
|
|
55
61
|
Facter::Util::Resolvers::Http.get_request(url, headers, { session: determine_session_timeout }, false)
|
|
56
62
|
end
|
|
57
63
|
|
|
64
|
+
def get_metadata_from(url)
|
|
65
|
+
headers = {}
|
|
66
|
+
headers['X-aws-ec2-metadata-token'] = v2_token if v2_token
|
|
67
|
+
Facter::Util::Resolvers::Http.get_request!(url, headers, { session: determine_session_timeout }, false)
|
|
68
|
+
end
|
|
69
|
+
|
|
58
70
|
def determine_session_timeout
|
|
59
71
|
session_env = ENV['EC2_SESSION_TIMEOUT']
|
|
60
72
|
session_env ? session_env.to_i : EC2_SESSION_TIMEOUT
|
|
@@ -6,6 +6,8 @@ module Facter
|
|
|
6
6
|
module Http
|
|
7
7
|
@log = Facter::Log.new(self)
|
|
8
8
|
|
|
9
|
+
class RequestError < StandardError; end
|
|
10
|
+
|
|
9
11
|
class << self
|
|
10
12
|
CONNECTION_TIMEOUT = 0.6
|
|
11
13
|
SESSION_TIMEOUT = 5
|
|
@@ -27,6 +29,15 @@ module Facter
|
|
|
27
29
|
make_request(url, headers, timeouts, 'GET', proxy)
|
|
28
30
|
end
|
|
29
31
|
|
|
32
|
+
# Makes a GET HTTP request and returns its response body.
|
|
33
|
+
#
|
|
34
|
+
# Unlike get_request, this method raises when the response code is
|
|
35
|
+
# not 200 or when the request fails. A successful empty response is
|
|
36
|
+
# still returned as an empty string.
|
|
37
|
+
def get_request!(url, headers = {}, timeouts = {}, proxy = true)
|
|
38
|
+
make_request!(url, headers, timeouts, 'GET', proxy)
|
|
39
|
+
end
|
|
40
|
+
|
|
30
41
|
# Makes a PUT HTTP request and returns its response
|
|
31
42
|
# @param (see #get_request)
|
|
32
43
|
# @return (see #get_request)
|
|
@@ -37,6 +48,28 @@ module Facter
|
|
|
37
48
|
private
|
|
38
49
|
|
|
39
50
|
def make_request(url, headers, timeouts, request_type, proxy)
|
|
51
|
+
response = perform_request(url, headers, timeouts, request_type, proxy)
|
|
52
|
+
|
|
53
|
+
successful_response?(response) ? response.body : ''
|
|
54
|
+
rescue StandardError => e
|
|
55
|
+
@log.debug("Trying to connect to #{url} but got: #{e.message}")
|
|
56
|
+
''
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def make_request!(url, headers, timeouts, request_type, proxy)
|
|
60
|
+
response = perform_request(url, headers, timeouts, request_type, proxy)
|
|
61
|
+
|
|
62
|
+
return response.body if successful_response?(response)
|
|
63
|
+
|
|
64
|
+
raise RequestError, "Request to #{url} failed with HTTP status #{response.code}"
|
|
65
|
+
rescue RequestError
|
|
66
|
+
raise
|
|
67
|
+
rescue StandardError => e
|
|
68
|
+
@log.debug("Trying to connect to #{url} but got: #{e.message}")
|
|
69
|
+
raise
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def perform_request(url, headers, timeouts, request_type, proxy)
|
|
40
73
|
require 'net/http'
|
|
41
74
|
|
|
42
75
|
uri = URI.parse(url)
|
|
@@ -52,11 +85,7 @@ module Facter
|
|
|
52
85
|
# Make the request
|
|
53
86
|
response = http.request(request)
|
|
54
87
|
response.uri = url
|
|
55
|
-
|
|
56
|
-
successful_response?(response) ? response.body : ''
|
|
57
|
-
rescue StandardError => e
|
|
58
|
-
@log.debug("Trying to connect to #{url} but got: #{e.message}")
|
|
59
|
-
''
|
|
88
|
+
response
|
|
60
89
|
end
|
|
61
90
|
|
|
62
91
|
def http_obj(parsed_url, timeouts, proxy)
|
data/lib/facter/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openfact
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.7.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenVox Project
|
|
@@ -1299,7 +1299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1299
1299
|
- !ruby/object:Gem::Version
|
|
1300
1300
|
version: '0'
|
|
1301
1301
|
requirements: []
|
|
1302
|
-
rubygems_version: 4.0.
|
|
1302
|
+
rubygems_version: 4.0.10
|
|
1303
1303
|
specification_version: 4
|
|
1304
1304
|
summary: OpenFact, a system inventory tool
|
|
1305
1305
|
test_files: []
|