test/integration/server.rb in fog-azure-rm-0.3.3 vs test/integration/server.rb in fog-azure-rm-0.3.4
- old
+ new
@@ -77,25 +77,38 @@
subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VM/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/mysubnet",
ip_configuration_name: 'testIpConfiguration',
private_ip_allocation_method: Fog::ARM::Network::Models::IPAllocationMethod::Dynamic
)
+ # TODO: Create new NIC for managed VM
+ network.network_interfaces.create(
+ name: 'NetInt2',
+ resource_group: 'TestRG-VM',
+ location: LOCATION,
+ subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VM/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/mysubnet",
+ ip_configuration_name: 'testIpConfiguration',
+ private_ip_allocation_method: Fog::ARM::Network::Models::IPAllocationMethod::Dynamic
+ )
+
########################################################################################################################
###################### Check for Virtual Machine ######################
########################################################################################################################
flag = compute.servers.check_vm_exists('TestRG-VM', 'TestVM')
puts "Virtual Machine doesn't exist." unless flag
########################################################################################################################
- ###################### Create Server ######################
+ ###################### Create Server ######################
########################################################################################################################
+ tags = { key1: 'value1', key2: 'value2' }
+
virtual_machine = compute.servers.create(
name: 'TestVM',
location: LOCATION,
resource_group: 'TestRG-VM',
+ tags: tags,
vm_size: 'Basic_A0',
storage_account_name: storage_account_name,
username: 'testuser',
password: 'Confiz=123',
disable_password_authentication: false,
@@ -106,20 +119,45 @@
version: 'latest',
platform: 'linux',
custom_data: 'echo customData',
os_disk_caching: Fog::ARM::Compute::Models::CachingTypes::None
)
- puts "Created virtual machine: #{virtual_machine.name}"
+ puts "Created un-managed virtual machine: #{virtual_machine.name}"
########################################################################################################################
+ ###################### Create Managed Server ######################
+ ########################################################################################################################
+ managed_vm = compute.servers.create(
+ name: 'TestVM-Managed',
+ location: LOCATION,
+ resource_group: 'TestRG-VM',
+ vm_size: 'Basic_A0',
+ storage_account_name: nil,
+ username: 'testuser',
+ password: 'Confiz=123',
+ disable_password_authentication: false,
+ network_interface_card_ids: ["/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VM/providers/Microsoft.Network/networkInterfaces/NetInt2"],
+ publisher: 'Canonical',
+ offer: 'UbuntuServer',
+ sku: '14.04.2-LTS',
+ version: 'latest',
+ platform: 'linux',
+ custom_data: 'echo customData',
+ os_disk_caching: Fog::ARM::Compute::Models::CachingTypes::None,
+ managed_disk_storage_type: Azure::ARM::Compute::Models::StorageAccountTypes::StandardLRS
+ )
+ puts "Created managed virtual machine: #{managed_vm.name}"
+
+ ########################################################################################################################
###################### Create Server Async ####################
########################################################################################################################
async_response = compute.servers.create_async(
name: 'TestVM',
location: LOCATION,
resource_group: 'TestRG-VM',
+ tags: tags,
vm_size: 'Basic_A0',
storage_account_name: storage_account_name,
username: 'testuser',
password: 'Confiz=123',
disable_password_authentication: false,
@@ -130,10 +168,11 @@
version: 'latest',
platform: 'linux',
custom_data: 'echo customData',
os_disk_caching: Fog::ARM::Compute::Models::CachingTypes::None
)
+
loop do
puts async_response.state
sleep(2) if async_response.pending?
@@ -155,11 +194,11 @@
virtual_machine = compute.servers.get('TestRG-VM', 'TestVM')
virtual_machine.attach_data_disk('datadisk1', 10, storage_account_name)
puts 'Attached Data Disk to VM'
########################################################################################################################
- ###################### Detach Data Disk from VM ######################
+ ###################### Detach Data Disk from VM ######################
########################################################################################################################
virtual_machine = compute.servers.get('TestRG-VM', 'TestVM')
virtual_machine.detach_data_disk('datadisk1')
puts 'Detached Data Disk from VM'
@@ -175,10 +214,44 @@
azure_storage_access_key: access_key
)
puts "Deleted data disk: #{storage_data.delete_disk('datadisk1')}"
########################################################################################################################
+ ###################### Create a Managed Data Disk ######################
+ ########################################################################################################################
+ managed_disk = compute.managed_disks.create(
+ name: 'ManagedDataDisk',
+ location: LOCATION,
+ resource_group_name: 'TestRG-VM',
+ account_type: 'Standard_LRS',
+ disk_size_gb: 100,
+ creation_data: {
+ create_option: 'Empty'
+ }
+ )
+ puts "Created Managed Disk: #{managed_disk.name}"
+
+ ########################################################################################################################
+ ###################### Attach Managed Data Disk to VM ######################
+ ########################################################################################################################
+ managed_vm.attach_managed_disk('ManagedDataDisk', 'TestRG-VM')
+ puts 'Attached Managed Data Disk to VM'
+
+ ########################################################################################################################
+ ###################### Detach Data Disk from VM ######################
+ ########################################################################################################################
+
+ managed_vm.detach_managed_disk('ManagedDataDisk')
+ puts 'Detached Managed Data Disk from VM'
+
+ ########################################################################################################################
+ ###################### Delete Managed Data Disk ######################
+ ########################################################################################################################
+ managed_disk.destroy
+ puts 'Deleted managed data disk'
+
+ ########################################################################################################################
###################### List VM in a resource group ######################
########################################################################################################################
virtual_machines = compute.servers(resource_group: 'TestRG-VM')
puts 'List virtual machines ina resource group:'
@@ -241,25 +314,30 @@
########################################################################################################################
###################### Delete VM ######################
########################################################################################################################
puts "Deleted virtual machine: #{virtual_machine.destroy}"
+ puts "Deleted virutal machine: #{managed_vm.destroy}"
########################################################################################################################
###################### CleanUp ######################
########################################################################################################################
nic = network.network_interfaces.get('TestRG-VM', 'NetInt')
nic.destroy
+ nic = network.network_interfaces.get('TestRG-VM', 'NetInt2')
+ nic.destroy
+
vnet = network.virtual_networks.get('TestRG-VM', 'testVnet')
vnet.destroy
storage = storage.storage_accounts.get('TestRG-VM', storage_account_name)
storage.destroy
resource_group = rs.resource_groups.get('TestRG-VM')
resource_group.destroy
+
puts 'Integration Test for virtual machine ran successfully'
rescue
puts 'Integration Test for virtual machine is failing'
resource_group.destroy unless resource_group.nil?
end