class Azure::StorageManagement::StorageManagementService

Provides Storage Management API

Private Instance Methods

create_storage_account(name, options = {}) click to toggle source

Public: Create a new storage account in Microsoft Azure.

Attributes

  • name - String. The name of the storage service.

  • options - Hash. Optional parameters.

Options

Accepted key/value pairs in options parameter are:

  • :label - String. The label for this storage account. The name will

be used as label if none specified. (optional)

  • :location - String. The location where the storage

service will be created. Reqruied if no affinity_group_name specified.

  • :description - String. A description for the storage

service. (optional)

  • :affinity_group_name - String. The name of an existing affinity group

in the specified subscription. Required if no location specified.

  • :geo_replication_enabled - String. A flag indicating wheter to

turn Geo replication on or off. Values other than 'true'/'false' will result in an error from the REST API. (optional)

  • :extended_properties - Hash. Key/Value pairs of extended

properties to add to the storage account. The key is used as the property name and the value as its value. (optional)

  • :account_type - String. Specifies the type of storage account

See msdn.microsoft.com/en-us/library/azure/hh264518.aspx

Returns None

# File lib/azure/storage_management/storage_management_service.rb, line 88
def create_storage_account(name, options = {})
  raise 'Name not specified' if !name || name.class != String || name.empty?
  options[:account_type] ||= 'Standard_GRS'
  if get_storage_account(name)
    Azure::Loggerx.warn "Storage Account #{name} already exists. Skipped..."
  else
    Azure::Loggerx.info "Creating Storage Account #{name}."
    body = Serialization.storage_services_to_xml(name, options)
    request_path = '/services/storageservices'
    request = client.management_request(:post, request_path, body: body)
    request.call
  end
end
delete_storage_account(name) click to toggle source

Public: Deletes the specified storage account of given subscription id from Microsoft Azure.

Attributes

  • name - String. Storage account name.

See msdn.microsoft.com/en-us/library/azure/hh264517.aspx

Returns: None

# File lib/azure/storage_management/storage_management_service.rb, line 151
def delete_storage_account(name)
  Azure::Loggerx.info "Deleting Storage Account #{name}."
  request_path = "/services/storageservices/#{name}"
  request = client.management_request(:delete, request_path)
  request.call
rescue => e
  e.message
end
get_storage_account(name) click to toggle source

Public: Checks to see if the specified storage account is available

Attributes

  • name - String. Storage account name.

Returns an Azure::StorageManagement::StorageAccount instance

# File lib/azure/storage_management/storage_management_service.rb, line 39
def get_storage_account(name)
  list_storage_accounts.select { |x| x.name.casecmp(name.to_s) == 0 }.first
end
get_storage_account_keys(name) click to toggle source

Public: Gets the primary and secondary access keys for the specified storage account.

Attributes

  • name - String. Storage account name.

Returns an Azure::StorageManagement::StorageAccountKeys instance.

See: msdn.microsoft.com/en-us/library/azure/ee460785.aspx

# File lib/azure/storage_management/storage_management_service.rb, line 193
def get_storage_account_keys(name)
  if get_storage_account name
    path = "/services/storageservices/#{name}/keys"
    request = client.management_request(:get, path)
    response = request.call
    Serialization.storage_account_keys_from_xml(response)
  else
    Azure::Loggerx.warn "Storage Account '#{name}' does not exist."
  end
end
get_storage_account_properties(name) click to toggle source

Public: Gets the properties of the storage account specified.

Attributes

  • name - String. The name of the storage account. Required.

See msdn.microsoft.com/en-us/library/azure/ee460802.aspx

Returns the storage account

# File lib/azure/storage_management/storage_management_service.rb, line 52
def get_storage_account_properties(name)
  request_path = "/services/storageservices/#{name}"
  request = client.management_request(:get, request_path)
  response = request.call
  Serialization.storage_services_from_xml(response).first
end
list_storage_accounts() click to toggle source

Public: Gets a list of storage accounts available under the current subscription.

Returns an array of Azure::StorageManagement::StorageAccount objects

# File lib/azure/storage_management/storage_management_service.rb, line 25
def list_storage_accounts
  request_path = '/services/storageservices'
  request = client.management_request(:get, request_path)
  response = request.call
  Serialization.storage_services_from_xml(response)
end
regenerate_storage_account_keys(name, key_type = 'primary') click to toggle source

Public: Regenerates the primary or secondary access key for the specified storage account

Attributes

  • name - String. Storage account name.

  • key_type - String. Specifies which key(primary or secondary) to regenerate

Returns an Azure::StorageManagement::StorageAccountKeys instance.

See: msdn.microsoft.com/en-us/library/azure/ee460795.aspx

# File lib/azure/storage_management/storage_management_service.rb, line 171
def regenerate_storage_account_keys(name, key_type = 'primary')
  if get_storage_account name
    path = "/services/storageservices/#{name}/keys?action=regenerate"
    body = Serialization.regenerate_storage_account_keys_to_xml key_type
    request = client.management_request(:post, path, body)
    response = request.call
    Serialization.storage_account_keys_from_xml(response)
  else
    Azure::Loggerx.warn "Storage Account '#{name}' does not exist."
  end
end
update_storage_account(name, options) click to toggle source

Public: Updates an existing storage account in Microsoft Azure

Attributes

  • name - String. The name of the storage service.

  • options - Hash. parameters.

Options

Accepted key/value pairs in options parameter are:

  • :label - String. A label for the storage service. Required if no

description is provided. If both label and description are provided, only the label will get updated.

  • :description - String. A description for the storage service.

Required if no label is provided. If both label and description are provided, only the label will get updated.

  • :geo_replication_enabled - Boolean (TrueClass/FalseClass). Boolean

flag indicating whether to turn Geo replication on or off. (optional)

  • :extended_properties - Hash. Key/Value pairs of extended

properties to add to the storage account. The key is used as the property name and the value as its value. (optional)

  • :account_type - String. Specifies the type of storage account

See msdn.microsoft.com/en-us/library/azure/hh264516.aspx

Returns None Fails with RuntimeError if invalid options specified

# File lib/azure/storage_management/storage_management_service.rb, line 129
def update_storage_account(name, options)
  if get_storage_account name
    Azure::Loggerx.info "Account '#{name}' exists, updating..."
    body = Serialization.storage_update_to_xml options
    request_path = "/services/storageservices/#{name}"
    request = client.management_request(:put, request_path, body)
    request.call
  else
    Azure::Loggerx.warn "Storage Account '#{name}' does not exist. Skipped..."
  end
end