openfact 5.7.1 → 5.7.2

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
  SHA256:
3
- metadata.gz: a40ca49d6a933b0b0a72db330d0c4eb03e5b391f7604e22e23ef12753257987a
4
- data.tar.gz: 82062ea6a8217bd955e37c2f33f30653e4e20a1869b00de7dd99eb15007574e5
3
+ metadata.gz: 4806428dc6f3f5dbe7902f6d23e1e4ceb91233910c1ee347df9ce38969c437d0
4
+ data.tar.gz: 7afa2df9a896fb32a475861fc55b45ff7683ef23f1ff8edd5b824523931f22d3
5
5
  SHA512:
6
- metadata.gz: e90cd6387fb767064000a5b5681ce56796666b267c5d6ca11b60eca0b875aa3fe8177b09e421831fd09c73fc09823b229523d7960e1d74e47bafec941f307e30
7
- data.tar.gz: 6a6d9b5468083643e89518afbbcba2eb4c6ca7f3498b1324e8a27faa0c844d6660e4ae6c0991f5f01b24fb97951cda9fe06200b933632890551b0d256127baaa
6
+ metadata.gz: 4dae7933728490f20afda516a3386f8be76bbe4cfebeebcaccc1b9e5c6418d95978c6abd3c82d6cd917ac1dfae51bdacd5c359b5e92c684c416b85ce406231c9
7
+ data.tar.gz: ad82e01bae10d3f51b00147f7ef118f85dde83e6e82495c582c63b9e5e2f7c40c20ed721ea17c3416b57525642a7ba60787c3159163308a55fc0ec7be81099c7
@@ -19,9 +19,7 @@ module Facter
19
19
 
20
20
  def read_facts(fact_name)
21
21
  if fact_name == :metadata
22
- metadata = {}
23
- query_for_metadata(EC2_METADATA_ROOT_URL, metadata)
24
- @fact_list[:metadata] = metadata
22
+ @fact_list[:metadata] = read_metadata
25
23
  else
26
24
  @fact_list[:userdata] = get_data_from(EC2_USERDATA_ROOT_URL).strip.force_encoding('UTF-8')
27
25
  end
@@ -29,9 +27,29 @@ module Facter
29
27
  @fact_list[fact_name]
30
28
  end
31
29
 
30
+ # A failed root listing means no EC2-compatible metadata service is
31
+ # available, so there is no metadata to report. Once the root listing
32
+ # succeeds, any failed child request rejects the whole result.
33
+ def read_metadata
34
+ root_listing = root_metadata_listing
35
+ return {} unless root_listing
36
+
37
+ add_metadata_entries(EC2_METADATA_ROOT_URL, root_listing, {})
38
+ end
39
+
40
+ def root_metadata_listing
41
+ get_metadata_from(EC2_METADATA_ROOT_URL)
42
+ rescue StandardError => e
43
+ log.debug("EC2 metadata is not available: #{e.message}")
44
+ nil
45
+ end
46
+
32
47
  def query_for_metadata(url, container)
33
- metadata = get_metadata_from(url)
34
- metadata.each_line do |line|
48
+ add_metadata_entries(url, get_metadata_from(url), container)
49
+ end
50
+
51
+ def add_metadata_entries(url, listing, container)
52
+ listing.each_line do |line|
35
53
  next if line.empty?
36
54
 
37
55
  http_path_component = build_path_component(line)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Facter
4
- VERSION = '5.7.1' unless defined?(VERSION)
4
+ VERSION = '5.7.2' unless defined?(VERSION)
5
5
  end
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.7.1
4
+ version: 5.7.2
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.10
1302
+ rubygems_version: 4.0.20
1303
1303
  specification_version: 4
1304
1304
  summary: OpenFact, a system inventory tool
1305
1305
  test_files: []