lib/ohai/mixin/alibaba_metadata.rb in ohai-17.9.4 vs lib/ohai/mixin/alibaba_metadata.rb in ohai-18.0.14

- old
+ new

@@ -36,31 +36,26 @@ conn.read_timeout = 6 conn.keep_alive_timeout = 6 conn.get("/2016-01-01/#{uri}", { "User-Agent" => "chef-ohai/#{Ohai::VERSION}" }) end - def fetch_metadata(id = "", is_directory = true) + def fetch_metadata(id = "") response = http_get(id) return nil unless response.code == "200" - if !is_directory - if json?(response.body) - data = String(response.body) - parser = FFI_Yajl::Parser.new - parser.parse(data) - else - response.body - end - elsif is_directory + if json?(response.body) + data = String(response.body) + parser = FFI_Yajl::Parser.new + parser.parse(data) + elsif response.body.include?("\n") temp = {} response.body.split("\n").each do |sub_attr| - if "#{id}/#{sub_attr}" != "/user-data" - uri = id == "" ? "#{id}#{sub_attr}/" : "#{id}#{sub_attr}" - temp[sanitize_key(sub_attr).gsub(/_$/, "")] = fetch_metadata(uri, has_trailing_slash?(uri)) - end + temp[sanitize_key(sub_attr)] = fetch_metadata("#{id}/#{sub_attr}") end temp + else + response.body end end # @param [String] data that might be JSON # @@ -78,10 +73,10 @@ # @param data [String] # # @return [Boolean] is there a trailing /? def has_trailing_slash?(data) - !!(data =~ %r{/$}) + !!( data =~ %r{/$} ) end def sanitize_key(key) key.gsub(%r{\-|/}, "_") end