lib/fog/azurerm/storage.rb in fog-azure-rm-0.0.3 vs lib/fog/azurerm/storage.rb in fog-azure-rm-0.0.4

- old
+ new

@@ -1,25 +1,49 @@ require 'fog/azurerm/core' module Fog module Storage # This class registers models, requests and collections class AzureRM < Fog::Service - requires :tenant_id - requires :client_id - requires :client_secret - requires :subscription_id + # Recognizes when creating management client + recognizes :tenant_id + recognizes :client_id + recognizes :client_secret + recognizes :subscription_id + # Recognizes when creating data client + recognizes :azure_storage_account_name + recognizes :azure_storage_access_key + recognizes :azure_storage_connection_string + recognizes :debug + request_path 'fog/azurerm/requests/storage' request :create_storage_account request :list_storage_accounts request :delete_storage_account request :list_storage_account_for_rg request :check_storage_account_name_availability + request :get_storage_access_keys + request :delete_disk + request :get_blob_metadata + request :get_container_metadata + request :set_blob_metadata + request :set_container_metadata + request :create_container + request :delete_container + request :list_containers + request :get_container_properties + request :get_container_access_control_list model_path 'fog/azurerm/models/storage' model :storage_account collection :storage_accounts + model :data_disk + model :container + collection :containers + model :blob + collection :blobs + # This class provides the mock implementation for unit tests. class Mock def initialize(_options = {}) begin require 'azure_mgmt_storage' @@ -27,22 +51,38 @@ retry if require('rubygems') raise e.message end end end + # This class provides the actual implemention for service calls. class Real def initialize(options) begin require 'azure_mgmt_storage' + require 'azure/storage' + @debug = ENV['DEBUG'] || options[:debug] + require 'azure/core/http/debug_filter' if @debug 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]) - @storage_mgmt_client = ::Azure::ARM::Storage::StorageManagementClient.new(credentials) - @storage_mgmt_client.subscription_id = options[:subscription_id] + unless credentials.nil? + @storage_mgmt_client = ::Azure::ARM::Storage::StorageManagementClient.new(credentials) + @storage_mgmt_client.subscription_id = options[:subscription_id] + end + + if Fog::Credentials::AzureRM.new_account_credential? options + Azure::Storage.setup(storage_account_name: options[:azure_storage_account_name], + storage_access_key: options[:azure_storage_access_key], + storage_connection_string: options[:azure_storage_connection_string]) + + @blob_client = Azure::Storage::Blob::BlobService.new + @blob_client.with_filter(Azure::Storage::Core::Filter::ExponentialRetryPolicyFilter.new) + @blob_client.with_filter(Azure::Core::Http::DebugFilter.new) if @debug + end end end end end end