Class: Azure::Armrest::Storage::ManagedStorageHelper::ManagedDisk

Inherits:
Object
  • Object
show all
Defined in:
lib/azure/armrest/storage/managed_disk.rb

Instance Method Summary collapse

Constructor Details

#initialize(storage_service, disk_name, resource_group, options) ⇒ ManagedDisk

Returns a new instance of ManagedDisk.



10
11
12
13
14
15
# File 'lib/azure/armrest/storage/managed_disk.rb', line 10

def initialize(storage_service, disk_name, resource_group, options)
  @storage_service = storage_service
  @disk_name       = disk_name
  @resource_group  = resource_group
  @sas_url         = storage_service.access_token(disk_name, resource_group, options)
end

Instance Method Details

#closeObject



35
36
37
38
# File 'lib/azure/armrest/storage/managed_disk.rb', line 35

def close
  @storage_service.close(@disk_name, @resource_group)
  @sas_url = nil
end

#read(options = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/azure/armrest/storage/managed_disk.rb', line 17

def read(options = {})
  retries = 0
  begin
    @storage_service.read(@sas_url, options)
  rescue Azure::Armrest::ForbiddenException => err
    raise err if retries.positive?
    log('warn', "ManagedDisk.read: #{err} - getting new SAS URL")
    begin
      close
    rescue => err
      log('debug', "ManagedDisk.read: #{err} received on close ignored.")
    end
    @sas_url = @storage_service.access_token(@disk_name, @resource_group, options)
    retries += 1
    retry
  end
end