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