lib/fog/azurerm/requests/storage/create_disk.rb in fog-azure-rm-0.1.1 vs lib/fog/azurerm/requests/storage/create_disk.rb in fog-azure-rm-0.1.2
- old
+ new
@@ -1,62 +1,62 @@
-module Fog
- module Storage
- class AzureRM
- # This class provides the actual implementation for service calls.
- class Real
- # Create a disk in Azure storage.
- #
- # @param disk_name [String] Name of disk
- # @param disk_size_in_gb [Integer] Disk size in GiB. Value range: [1, 1023]
- # @param options [Hash]
- # @option options [String] container_name Sets name of the container which contains the disk. Default is 'vhds'.
- #
- # @return [Boolean]
- #
- def create_disk(disk_name, disk_size_in_gb, options = {})
- msg = "Creating disk(#{disk_name}, #{disk_size_in_gb}). options: #{options}"
- Fog::Logger.debug msg
-
- raise ArgumentError, "disk_size_in_gb #{disk_size_in_gb} must be an integer" unless disk_size_in_gb.is_a?(Integer)
- raise ArgumentError, "Azure minimum disk size is 1 GiB: #{disk_size_in_gb}" if disk_size_in_gb < 1
- raise ArgumentError, "Azure maximum disk size is 1023 GiB: #{disk_size_in_gb}" if disk_size_in_gb > 1023
-
- container_name = options.delete(:container_name)
- container_name = 'vhds' if container_name.nil?
- blob_name = "#{disk_name}.vhd"
- vhd_size = disk_size_in_gb * 1024 * 1024 * 1024
- blob_size = vhd_size + 512
-
- opts = {
- type: :fixed,
- name: '/tmp/footer.vhd', # Only used to initialize vhd, no local file is generated.
- size: disk_size_in_gb
- }
- vhd_footer = Vhd::Library.new(opts).footer.values.join
-
- begin
- create_page_blob(container_name, blob_name, blob_size, options)
- put_blob_pages(container_name, blob_name, vhd_size, blob_size - 1, vhd_footer, options)
- rescue
- begin
- delete_blob(container_name, blob_name)
- rescue => ex
- Fog::Logger.debug "Cannot delete the blob: #{container_name}/#{blob_name} after create_disk failed. #{ex.inspect}"
- end
- raise
- end
-
- Fog::Logger.debug "Created a disk #{disk_name} successfully."
- true
- end
- end
-
- # This class provides the mock implementation for unit tests.
- class Mock
- def create_disk(*)
- Fog::Logger.debug 'Disk created successfully.'
- true
- end
- end
- end
- end
-end
+module Fog
+ module Storage
+ class AzureRM
+ # This class provides the actual implementation for service calls.
+ class Real
+ # Create a disk in Azure storage.
+ #
+ # @param disk_name [String] Name of disk
+ # @param disk_size_in_gb [Integer] Disk size in GiB. Value range: [1, 1023]
+ # @param options [Hash]
+ # @option options [String] container_name Sets name of the container which contains the disk. Default is 'vhds'.
+ #
+ # @return [Boolean]
+ #
+ def create_disk(disk_name, disk_size_in_gb, options = {})
+ msg = "Creating disk(#{disk_name}, #{disk_size_in_gb}). options: #{options}"
+ Fog::Logger.debug msg
+
+ raise ArgumentError, "disk_size_in_gb #{disk_size_in_gb} must be an integer" unless disk_size_in_gb.is_a?(Integer)
+ raise ArgumentError, "Azure minimum disk size is 1 GiB: #{disk_size_in_gb}" if disk_size_in_gb < 1
+ raise ArgumentError, "Azure maximum disk size is 1023 GiB: #{disk_size_in_gb}" if disk_size_in_gb > 1023
+
+ container_name = options.delete(:container_name)
+ container_name = 'vhds' if container_name.nil?
+ blob_name = "#{disk_name}.vhd"
+ vhd_size = disk_size_in_gb * 1024 * 1024 * 1024
+ blob_size = vhd_size + 512
+
+ opts = {
+ type: :fixed,
+ name: '/tmp/footer.vhd', # Only used to initialize vhd, no local file is generated.
+ size: disk_size_in_gb
+ }
+ vhd_footer = Vhd::Library.new(opts).footer.values.join
+
+ begin
+ create_page_blob(container_name, blob_name, blob_size, options)
+ put_blob_pages(container_name, blob_name, vhd_size, blob_size - 1, vhd_footer, options)
+ rescue
+ begin
+ delete_blob(container_name, blob_name)
+ rescue => ex
+ Fog::Logger.debug "Cannot delete the blob: #{container_name}/#{blob_name} after create_disk failed. #{ex.inspect}"
+ end
+ raise
+ end
+
+ Fog::Logger.debug "Created a disk #{disk_name} successfully."
+ true
+ end
+ end
+
+ # This class provides the mock implementation for unit tests.
+ class Mock
+ def create_disk(*)
+ Fog::Logger.debug 'Disk created successfully.'
+ true
+ end
+ end
+ end
+ end
+end