class Fog::KeyVault::AzureRM::Real

This class provides the actual implementation for service calls.

This class provides the actual implementation for service calls.

This class provides the actual implementation for service calls.

Real class for KeyVault Request

Real class for KeyVault Request

Real class for KeyVault Request

Public Class Methods

new(options) click to toggle source
# File lib/fog/azurerm/key_vault.rb, line 36
def initialize(options)
  begin
    require 'azure_mgmt_key_vault'
  rescue LoadError => e
    retry if require('rubygems')
    raise e.message
  end

  credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret])
  @key_vault_client = ::Azure::ARM::KeyVault::KeyVaultManagementClient.new(credentials)
  @key_vault_client.subscription_id = options[:subscription_id]
end

Public Instance Methods

check_vault_exists(resource_group, vault_name) click to toggle source
# File lib/fog/azurerm/requests/key_vault/check_vault_exists.rb, line 6
def check_vault_exists(resource_group, vault_name)
  msg = "Checking Vault #{vault_name}"
  Fog::Logger.debug msg
  begin
    @key_vault_client.vaults.get(resource_group, vault_name)
    Fog::Logger.debug "Vault #{vault_name} exists."
    true
  rescue MsRestAzure::AzureOperationError => e
    if e.body['error']['code'] == 'ResourceNotFound'
      Fog::Logger.debug "Vault #{vault_name} doesn't exist."
      false
    else
      raise_azure_exception(e, msg)
    end
  end
end
create_or_update_vault(vault_hash) click to toggle source
# File lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb, line 6
def create_or_update_vault(vault_hash)
  msg = "Creating Vault: #{vault_hash[:name]}."
  Fog::Logger.debug msg
  vault_parameters = get_vault_param_object(vault_hash)
  begin
    vault = @key_vault_client.vaults.create_or_update(vault_hash[:resource_group], vault_hash[:name], vault_parameters)
  rescue MsRestAzure::AzureOperationError => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Vault: #{vault_hash[:name]} created successfully."
  vault
end
delete_vault(resource_group, vault_name) click to toggle source
# File lib/fog/azurerm/requests/key_vault/delete_vault.rb, line 6
def delete_vault(resource_group, vault_name)
  msg = "Deleting Vault: #{vault_name}."
  Fog::Logger.debug msg
  begin
    @key_vault_client.vaults.delete(resource_group, vault_name)
  rescue MsRestAzure::AzureOperationError => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Vault: #{vault_name} deleted successfully."
  true
end
get_vault(resource_group, vault_name) click to toggle source
# File lib/fog/azurerm/requests/key_vault/get_vault.rb, line 6
def get_vault(resource_group, vault_name)
  msg = "Getting Vault => #{vault_name} from Resource Group => #{resource_group}..."
  Fog::Logger.debug msg
  begin
    vault = @key_vault_client.vaults.get(resource_group, vault_name)
  rescue MsRestAzure::AzureOperationError => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Vault fetched successfully from Resource Group => #{resource_group}"
  vault
end
list_vaults(resource_group) click to toggle source
# File lib/fog/azurerm/requests/key_vault/list_vaults.rb, line 6
def list_vaults(resource_group)
  msg = "Listing Vaults in Resource Group: #{resource_group}."
  Fog::Logger.debug msg
  begin
    vaults = @key_vault_client.vaults.list_by_resource_group_as_lazy(resource_group)
  rescue MsRestAzure::AzureOperationError => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Vaults listed successfully in Resource Group: #{resource_group}"
  vaults.value
end

Private Instance Methods

get_access_policies_object(access_policies_hash) click to toggle source
# File lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb, line 43
def get_access_policies_object(access_policies_hash)
  access_policies_arr = []
  unless access_policies_hash.nil?
    access_policies_hash.each do |access_policy_hash|
      access_policies_arr.push(get_access_policy_entry_object(access_policy_hash))
    end
  end
  access_policies_arr
end
get_access_policy_entry_object(access_policy_hash) click to toggle source
# File lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb, line 53
def get_access_policy_entry_object(access_policy_hash)
  access_policy_entry = Azure::ARM::KeyVault::Models::AccessPolicyEntry.new
  access_policy_entry.tenant_id = access_policy_hash[:tenant_id]
  access_policy_entry.object_id = access_policy_hash[:object_id]
  access_policy_entry.permissions = get_permission_object(access_policy_hash[:permissions])
  access_policy_entry
end
get_permission_object(permission_hash) click to toggle source
# File lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb, line 61
def get_permission_object(permission_hash)
  permission = Azure::ARM::KeyVault::Models::Permissions.new
  permission.keys = permission_hash[:keys]
  permission.secrets = permission_hash[:secrets]
  permission.certificates = permission_hash[:certificates]
  permission
end
get_sku_object(vault_hash) click to toggle source
# File lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb, line 36
def get_sku_object(vault_hash)
  sku = Azure::ARM::KeyVault::Models::Sku.new
  sku.family = vault_hash[:sku_family]
  sku.name = vault_hash[:sku_name]
  sku
end
get_vault_param_object(vault_hash) click to toggle source
# File lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb, line 21
def get_vault_param_object(vault_hash)
  vault_param = Azure::ARM::KeyVault::Models::VaultCreateOrUpdateParameters.new
  vault_param.location = vault_hash[:location]
  vault_param.properties = get_vault_properties_object(vault_hash)
  vault_param
end
get_vault_properties_object(vault_hash) click to toggle source
# File lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb, line 28
def get_vault_properties_object(vault_hash)
  vault_properties = Azure::ARM::KeyVault::Models::VaultProperties.new
  vault_properties.tenant_id = vault_hash[:tenant_id]
  vault_properties.sku = get_sku_object(vault_hash)
  vault_properties.access_policies = get_access_policies_object(vault_hash[:access_policies])
  vault_properties
end