Sha256: b4cdd79b07faedf7d9086ca0ba040df8d8a42e080db62ae2a3d05877cb11b726
Contents?: true
Size: 1.84 KB
Versions: 3
Compression:
Stored size: 1.84 KB
Contents
# # Author:: Tim Smith (<tsmith@chef.io>) # Copyright:: Copyright 2017 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require "net/http" module Ohai module Mixin module AzureMetadata AZURE_METADATA_ADDR = "169.254.169.254" unless defined?(AZURE_METADATA_ADDR) AZURE_METADATA_URL = "/metadata/instance?api-version=2017-04-02" unless defined?(AZURE_METADATA_URL) # fetch the meta content with a timeout and the required header def http_get(uri) conn = Net::HTTP.start(AZURE_METADATA_ADDR) conn.read_timeout = 6 conn.get(uri, initheader = { "Metadata" => "true" }) end def fetch_metadata Ohai::Log.debug("Mixin AzureMetadata: Fetching metadata from host #{AZURE_METADATA_ADDR} at #{AZURE_METADATA_URL}") response = http_get(AZURE_METADATA_URL) if response.code == "200" begin data = StringIO.new(response.body) parser = FFI_Yajl::Parser.new parser.parse(data) rescue FFI_Yajl::ParseError Ohai::Log.warn("Mixin AzureMetadata: Metadata response is NOT valid JSON") nil end else Ohai::Log.warn("Mixin AzureMetadata: Received response code #{response.code} requesting metadata") nil end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ohai-13.8.0 | lib/ohai/mixin/azure_metadata.rb |
ohai-13.7.1 | lib/ohai/mixin/azure_metadata.rb |
ohai-13.7.0 | lib/ohai/mixin/azure_metadata.rb |