lib/fog/azurerm/utilities/general.rb in fog-azure-rm-0.1.0 vs lib/fog/azurerm/utilities/general.rb in fog-azure-rm-0.1.1

- old
+ new

@@ -8,11 +8,11 @@ subnet_id.split('/')[8] end # Pick Virtual Machine name from Virtual Machine Extension Id(String) def get_virtual_machine_from_id(vme_id) - vme_id.split('/')[8] + vme_id.split('/')[VM_NAME_POSITION] end # Extract Endpoint type from (String) def get_end_point_type(endpoint_type) endpoint_type.split('/')[2] @@ -51,13 +51,13 @@ type.split('/').last end def raise_azure_exception(exception, msg) message = if exception.respond_to? 'body' - "Exception in #{msg} #{exception.body['error']['message'] unless exception.body['error']['message'].nil?} Type: #{exception.class} \n " + "Exception in #{msg} #{exception.body['error']['message'] unless exception.body['error']['message'].nil?} Type: #{exception.class}\n#{exception.backtrace.join("\n")}" else - exception.inspect + "#{exception.inspect}\n#{exception.backtrace.join("\n")}" end Fog::Logger.debug exception.backtrace raise message end @@ -78,6 +78,73 @@ data[position] end def random_string(length) (0...length).map { ('a'..'z').to_a[rand(26)] }.join +end + +def get_blob_link(storage_account_name) + "http://#{storage_account_name}.blob.core.windows.net" +end + +def active_directory_service_settings + case CLOUD + when 'AzureChina' + MsRestAzure::ActiveDirectoryServiceSettings.get_azure_china_settings + when 'AzureGermanCloud' + MsRestAzure::ActiveDirectoryServiceSettings.get_azure_german_settings + when 'AzureUSGovernment' + MsRestAzure::ActiveDirectoryServiceSettings.get_azure_us_government_settings + else + MsRestAzure::ActiveDirectoryServiceSettings.get_azure_settings + end +end + +def resource_manager_endpoint_url + case CLOUD + when 'AzureChina' + AZURE_CHINA_RM_ENDPOINT_URL + when 'AzureGermanCloud' + GERMAN_CLOUD_RM_ENDPOINT_URL + when 'AzureUSGovernment' + US_GOVERNMENT_RM_ENDPOINT_URL + else + AZURE_GLOBAL_RM_ENDPOINT_URL + end +end + +def current_time + time = Time.now.to_f.to_s + time.split(/\W+/).join +end + +# Parse storage blob/container to a hash +def parse_storage_object(object) + data = {} + if object.is_a? Hash + object.each do |k, v| + if k == 'properties' + v.each do |j, l| + data[j] = l + end + else + data[k] = v + end + end + else + object.instance_variables.each do |p| + kname = p.to_s.delete('@') + if kname == 'properties' + properties = object.instance_variable_get(p) + properties.each do |k, v| + data[k.to_s] = v + end + else + data[kname] = object.instance_variable_get(p) + end + end + end + + data['last_modified'] = Time.parse(data['last_modified']) + data['etag'].delete!('"') + data end