class Fog::Compute::AzureRM::ManagedDisk

This class is giving implementation of create/save and delete/destroy for Managed Disk.

Public Class Methods

parse(managed_disk) click to toggle source
# File lib/fog/azurerm/models/compute/managed_disk.rb, line 22
def self.parse(managed_disk)
  disk = get_hash_from_object(managed_disk)

  unless managed_disk.creation_data.nil?
    creation_data = Fog::Compute::AzureRM::CreationData.new
    disk['creation_data'] = creation_data.merge_attributes(Fog::Compute::AzureRM::CreationData.parse(managed_disk.creation_data))
  end

  unless managed_disk.encryption_settings.nil?
    encryption_settings = Fog::Compute::AzureRM::EncryptionSettings.new
    disk['encryption_settings'] = encryption_settings.merge_attributes(Fog::Compute::AzureRM::EncryptionSettings.parse(managed_disk.encryption_settings))
  end

  disk['resource_group_name'] = get_resource_group_from_id(managed_disk.id)

  disk
end

Public Instance Methods

destroy() click to toggle source
# File lib/fog/azurerm/models/compute/managed_disk.rb, line 49
def destroy
  service.delete_managed_disk(resource_group_name, name)
end
save() click to toggle source
# File lib/fog/azurerm/models/compute/managed_disk.rb, line 40
def save
  requires :name, :location, :resource_group_name, :creation_data
  requires :disk_size_gb, :account_type
  validate_creation_data_params(creation_data)

  disk = service.create_or_update_managed_disk(managed_disk_params)
  merge_attributes(Fog::Compute::AzureRM::ManagedDisk.parse(disk))
end

Private Instance Methods

managed_disk_params() click to toggle source
# File lib/fog/azurerm/models/compute/managed_disk.rb, line 61
def managed_disk_params
  {
    name: name,
    location: location,
    resource_group_name: resource_group_name,
    account_type: account_type,
    os_type: os_type,
    disk_size_gb: disk_size_gb,
    tags: tags,
    creation_data: creation_data,
    encryption_settings: encryption_settings
  }
end
validate_creation_data_params(creation_data) click to toggle source
# File lib/fog/azurerm/models/compute/managed_disk.rb, line 55
def validate_creation_data_params(creation_data)
  unless creation_data.key?(:create_option)
    raise(ArgumentError, ':create_option is required for this operation')
  end
end