require 'fog/azurerm' require 'yaml' ######################################################################################################################## ###################### Services object required by all actions ###################### ###################### Keep it Uncommented! ###################### ######################################################################################################################## azure_credentials = YAML.load_file('credentials/azure.yml') rs = Fog::Resources::AzureRM.new( tenant_id: azure_credentials['tenant_id'], client_id: azure_credentials['client_id'], client_secret: azure_credentials['client_secret'], subscription_id: azure_credentials['subscription_id'], environment: azure_credentials['environment'] ) compute = Fog::Compute::AzureRM.new( tenant_id: azure_credentials['tenant_id'], client_id: azure_credentials['client_id'], client_secret: azure_credentials['client_secret'], subscription_id: azure_credentials['subscription_id'], environment: azure_credentials['environment'] ) ######################################################################################################################## ###################### Resource names ##################### ######################################################################################################################## time = current_time resource_group_name = "MD-RG-#{time}" disk_name = "MD#{time}diskunique" ######################################################################################################################## ###################### Prerequisites ###################### ######################################################################################################################## begin rs.resource_groups.create( name: resource_group_name, location: LOCATION ) ######################################################################################################################## ###################### Check for Managed Disk ###################### ######################################################################################################################## flag = compute.managed_disks.check_managed_disk_exists(resource_group_name, disk_name) puts "Managed Disk doesn't exist." unless flag ######################################################################################################################## ###################### Create Managed Disk ###################### ######################################################################################################################## disk = compute.managed_disks.create( name: disk_name, location: LOCATION, resource_group_name: resource_group_name, account_type: 'Premium_LRS', disk_size_gb: 1023, creation_data: { create_option: 'Empty' } ) puts "Created managed disk: #{disk.name}" ######################################################################################################################## ###################### Grant and revoke access ###################### ######################################################################################################################## access_sas = compute.managed_disks.grant_access(resource_group_name, disk_name, 'Read', 1000) puts "Access SAS: #{access_sas}" response = compute.managed_disks.revoke_access(resource_group_name, disk_name) puts "Revoke Access response: #{response.inspect}" ######################################################################################################################## ###################### List Managed Disks ###################### ######################################################################################################################## puts 'List managed disks:' compute.managed_disks(resource_group: resource_group_name).each do |managed_disk| puts managed_disk.name end ######################################################################################################################## ###################### List all Managed Disks in a subscription ###################### ######################################################################################################################## puts 'List managed disks in Subscription:' compute.managed_disks.each do |m_disk| puts m_disk.name end ######################################################################################################################## ###################### Get and Delete Managed Disk ###################### ######################################################################################################################## disk = compute.managed_disks.get(resource_group_name, disk_name) puts "Get managed disk: #{disk.inspect}" puts "Deleted managed disk: #{disk.destroy}" ######################################################################################################################## ###################### CleanUp ###################### ######################################################################################################################## rg = rs.resource_groups.get(resource_group_name) rg.destroy puts 'Integration Test for managed disk ran successfully' rescue puts 'Integration Test for managed disk is failing' resource_group.destroy unless resource_group.nil? end