Class: AzureBlob::InstanceMetadataService

Inherits:
Object
  • Object
show all
Defined in:
lib/azure_blob/instance_metadata_service.rb

Overview

:nodoc:

Constant Summary collapse

IDENTITY_ENDPOINT =
ENV["IDENTITY_ENDPOINT"] || "http://169.254.169.254/metadata/identity/oauth2/token"
API_VERSION =
ENV["IDENTITY_ENDPOINT"] ? "2019-08-01" : "2018-02-01"
RESOURCE_URI =
"https://storage.azure.com/"

Instance Method Summary collapse

Constructor Details

#initialize(principal_id: nil) ⇒ InstanceMetadataService

Returns a new instance of InstanceMetadataService.



7
8
9
10
11
12
13
14
15
# File 'lib/azure_blob/instance_metadata_service.rb', line 7

def initialize(principal_id: nil)
  @identity_uri = URI.parse(IDENTITY_ENDPOINT)
  params = {
    'api-version': API_VERSION,
    resource: RESOURCE_URI,
  }
  params[:principal_id] = principal_id if principal_id
  @identity_uri.query = URI.encode_www_form(params)
end

Instance Method Details

#expiration(response) ⇒ Object



24
25
26
# File 'lib/azure_blob/instance_metadata_service.rb', line 24

def expiration(response)
  Time.at(response["expires_on"].to_i)
end

#requestObject



17
18
19
20
21
22
# File 'lib/azure_blob/instance_metadata_service.rb', line 17

def request
  headers =  { "Metadata" => "true" }
  headers["X-IDENTITY-HEADER"] = ENV["IDENTITY_HEADER"] if ENV["IDENTITY_HEADER"]

  AzureBlob::Http.new(@identity_uri, headers).get
end