ohai 14.1.3 → 14.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0d127f53f35ebe9ab1838c040de1626c5638ac4e08f0910a8e5af589a52d53a
4
- data.tar.gz: ec026cfc55f548397ad564d4d3da4ac54fb48d9e52bb0d8692342e530cb9cebc
3
+ metadata.gz: b945f38a205eba8ba878ca75cb0e060ce08659f75cc854fe9e430bd7ed133961
4
+ data.tar.gz: a709b76357dc0c705e4a57602be622773362890e0467ed7049985b6e83a71daa
5
5
  SHA512:
6
- metadata.gz: 31fec306f6f93864c268cf3658d59b8a16cecf02955dcb84ce3700bd0433baa65d75c0a27a3e9535a6dcd049ae073c7e142f1607ae58852304d0beac616bdba7
7
- data.tar.gz: '09a81b953995ad886fa39c886cf40506e0ff8491be6fc660e349969f01f4463468b963cf4ac30194a040f4f46ab4f90a279502ec01930fb216dfe73edeeb5a56'
6
+ metadata.gz: ba896baca29452e5bfe0dba1f296df3cab45bb9a22fdb68ca61617e597788f1d3ec6f8245bd8b15ab25e7cba733d1f35e90946088407885488a83ec8c45f9c24
7
+ data.tar.gz: b037ad1653096e4579e8b1ac0375d1e542fbcabee595414dabca26746bc2c75936199ef6da2ed471534934fbf24f701a788f4dae67444f62ab777fa64d9df6ae
@@ -76,7 +76,10 @@ module Ohai
76
76
  # away some of the less useful IDs
77
77
  ID_TO_CAPTURE = [ 0, 1, 2, 3, 4, 6, 11 ]
78
78
 
79
- # return the list of DMI IDs to capture
79
+ # the whitelisted DMI IDs. This is combination of the defaults + any additional
80
+ # IDs defined in the :additional_dmi_ids config
81
+ #
82
+ # @return [Array] the list of DMI IDs to capture
80
83
  def whitelisted_ids
81
84
  if Ohai.config[:additional_dmi_ids]
82
85
  if [ Integer, Array ].include?(Ohai.config[:additional_dmi_ids].class)
@@ -88,7 +91,11 @@ module Ohai
88
91
  ID_TO_CAPTURE
89
92
  end
90
93
 
91
- # look up DMI ID
94
+ # the human readable description from a DMI ID
95
+ #
96
+ # @param id [String, Integer] the ID to lookup
97
+ #
98
+ # @return [String]
92
99
  def id_lookup(id)
93
100
  id = id.to_i
94
101
  if (id >= 128) && (id <= 255)
@@ -28,10 +28,16 @@ module Ohai
28
28
 
29
29
  # For plugin namespacing
30
30
  module NamedPlugin
31
+
32
+ # Is the plugin a Symbol starting with a capital letter that has no underscores
33
+ #
34
+ # @param name [String] the plugin name
35
+ # @return [Boolean]
31
36
  def self.valid_name?(name)
32
37
  name.is_a?(Symbol) && name.to_s.match(/^[^A-Z]|_/).nil?
33
38
  end
34
39
 
40
+ # @return [Boolean]
35
41
  def self.strict_const_defined?(const)
36
42
  const_defined?(const, false)
37
43
  end
@@ -20,6 +20,8 @@
20
20
  module Ohai
21
21
  module DSL
22
22
  class Plugin
23
+ # The class for the "Version 7" plugin format we introduced in Ohai 7. This is the 2nd
24
+ # generation of Ohai plugin and the previous generation (V6) was removed in Ohai 14
23
25
  class VersionVII < Plugin
24
26
  attr_reader :version
25
27
  attr_reader :source
@@ -30,14 +32,23 @@ module Ohai
30
32
  @version = :version7
31
33
  end
32
34
 
35
+ # the plugin name we use through Ohai (Foo) vs. the class name (Ohai::NamedPlugin::Foo)
36
+ #
37
+ # @return [String]
33
38
  def name
34
39
  self.class.name.split("Ohai::NamedPlugin::")[1].to_sym
35
40
  end
36
41
 
42
+ # return that we're a v7 plugin
43
+ #
44
+ # @return [Symbol]
37
45
  def self.version
38
46
  :version7
39
47
  end
40
48
 
49
+ # the source of the plugin on disk. This is an array since a plugin may exist for multiple platforms and this would include each of those platform specific file paths
50
+ #
51
+ # @return [Array]
41
52
  def self.sources
42
53
  @source_list ||= []
43
54
  end
@@ -50,30 +61,51 @@ module Ohai
50
61
  @depends_attrs ||= []
51
62
  end
52
63
 
64
+ # A block per platform for actually performing data collection constructed
65
+ # by the collect_data method
66
+ #
67
+ # @return [Mash]
53
68
  def self.data_collector
54
69
  @data_collector ||= Mash.new
55
70
  end
56
71
 
72
+ # set the attributes provided by the plugin
73
+ #
74
+ # @param attrs [Array]
57
75
  def self.provides(*attrs)
58
76
  attrs.each do |attr|
59
77
  provides_attrs << attr unless provides_attrs.include?(attr)
60
78
  end
61
79
  end
62
80
 
81
+ # set the attributes depended on by the plugin
82
+ #
83
+ # @param attrs [Array]
63
84
  def self.depends(*attrs)
64
85
  attrs.each do |attr|
65
86
  depends_attrs << attr unless depends_attrs.include?(attr)
66
87
  end
67
88
  end
68
89
 
90
+ # set the plugin optional state
91
+ #
92
+ # @param opt [Boolean]
69
93
  def self.optional(opt = true)
70
94
  @optional = opt
71
95
  end
72
96
 
97
+ # check if the plugin is optional
98
+ #
99
+ # @return [Boolean]
73
100
  def self.optional?
74
101
  !!@optional
75
102
  end
76
103
 
104
+ # define data collection methodology per platform
105
+ #
106
+ # @param platform [Symbol] the platform to collect data for
107
+ # @param other_platforms [Array] additional platforms to collect data for
108
+ # @param block [block] the actual code to collect data for the specified platforms
77
109
  def self.collect_data(platform = :default, *other_platforms, &block)
78
110
  [platform, other_platforms].flatten.each do |plat|
79
111
  if data_collector.has_key?(plat)
@@ -84,6 +116,7 @@ module Ohai
84
116
  end
85
117
  end
86
118
 
119
+ # @return [Array]
87
120
  def dependencies
88
121
  self.class.depends_attrs
89
122
  end
@@ -21,10 +21,14 @@ require "ffi_yajl"
21
21
 
22
22
  module Ohai
23
23
  module Hints
24
+ # clear out any known hints in the @hints variable
24
25
  def self.refresh_hints
25
26
  @hints = {}
26
27
  end
27
28
 
29
+ # parse the JSON conents of a hint file. Return an empty hash if the file has
30
+ # no JSON content
31
+ # @param filename [String] the hint file path
28
32
  def self.parse_hint_file(filename)
29
33
  json_parser = FFI_Yajl::Parser.new
30
34
  hash = json_parser.parse(File.read(filename))
@@ -35,6 +39,10 @@ module Ohai
35
39
  Ohai::Log.error("Could not parse hint file at #{filename}: #{e.message}")
36
40
  end
37
41
 
42
+ # retrieve hint contents given a hint name. Looks up in @hints variable first. Attempts
43
+ # to load from file in config's :hints_path if not already cached. Saves the contents
44
+ # to the hash if the file was successfully parsed
45
+ # @param name [String] the name of the hint (not the path)
38
46
  def self.hint?(name)
39
47
  @hints ||= {}
40
48
  return @hints[name] if @hints[name]
@@ -50,12 +50,9 @@
50
50
  # params[:key] instead of params['key'].
51
51
  class Mash < Hash
52
52
 
53
- # @param constructor<Object>
54
- # The default value for the mash. Defaults to an empty hash.
55
- #
56
- # @details [Alternatives]
57
- # If constructor is a Hash, a new mash will be created based on the keys of
58
- # the hash and no default value will be set.
53
+ # @param constructor [Object] The default value for the mash.
54
+ # If constructor is a Hash, a new mash will be created based on the keys of the hash and
55
+ # no default value will be set.
59
56
  def initialize(constructor = {})
60
57
  if constructor.is_a?(Hash)
61
58
  super()
@@ -65,11 +62,9 @@ class Mash < Hash
65
62
  end
66
63
  end
67
64
 
68
- # @param key<Object> The default value for the mash. Defaults to nil.
69
- #
70
- # @details [Alternatives]
71
- # If key is a Symbol and it is a key in the mash, then the default value will
72
- # be set to the value matching the key.
65
+ # @param key [Object] The default value for the mash.
66
+ # If key is a Symbol and it is a key in the mash, then the default value will be set to
67
+ # the value matching the key.
73
68
  def default(key = nil)
74
69
  if key.is_a?(Symbol) && include?(key = key.to_s)
75
70
  self[key]
@@ -81,9 +76,8 @@ class Mash < Hash
81
76
  alias_method :regular_writer, :[]= unless method_defined?(:regular_writer)
82
77
  alias_method :regular_update, :update unless method_defined?(:regular_update)
83
78
 
84
- # @param key<Object> The key to set.
85
- # @param value<Object>
86
- # The value to set the key to.
79
+ # @param key [Object] The key to set.
80
+ # @param value [Object] The value to set the key to.
87
81
  #
88
82
  # @see Mash#convert_key
89
83
  # @see Mash#convert_value
@@ -91,7 +85,7 @@ class Mash < Hash
91
85
  regular_writer(convert_key(key), convert_value(value))
92
86
  end
93
87
 
94
- # @param other_hash<Hash>
88
+ # @param other_hash [Hash]
95
89
  # A hash to update values in the mash with. The keys and the values will be
96
90
  # converted to Mash format.
97
91
  #
@@ -103,7 +97,7 @@ class Mash < Hash
103
97
 
104
98
  alias_method :merge!, :update
105
99
 
106
- # @param key<Object> The key to check for. This will be run through convert_key.
100
+ # @param key [Object] The key to check for. This will be run through convert_key.
107
101
  #
108
102
  # @return [Boolean] True if the key exists in the mash.
109
103
  def key?(key)
@@ -115,36 +109,34 @@ class Mash < Hash
115
109
  alias_method :has_key?, :key?
116
110
  alias_method :member?, :key?
117
111
 
118
- # @param key<Object> The key to fetch. This will be run through convert_key.
119
- # @param *extras<Array> Default value.
112
+ # @param key [Object] The key to fetch. This will be run through convert_key.
113
+ # @param extras [Array] Default value.
120
114
  #
121
115
  # @return [Object] The value at key or the default value.
122
116
  def fetch(key, *extras)
123
117
  super(convert_key(key), *extras)
124
118
  end
125
119
 
126
- # @param *indices<Array>
127
- # The keys to retrieve values for. These will be run through +convert_key+.
120
+ # @param indices [Array] The keys to retrieve values for. These will be run through +convert_key+.
128
121
  #
129
122
  # @return [Array] The values at each of the provided keys
130
123
  def values_at(*indices)
131
124
  indices.collect { |key| self[convert_key(key)] }
132
125
  end
133
126
 
134
- # @param hash<Hash> The hash to merge with the mash.
127
+ # @param hash [Hash] The hash to merge with the mash.
135
128
  #
136
129
  # @return [Mash] A new mash with the hash values merged in.
137
130
  def merge(hash)
138
131
  dup.update(hash)
139
132
  end
140
133
 
141
- # @param key<Object>
142
- # The key to delete from the mash.\
134
+ # @param key [Object] The key to delete from the mash.
143
135
  def delete(key)
144
136
  super(convert_key(key))
145
137
  end
146
138
 
147
- # @param *rejected<Array[(String, Symbol)] The mash keys to exclude.
139
+ # @param keys [Array<String, Symbol>] The mash keys to exclude.
148
140
  #
149
141
  # @return [Mash] A new mash without the selected keys.
150
142
  #
@@ -172,8 +164,8 @@ class Mash < Hash
172
164
  Hash.new(default).merge(self)
173
165
  end
174
166
 
175
- # @return [Mash] Convert a Hash into a Mash
176
- # The input Hash's default value is maintained
167
+ # Convert a Hash into a Mash. The input Hash's default value is maintained
168
+ # @return [Mash]
177
169
  def self.from_hash(hash)
178
170
  mash = Mash.new(hash)
179
171
  mash.default = hash.default
@@ -182,18 +174,15 @@ class Mash < Hash
182
174
 
183
175
  protected
184
176
 
185
- # @param key<Object> The key to convert.
186
- #
187
- # @param [Object]
188
- # The converted key. If the key was a symbol, it will be converted to a
189
- # string.
177
+ # @param key [Object] The key to convert.
178
+ # @return [Object] The converted key. If the key was a symbol, it will be converted to a string.
190
179
  #
191
180
  # @api private
192
181
  def convert_key(key)
193
182
  key.kind_of?(Symbol) ? key.to_s : key
194
183
  end
195
184
 
196
- # @param value<Object> The value to convert.
185
+ # @param value [Object] The value to convert.
197
186
  #
198
187
  # @return [Object]
199
188
  # The converted value. A Hash or an Array of hashes, will be converted to
@@ -44,6 +44,8 @@ module ::Ohai::Mixin::DmiDecode
44
44
  return "bhyve"
45
45
  when /Manufacturer: Veertu/
46
46
  return "veertu"
47
+ when /Manufacturer: Amazon EC2/
48
+ return "amazonec2"
47
49
  end
48
50
  end
49
51
  nil
@@ -72,6 +72,9 @@ module Ohai
72
72
  end
73
73
  end
74
74
 
75
+ # a net/http client with a timeout of 10s and a keepalive of 10s
76
+ #
77
+ # @return [Net::HTTP]
75
78
  def http_client
76
79
  @conn ||= Net::HTTP.start(EC2_METADATA_ADDR).tap do |h|
77
80
  h.read_timeout = 10
@@ -81,11 +84,10 @@ module Ohai
81
84
 
82
85
  # Get metadata for a given path and API version
83
86
  #
84
- # @details
85
- # Typically, a 200 response is expected for valid metadata.
86
- # On certain instance types, traversing the provided metadata path
87
- # produces a 404 for some unknown reason. In that event, return
88
- # `nil` and continue the run instead of failing it.
87
+ # Typically, a 200 response is expected for valid metadata.
88
+ # On certain instance types, traversing the provided metadata path
89
+ # produces a 404 for some unknown reason. In that event, return
90
+ # `nil` and continue the run instead of failing it.
89
91
  def metadata_get(id, api_version)
90
92
  path = "/#{api_version}/meta-data/#{id}"
91
93
  logger.trace("Mixin EC2: Fetching http://#{EC2_METADATA_ADDR}#{path}")
@@ -50,6 +50,9 @@ module Ohai
50
50
  end
51
51
  end
52
52
 
53
+ # @param [String] data that might be JSON
54
+ #
55
+ # @return [Boolean] is the data JSON or not?
53
56
  def json?(data)
54
57
  data = StringIO.new(data)
55
58
  parser = FFI_Yajl::Parser.new
@@ -61,6 +64,9 @@ module Ohai
61
64
  end
62
65
  end
63
66
 
67
+ # @param data [String]
68
+ #
69
+ # @return [Boolean] is there a trailing /?
64
70
  def has_trailing_slash?(data)
65
71
  !! ( data =~ %r{/$} )
66
72
  end
@@ -20,6 +20,13 @@ module Ohai
20
20
  module Mixin
21
21
  module HttpHelper
22
22
 
23
+ # see if we can socket connect to an address/port
24
+ #
25
+ # @param addr [String] the address to connect to
26
+ # @param port [Integer] the port to connect to
27
+ # @param timeout [Integer] the seconds before timing out
28
+ #
29
+ # @return [Boolean] can we connect?
23
30
  def can_socket_connect?(addr, port, timeout = 2)
24
31
  t = Socket.new(Socket::Constants::AF_INET, Socket::Constants::SOCK_STREAM, 0)
25
32
  begin
@@ -23,6 +23,9 @@ module Ohai
23
23
  module Mixin
24
24
  module OS
25
25
 
26
+ # Using ruby configuration determine the OS we're running on
27
+ #
28
+ # @return [String] the OS
26
29
  def collect_os
27
30
  case ::RbConfig::CONFIG["host_os"]
28
31
  when /aix(.+)$/
@@ -23,10 +23,14 @@ module Ohai
23
23
  SCALEWAY_METADATA_ADDR = "169.254.42.42" unless defined?(SCALEWAY_METADATA_ADDR)
24
24
  SCALEWAY_METADATA_URL = "/conf?format=json" unless defined?(SCALEWAY_METADATA_URL)
25
25
 
26
+ # @return [Net::HTTP] net/http object without timeout set to 6
26
27
  def http_client
27
28
  Net::HTTP.start(SCALEWAY_METADATA_ADDR).tap { |h| h.read_timeout = 6 }
28
29
  end
29
30
 
31
+ # fetch scaleway metadata and parse the resulting JSON
32
+ #
33
+ # @return [Hash]
30
34
  def fetch_metadata
31
35
  uri = "#{SCALEWAY_METADATA_URL}"
32
36
  response = http_client.get(uri)
@@ -19,6 +19,11 @@
19
19
  module Ohai
20
20
  module Mixin
21
21
  module SecondsToHuman
22
+ # given the number of seconds return a day/hours/minutes/seconds human form
23
+ #
24
+ # @param seconds [Integer]
25
+ #
26
+ # @return String
22
27
  def seconds_to_human(seconds)
23
28
  days = seconds.to_i / 86400
24
29
  seconds -= 86400 * days
@@ -30,15 +35,15 @@ module Ohai
30
35
  seconds -= 60 * minutes
31
36
 
32
37
  if days > 1
33
- return sprintf("%d days %02d hours %02d minutes %02d seconds", days, hours, minutes, seconds)
38
+ sprintf("%d days %02d hours %02d minutes %02d seconds", days, hours, minutes, seconds)
34
39
  elsif days == 1
35
- return sprintf("%d day %02d hours %02d minutes %02d seconds", days, hours, minutes, seconds)
40
+ sprintf("%d day %02d hours %02d minutes %02d seconds", days, hours, minutes, seconds)
36
41
  elsif hours > 0
37
- return sprintf("%d hours %02d minutes %02d seconds", hours, minutes, seconds)
42
+ sprintf("%d hours %02d minutes %02d seconds", hours, minutes, seconds)
38
43
  elsif minutes > 0
39
- return sprintf("%d minutes %02d seconds", minutes, seconds)
44
+ sprintf("%d minutes %02d seconds", minutes, seconds)
40
45
  else
41
- return sprintf("%02d seconds", seconds)
46
+ sprintf("%02d seconds", seconds)
42
47
  end
43
48
  end
44
49
  end
@@ -20,10 +20,13 @@
20
20
  require "net/https"
21
21
  require "uri"
22
22
 
23
- # http://sldn.softlayer.com/reference/services/SoftLayer_Resource_Metadata
23
+ # https://softlayer.github.io/reference/services/SoftLayer_Resource_Metadata/
24
24
  module ::Ohai::Mixin::SoftlayerMetadata
25
25
  SOFTLAYER_API_QUERY_URL = "https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata" unless defined?(SOFTLAYER_API_QUERY_URL)
26
26
 
27
+ # fetch metadata items and build out hash of data
28
+ #
29
+ # @return [Hash]
27
30
  def fetch_metadata
28
31
  {
29
32
  "public_fqdn" => fetch_metadata_item("getFullyQualifiedDomainName.txt"),
@@ -39,10 +42,16 @@ module ::Ohai::Mixin::SoftlayerMetadata
39
42
  # however Chef-omnibus should set SSL_CERT_FILE to point to a valid file.
40
43
  # Manually supply and specify a suitable CA bundle here or
41
44
  # set the SSL_CERT_FILE file environment variable to a valid value otherwise.
45
+ #
46
+ # @return [String]
42
47
  def ca_file_location
43
48
  ::Ohai::Config[:ca_file]
44
49
  end
45
50
 
51
+ # fetch a specified item from the Softlayer metadata API
52
+ # @param item [String] the metadata item to fetch
53
+ #
54
+ # @return [String] the response body
46
55
  def fetch_metadata_item(item)
47
56
  full_url = "#{SOFTLAYER_API_QUERY_URL}/#{item}"
48
57
  u = URI(full_url)
@@ -22,6 +22,7 @@ class String
22
22
  # underscore will also change ’::’ to ’/’ to convert namespaces to paths.
23
23
  # This should implement the same functionality as underscore method in
24
24
  # ActiveSupport::CoreExtensions::String::Inflections
25
+ # @return [String]
25
26
  def wmi_underscore
26
27
  gsub(/::/, "/").gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
27
28
  gsub(/([a-z\d])([A-Z])/, '\1_\2').tr("-", "_").downcase
@@ -59,7 +59,7 @@ Ohai.plugin(:Filesystem) do
59
59
  else
60
60
  key = fields[0] + ":" + fields[1]
61
61
  oldie[key] ||= Mash.new
62
- oldie[key][:mount] = fields[1]
62
+ oldie[key][:mount] = fields[2]
63
63
  oldie[key][:fs_type] = fields[3]
64
64
  oldie[key][:mount_options] = fields[7].split(",")
65
65
  end
@@ -68,7 +68,6 @@ Ohai.plugin(:Lspci) do
68
68
  standard_array(devices, d_id, "module", dev[1])
69
69
  when "SDevice"
70
70
  standard_form(devices, d_id, hhhh, "sdevice", dev[1])
71
- else
72
71
  end
73
72
  end
74
73
 
@@ -32,6 +32,9 @@ Ohai.plugin(:Openstack) do
32
32
  if get_attribute(:dmi, :system, :all_records, 0, :Manufacturer) =~ /OpenStack/
33
33
  logger.trace("Plugin Openstack: has_openstack_dmi? == true")
34
34
  true
35
+ elsif get_attribute(:dmi, :system, :product_name) == "OpenStack Compute"
36
+ logger.trace("Plugin Openstack: has_openstack_dmi? == true")
37
+ true
35
38
  else
36
39
  logger.trace("Plugin Openstack: has_openstack_dmi? == false")
37
40
  false
@@ -30,7 +30,7 @@ Ohai.plugin(:CPU) do
30
30
  currentcpu = 0
31
31
  cpucores = Array.new
32
32
  cpusockets = Array.new
33
- processor_info.each_with_index do |processor, i|
33
+ processor_info.each do |processor|
34
34
  _desc, instance, _record, keyvalue = processor.split(":")
35
35
  cpu[instance] ||= Mash.new
36
36
  if currentcpu != instance
@@ -18,5 +18,5 @@
18
18
 
19
19
  module Ohai
20
20
  OHAI_ROOT = File.expand_path(File.dirname(__FILE__))
21
- VERSION = "14.1.3"
21
+ VERSION = "14.2.0"
22
22
  end
@@ -69,7 +69,7 @@ DF_PK
69
69
  /dev/hd11admin /admin jfs2 Jul 17 13:22 rw,log=/dev/hd8
70
70
  /proc /proc procfs Jul 17 13:22 rw
71
71
  /dev/hd10opt /opt jfs2 Jul 17 13:22 rw,log=/dev/hd8
72
- 192.168.1.11 /stage/middleware /stage/middleware nfs3 Jul 17 13:24 ro,bg,hard,intr,sec=sys
72
+ 192.168.1.11 /stage/middleware1 /stage/middleware2 nfs3 Jul 17 13:24 ro,bg,hard,intr,sec=sys
73
73
  MOUNT
74
74
 
75
75
  @mount_wpar = <<-MOUNT
@@ -82,7 +82,7 @@ MOUNT
82
82
  Global /tmp jfs2 Nov 23 21:03 rw,log=NULL
83
83
  Global /usr jfs2 Nov 23 21:03 rw,log=NULL
84
84
  Global /var jfs2 Nov 23 21:03 rw,log=NULL
85
- 192.168.1.11 /stage/middleware /stage/middleware nfs3 Jul 17 13:24 ro,bg,hard,intr,sec=sys
85
+ 192.168.1.11 /stage/middleware3 /stage/middleware4 nfs3 Jul 17 13:24 ro,bg,hard,intr,sec=sys
86
86
  MOUNT
87
87
 
88
88
  @plugin = get_plugin("aix/filesystem")
@@ -134,19 +134,19 @@ MOUNT
134
134
  expect(@plugin[:filesystem]["/dev/hd4"]["mount_options"]).to eq(["rw", "log=/dev/hd8"])
135
135
  end
136
136
 
137
- # For entries like 192.168.1.11 /stage/middleware /stage/middleware nfs3 Jul 17 13:24 ro,bg,hard,intr,sec=sys
137
+ # For entries like 192.168.1.11 /stage/middleware1 /stage/middleware2 nfs3 Jul 17 13:24 ro,bg,hard,intr,sec=sys
138
138
  context "having node values" do
139
139
 
140
140
  it "returns the filesystem mount location" do
141
- expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware"]["mount"]).to eq("/stage/middleware")
141
+ expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware1"]["mount"]).to eq("/stage/middleware2")
142
142
  end
143
143
 
144
144
  it "returns the filesystem type" do
145
- expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware"]["fs_type"]).to eq("nfs3")
145
+ expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware1"]["fs_type"]).to eq("nfs3")
146
146
  end
147
147
 
148
148
  it "returns the filesystem mount options" do
149
- expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware"]["mount_options"]).to eq(["ro", "bg", "hard", "intr", "sec=sys"])
149
+ expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware1"]["mount_options"]).to eq(["ro", "bg", "hard", "intr", "sec=sys"])
150
150
  end
151
151
  end
152
152
  end
@@ -196,19 +196,19 @@ MOUNT
196
196
  expect(@plugin[:filesystem]["Global:/"]["mount_options"]).to eq(["rw", "log=NULL"])
197
197
  end
198
198
 
199
- # For entries like 192.168.1.11 /stage/middleware /stage/middleware nfs3 Jul 17 13:24 ro,bg,hard,intr,sec=sys
199
+ # For entries like 192.168.1.11 /stage/middleware3 /stage/middleware4 nfs3 Jul 17 13:24 ro,bg,hard,intr,sec=sys
200
200
  context "having node values" do
201
201
 
202
202
  it "returns the filesystem mount location" do
203
- expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware"]["mount"]).to eq("/stage/middleware")
203
+ expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware3"]["mount"]).to eq("/stage/middleware4")
204
204
  end
205
205
 
206
206
  it "returns the filesystem type" do
207
- expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware"]["fs_type"]).to eq("nfs3")
207
+ expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware3"]["fs_type"]).to eq("nfs3")
208
208
  end
209
209
 
210
210
  it "returns the filesystem mount options" do
211
- expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware"]["mount_options"]).to eq(["ro", "bg", "hard", "intr", "sec=sys"])
211
+ expect(@plugin[:filesystem]["192.168.1.11:/stage/middleware3"]["mount_options"]).to eq(["ro", "bg", "hard", "intr", "sec=sys"])
212
212
  end
213
213
  end
214
214
  end
@@ -40,16 +40,35 @@ describe Ohai::System, "plugin openstack" do
40
40
  allow(plugin).to receive(:can_socket_connect?).
41
41
  with(Ohai::Mixin::Ec2Metadata::EC2_METADATA_ADDR, 80).
42
42
  and_return(false)
43
- plugin[:dmi] = { :system => { :all_records => [ { :Manufacturer => "OpenStack Foundation" } ] } }
43
+ plugin[:dmi] = dmi_data
44
44
  plugin.run
45
45
  end
46
46
 
47
- it "sets openstack attribute" do
48
- expect(plugin[:openstack][:provider]).to eq("openstack")
47
+ context "with normal openstack metadata" do
48
+ let(:dmi_data) do
49
+ { :system => { :all_records => [ { :Manufacturer => "OpenStack Foundation" } ] } }
50
+ end
51
+
52
+ it "sets openstack attribute" do
53
+ expect(plugin[:openstack][:provider]).to eq("openstack")
54
+ end
55
+
56
+ it "doesn't set metadata attributes" do
57
+ expect(plugin[:openstack][:instance_id]).to be_nil
58
+ end
49
59
  end
60
+ context "with Red Hat openstack metadata" do
61
+ let(:dmi_data) do
62
+ { :system => { :manufacturer => "Red Hat", :product_name => "OpenStack Compute" } }
63
+ end
50
64
 
51
- it "doesn't set metadata attributes" do
52
- expect(plugin[:openstack][:instance_id]).to be_nil
65
+ it "sets openstack attribute" do
66
+ expect(plugin[:openstack][:provider]).to eq("openstack")
67
+ end
68
+
69
+ it "doesn't set metadata attributes" do
70
+ expect(plugin[:openstack][:instance_id]).to be_nil
71
+ end
53
72
  end
54
73
  end
55
74
  end
@@ -225,7 +225,7 @@ EOF
225
225
 
226
226
  describe "when using :critical_plugins" do
227
227
  # if called from cli is true, we'll exit these tests
228
- let(:ohai) { Ohai::System.new() }
228
+ let(:ohai) { Ohai::System.new }
229
229
 
230
230
  before do
231
231
  Ohai.config[:critical_plugins] = [ :Fails ]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ohai
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.1.3
4
+ version: 14.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-15 00:00:00.000000000 Z
11
+ date: 2018-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: systemu