fog-azure-rm 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/.arclint +8 -0
  3. data/CHANGELOG.md +10 -0
  4. data/CONTRIBUTORS.md +4 -0
  5. data/lib/fog/azurerm/compute.rb +1 -0
  6. data/lib/fog/azurerm/docs/application_gateway.md +6 -7
  7. data/lib/fog/azurerm/docs/compute.md +45 -11
  8. data/lib/fog/azurerm/docs/dns.md +4 -1
  9. data/lib/fog/azurerm/docs/key_vault.md +3 -0
  10. data/lib/fog/azurerm/docs/network.md +18 -13
  11. data/lib/fog/azurerm/docs/resources.md +11 -8
  12. data/lib/fog/azurerm/docs/sql.md +18 -16
  13. data/lib/fog/azurerm/docs/storage.md +13 -78
  14. data/lib/fog/azurerm/docs/traffic_manager.md +7 -6
  15. data/lib/fog/azurerm/models/application_gateway/gateway.rb +5 -1
  16. data/lib/fog/azurerm/models/compute/availability_set.rb +4 -1
  17. data/lib/fog/azurerm/models/compute/creation_data.rb +4 -2
  18. data/lib/fog/azurerm/models/compute/data_disk.rb +26 -0
  19. data/lib/fog/azurerm/models/compute/managed_disk.rb +4 -4
  20. data/lib/fog/azurerm/models/compute/server.rb +31 -5
  21. data/lib/fog/azurerm/models/key_vault/vault.rb +3 -1
  22. data/lib/fog/azurerm/models/network/load_balancer.rb +3 -1
  23. data/lib/fog/azurerm/models/network/local_network_gateway.rb +3 -1
  24. data/lib/fog/azurerm/models/network/network_interface.rb +3 -1
  25. data/lib/fog/azurerm/models/network/network_security_group.rb +4 -2
  26. data/lib/fog/azurerm/models/network/public_ip.rb +4 -2
  27. data/lib/fog/azurerm/models/network/virtual_network.rb +4 -2
  28. data/lib/fog/azurerm/models/resources/resource_group.rb +3 -1
  29. data/lib/fog/azurerm/models/sql/sql_database.rb +3 -3
  30. data/lib/fog/azurerm/models/sql/sql_server.rb +3 -2
  31. data/lib/fog/azurerm/models/storage/storage_account.rb +4 -1
  32. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +3 -1
  33. data/lib/fog/azurerm/requests/application_gateway/create_or_update_application_gateway.rb +1 -0
  34. data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +49 -13
  35. data/lib/fog/azurerm/requests/compute/create_availability_set.rb +4 -2
  36. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +38 -36
  37. data/lib/fog/azurerm/requests/compute/detach_data_disk_from_vm.rb +1 -2
  38. data/lib/fog/azurerm/requests/dns/create_or_update_zone.rb +1 -2
  39. data/lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb +1 -0
  40. data/lib/fog/azurerm/requests/network/check_express_route_cir_auth_exists.rb +1 -1
  41. data/lib/fog/azurerm/requests/network/create_load_balancer.rb +4 -4
  42. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit.rb +1 -1
  43. data/lib/fog/azurerm/requests/network/create_or_update_local_network_gateway.rb +1 -2
  44. data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +4 -3
  45. data/lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb +4 -3
  46. data/lib/fog/azurerm/requests/network/create_or_update_public_ip.rb +5 -3
  47. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb +4 -3
  48. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway_connection.rb +1 -1
  49. data/lib/fog/azurerm/requests/resources/check_azure_resource_exists.rb +1 -1
  50. data/lib/fog/azurerm/requests/resources/create_resource_group.rb +2 -1
  51. data/lib/fog/azurerm/requests/resources/delete_resource_tag.rb +4 -4
  52. data/lib/fog/azurerm/requests/resources/tag_resource.rb +4 -4
  53. data/lib/fog/azurerm/requests/sql/create_or_update_database.rb +13 -10
  54. data/lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb +8 -5
  55. data/lib/fog/azurerm/requests/storage/create_storage_account.rb +4 -2
  56. data/lib/fog/azurerm/requests/traffic_manager/create_or_update_traffic_manager_profile.rb +13 -3
  57. data/lib/fog/azurerm/storage.rb +0 -19
  58. data/lib/fog/azurerm/version.rb +1 -1
  59. data/test/api_stub.rb +0 -2
  60. data/test/api_stub/models/compute/server.rb +62 -0
  61. data/test/api_stub/requests/compute/virtual_machine.rb +75 -0
  62. data/test/api_stub/requests/resources/resource_group.rb +1 -1
  63. data/test/integration/application_gateway.rb +8 -1
  64. data/test/integration/availability_set.rb +9 -2
  65. data/test/integration/external_load_balancer.rb +2 -1
  66. data/test/integration/internal_load_balancer.rb +2 -1
  67. data/test/integration/key_vault.rb +2 -1
  68. data/test/integration/managed_disk.rb +10 -5
  69. data/test/integration/network_interface.rb +2 -1
  70. data/test/integration/network_security_group.rb +2 -1
  71. data/test/integration/public_ip.rb +2 -1
  72. data/test/integration/resource_group.rb +5 -2
  73. data/test/integration/resource_tag.rb +4 -2
  74. data/test/integration/server.rb +81 -3
  75. data/test/integration/sql_server.rb +10 -2
  76. data/test/integration/storage_account.rb +32 -20
  77. data/test/integration/traffic_manager.rb +6 -1
  78. data/test/integration/virtual_network.rb +2 -1
  79. data/test/integration/virtual_network_gateway_connection.rb +3 -3
  80. data/test/models/application_gateway/test_gateway.rb +2 -1
  81. data/test/models/compute/test_availability_set.rb +2 -1
  82. data/test/models/{storage → compute}/test_data_disk.rb +2 -2
  83. data/test/models/compute/test_managed_disk.rb +2 -1
  84. data/test/models/compute/test_server.rb +31 -2
  85. data/test/models/dns/test_zone.rb +2 -1
  86. data/test/models/key_vault/test_vault.rb +2 -1
  87. data/test/models/network/test_load_balancer.rb +2 -1
  88. data/test/models/network/test_network_interface.rb +2 -1
  89. data/test/models/network/test_network_security_group.rb +2 -1
  90. data/test/models/network/test_public_ip.rb +2 -1
  91. data/test/models/network/test_virtual_network.rb +2 -1
  92. data/test/models/resources/test_resource_group.rb +2 -1
  93. data/test/models/sql/test_database.rb +2 -1
  94. data/test/models/sql/test_sql_server.rb +2 -1
  95. data/test/models/storage/test_storage_account.rb +2 -1
  96. data/test/models/traffic_manager/test_traffic_manager_profile.rb +2 -1
  97. data/test/requests/compute/test_attach_data_disk_to_vm.rb +21 -6
  98. data/test/requests/network/test_check_express_route_cir_auth_exists.rb +1 -1
  99. data/test/requests/network/test_create_load_balancer.rb +3 -2
  100. data/test/requests/network/test_create_network_interface.rb +4 -3
  101. data/test/requests/network/test_create_or_update_network_security_group.rb +3 -2
  102. data/test/requests/network/test_create_or_update_virtual_network.rb +5 -3
  103. data/test/requests/network/test_create_public_ip.rb +3 -2
  104. data/test/requests/network/test_update_public_ip.rb +3 -2
  105. data/test/requests/resources/test_create_resource_group.rb +3 -2
  106. data/test/requests/resources/test_delete_resource_tag.rb +3 -3
  107. data/test/requests/resources/test_tag_resource.rb +3 -3
  108. data/test/test_helper.rb +0 -14
  109. metadata +5 -36
  110. data/lib/fog/azurerm/models/storage/data_disk.rb +0 -27
  111. data/lib/fog/azurerm/models/storage/recovery_vault.rb +0 -50
  112. data/lib/fog/azurerm/models/storage/recovery_vaults.rb +0 -27
  113. data/lib/fog/azurerm/requests/storage/create_or_update_recovery_vault.rb +0 -54
  114. data/lib/fog/azurerm/requests/storage/delete_recovery_vault.rb +0 -35
  115. data/lib/fog/azurerm/requests/storage/disable_backup_protection.rb +0 -60
  116. data/lib/fog/azurerm/requests/storage/enable_backup_protection.rb +0 -61
  117. data/lib/fog/azurerm/requests/storage/get_all_backup_jobs.rb +0 -56
  118. data/lib/fog/azurerm/requests/storage/get_backup_container.rb +0 -53
  119. data/lib/fog/azurerm/requests/storage/get_backup_item.rb +0 -58
  120. data/lib/fog/azurerm/requests/storage/get_backup_job_for_vm.rb +0 -53
  121. data/lib/fog/azurerm/requests/storage/get_backup_protection_policy.rb +0 -64
  122. data/lib/fog/azurerm/requests/storage/get_recovery_vault.rb +0 -49
  123. data/lib/fog/azurerm/requests/storage/list_recovery_vaults.rb +0 -48
  124. data/lib/fog/azurerm/requests/storage/set_recovery_vault_context.rb +0 -36
  125. data/lib/fog/azurerm/requests/storage/start_backup.rb +0 -54
  126. data/test/api_stub/models/storage/recovery_vault.rb +0 -23
  127. data/test/api_stub/requests/storage/recovery_vault.rb +0 -189
  128. data/test/models/storage/test_recovery_vault.rb +0 -61
  129. data/test/models/storage/test_recovery_vaults.rb +0 -47
  130. data/test/requests/storage/test_create_recovery_vault.rb +0 -35
  131. data/test/requests/storage/test_delete_recovery_vault.rb +0 -34
  132. data/test/requests/storage/test_disable_backup_protection.rb +0 -52
  133. data/test/requests/storage/test_enable_backup_protection.rb +0 -66
  134. data/test/requests/storage/test_get_all_backup_jobs.rb +0 -35
  135. data/test/requests/storage/test_get_backup_container.rb +0 -35
  136. data/test/requests/storage/test_get_backup_item.rb +0 -35
  137. data/test/requests/storage/test_get_backup_job_for_vm.rb +0 -26
  138. data/test/requests/storage/test_get_backup_protection_policy.rb +0 -35
  139. data/test/requests/storage/test_get_recovery_vault.rb +0 -35
  140. data/test/requests/storage/test_list_recovery_vault.rb +0 -35
  141. data/test/requests/storage/test_set_recovery_vault_context.rb +0 -34
  142. data/test/requests/storage/test_start_backup.rb +0 -55
@@ -143,6 +143,81 @@ module ApiStub
143
143
  }
144
144
  end
145
145
 
146
+ def self.get_managed_disk_response(compute_client)
147
+ body = {
148
+ 'id' => '/subscriptions/{subscription_id}/resourceGroups/ManagedRG/providers/Microsoft.Compute/disks/ManagedDataDisk1',
149
+ 'name' => 'ManagedDataDisk1',
150
+ 'type' => 'Microsoft.Compute/disks',
151
+ 'location' => 'eastus',
152
+ 'account_type' => 'Premium_LRS',
153
+
154
+ 'time_created' => {
155
+ 'datetime' => '((2458025j,52461s,709327300n),+0s,2299161j)'
156
+ },
157
+
158
+ 'creation_data' => {
159
+ 'create_option' => 'Empty'
160
+ },
161
+
162
+ 'disk_size_gb' => 100,
163
+ 'provisioning_state' => 'Succeeded'
164
+ }
165
+ vm_mapper = Azure::ARM::Compute::Models::Disk.mapper
166
+ compute_client.deserialize(vm_mapper, body, 'result.body')
167
+ end
168
+
169
+ def self.get_vm_with_managed_disk_response(compute_client)
170
+ body = {
171
+ 'id' => '/subscriptions/{subscription_id}/resourceGroups/ManagedRG/providers/Microsoft.Compute/virtualMachines/ManagedVM',
172
+ 'name' => 'ManagedVM',
173
+ 'type' => 'Microsoft.Compute/virtualMachines',
174
+ 'location' => 'eastus',
175
+ 'hardware_profile' => {
176
+ 'vm_size' => 'Standard_D2s_v3'
177
+ },
178
+ 'storage_profile' => {
179
+ 'image_reference' => {
180
+ 'publisher' => 'Canonical',
181
+ 'offer' => 'UbuntuServer',
182
+ 'sku' => '16.04-LTS',
183
+ 'version' => 'latest'
184
+ },
185
+ 'os_disk' => {
186
+ 'os_type' => 'Linux',
187
+ 'name' => 'ManagedVM_OsDisk_1_d00cc277b8904c79ae5a777aa3fa5ac3',
188
+ 'caching' => 'ReadWrite',
189
+ 'create_option' => 'FromImage',
190
+ 'disk_size_gb' => 30,
191
+ 'managed_disk' => {
192
+ 'id' => '/subscriptions/{subscription_id}/resourceGroups/ManagedRG/providers/Microsoft.Compute/disks/ManagedVM_OsDisk_1_d00cc277b8904c79ae5a777aa3fa5ac3',
193
+ 'storage_account_type' => 'Premium_LRS'
194
+ }
195
+ },
196
+ 'data_disks' => [{
197
+ 'lun' => 0,
198
+ 'name' => 'ManagedDataDisk1',
199
+ 'caching' => 'None',
200
+ 'create_option' => 'Attach',
201
+ 'disk_size_gb' => 100,
202
+ 'managed_disk' => {
203
+ 'id' => '/subscriptions/{subscription_id}/resourceGroups/MANAGEDRG/providers/Microsoft.Compute/disks/ManagedDataDisk1',
204
+ 'storage_account_type' => 'Premium_LRS'
205
+ }
206
+ }]
207
+ },
208
+ 'network_profile' => {
209
+ 'network_interfaces' => [{
210
+ 'id' => '/subscriptions/{subscription_id}/resourceGroups/ManagedRG/providers/Microsoft.Network/networkInterfaces/managedvm992'
211
+ }]
212
+ },
213
+ 'provisioning_state' => 'Succeeded',
214
+ 'vm_id' => '73f38ae6-4767-4325-bd78-9ba4e74337d9'
215
+ }
216
+
217
+ vm_mapper = Azure::ARM::Compute::Models::VirtualMachine.mapper
218
+ compute_client.deserialize(vm_mapper, body, 'result.body')
219
+ end
220
+
146
221
  def self.create_virtual_machine_response(compute_client)
147
222
  body = '{
148
223
  "id":"/subscriptions/{subscription-id}/resourceGroups/fog-test-rg/providers/Microsoft.Compute/virtualMachines/fog-test-server",
@@ -9,7 +9,7 @@ module ApiStub
9
9
  "name": "fog-test-rg",
10
10
  "location": "westus",
11
11
  "tags": {
12
- "tagname1": "tagvalue1"
12
+ "tagkey1": "tagvalue1"
13
13
  },
14
14
  "properties": {
15
15
  "provisioning_state": "Succeeded"
@@ -28,12 +28,13 @@ network = Fog::Network::AzureRM.new(
28
28
  client_secret: azure_credentials['client_secret'],
29
29
  subscription_id: azure_credentials['subscription_id']
30
30
  )
31
+
31
32
  ########################################################################################################################
32
33
  ###################### Resource names #####################
33
34
  ########################################################################################################################
34
35
 
35
36
  time = current_time
36
- resource_group_name = "AG-RG-#{time}"
37
+ resource_group_name = "TestRG-AG-#{time}"
37
38
  virtual_network_name = "Vnet#{time}"
38
39
  subnet_name = "Sub#{time}"
39
40
  public_ip_name = "Pip#{time}"
@@ -82,10 +83,13 @@ begin
82
83
  ##################### Create Application Gateway ######################
83
84
  #######################################################################################################################
84
85
 
86
+ tags = { key1: 'value1', key2: 'value2' }
87
+
85
88
  app_gateway = application_gateway.gateways.create(
86
89
  name: app_gateway_name,
87
90
  location: LOCATION,
88
91
  resource_group: resource_group_name,
92
+ tags: tags,
89
93
  sku_name: 'Standard_Medium',
90
94
  sku_tier: 'Standard',
91
95
  sku_capacity: '2',
@@ -151,6 +155,7 @@ begin
151
155
  ]
152
156
  )
153
157
  puts "Created application gateway #{app_gateway.name}"
158
+
154
159
  ########################################################################################################################
155
160
  ###################### Get Application Gateway ######################
156
161
  ########################################################################################################################
@@ -217,6 +222,7 @@ begin
217
222
  unhealthy_threshold: 5
218
223
  )
219
224
  puts 'Added probe in application gateway'
225
+
220
226
  app_gateway.remove_probe(
221
227
  name: 'Probe1',
222
228
  protocol: 'http',
@@ -246,6 +252,7 @@ begin
246
252
 
247
253
  resource_group = resource.resource_groups.get(resource_group_name)
248
254
  resource_group.destroy
255
+
249
256
  puts 'Integration Test for application gateway ran successfully'
250
257
  rescue
251
258
  puts 'Integration Test for application gateway is failing'
@@ -29,7 +29,7 @@ compute = Fog::Compute::AzureRM.new(
29
29
  ########################################################################################################################
30
30
 
31
31
  time = current_time
32
- resource_group_name = "AS-RG-#{time}"
32
+ resource_group_name = "TestRG-AS-#{time}"
33
33
  unmanaged_as_name_default = "ASUnmanagedDefault#{time}"
34
34
  unmanaged_as_name_custom = "ASUnmanagedCustom#{time}"
35
35
  managed_as_name_default = "ASManagedDefault#{time}"
@@ -71,11 +71,14 @@ begin
71
71
  ###################### Create Unmanaged Availability Set (Default) ######################
72
72
  ########################################################################################################################
73
73
 
74
+ tags = { key1: 'value1', key2: 'value2' }
75
+
74
76
  puts "Create unmanaged default availability set (#{unmanaged_as_name_default}):"
75
77
  avail_set = compute.availability_sets.create(
76
78
  name: unmanaged_as_name_default,
77
79
  location: LOCATION,
78
- resource_group: resource_group_name
80
+ resource_group: resource_group_name,
81
+ tags: tags
79
82
  )
80
83
  name = avail_set.name
81
84
  fault_domains = avail_set.platform_fault_domain_count
@@ -91,6 +94,7 @@ begin
91
94
  name: unmanaged_as_name_custom,
92
95
  location: LOCATION,
93
96
  resource_group: resource_group_name,
97
+ tags: tags,
94
98
  platform_fault_domain_count: 3,
95
99
  platform_update_domain_count: 10
96
100
  )
@@ -108,6 +112,7 @@ begin
108
112
  name: managed_as_name_default,
109
113
  location: LOCATION,
110
114
  resource_group: resource_group_name,
115
+ tags: tags,
111
116
  use_managed_disk: true
112
117
  )
113
118
  name = avail_set.name
@@ -124,6 +129,7 @@ begin
124
129
  name: managed_as_name_custom,
125
130
  location: LOCATION,
126
131
  resource_group: resource_group_name,
132
+ tags: tags,
127
133
  platform_fault_domain_count: 2,
128
134
  platform_update_domain_count: 10,
129
135
  use_managed_disk: true
@@ -170,6 +176,7 @@ begin
170
176
 
171
177
  rg = rs.resource_groups.get(resource_group_name)
172
178
  rg.destroy
179
+
173
180
  puts 'Integration test for availability set ran successfully!'
174
181
  rescue
175
182
  puts 'Integration Test for availability set is failing!!!'
@@ -104,7 +104,8 @@ begin
104
104
  frontend_port: 3389,
105
105
  backend_port: 3389
106
106
  }
107
- ]
107
+ ],
108
+ tags: { key: 'value' }
108
109
  )
109
110
  puts "Created external load balancer: #{load_balancer.name}"
110
111
 
@@ -107,7 +107,8 @@ begin
107
107
  interval_in_seconds: 15,
108
108
  number_of_probes: 2
109
109
  }
110
- ]
110
+ ],
111
+ tags: { key: 'value' }
111
112
  )
112
113
  puts "Created internal load balancer: #{load_balancer.name}"
113
114
 
@@ -61,7 +61,8 @@ begin
61
61
  tenant_id: azure_credentials['tenant_id'],
62
62
  sku_family: 'A',
63
63
  sku_name: 'standard',
64
- access_policies: access_policies_arr
64
+ access_policies: access_policies_arr,
65
+ tags: { key: 'value' }
65
66
  )
66
67
 
67
68
  ########################################################################################################################
@@ -28,9 +28,9 @@ compute = Fog::Compute::AzureRM.new(
28
28
  ###################### Resource names #####################
29
29
  ########################################################################################################################
30
30
 
31
- time = current_time
32
- resource_group_name = "MD-RG-#{time}"
33
- disk_name = "MD#{time}diskunique"
31
+ time = current_time
32
+ resource_group_name = "TestRG-MD-#{time}"
33
+ disk_name = "MD#{time}"
34
34
 
35
35
  ########################################################################################################################
36
36
  ###################### Prerequisites ######################
@@ -53,10 +53,13 @@ begin
53
53
  ###################### Create Managed Disk ######################
54
54
  ########################################################################################################################
55
55
 
56
+ tags = { key1: 'value1', key2: 'value2' }
57
+
56
58
  disk = compute.managed_disks.create(
57
59
  name: disk_name,
58
60
  location: LOCATION,
59
61
  resource_group_name: resource_group_name,
62
+ tags: tags,
60
63
  account_type: 'Premium_LRS',
61
64
  disk_size_gb: 1023,
62
65
  creation_data: {
@@ -78,6 +81,7 @@ begin
78
81
  ########################################################################################################################
79
82
  ###################### List Managed Disks ######################
80
83
  ########################################################################################################################
84
+
81
85
  puts 'List managed disks:'
82
86
  compute.managed_disks(resource_group: resource_group_name).each do |managed_disk|
83
87
  puts managed_disk.name
@@ -106,8 +110,9 @@ begin
106
110
 
107
111
  rg = rs.resource_groups.get(resource_group_name)
108
112
  rg.destroy
109
- puts 'Integration Test for managed disk ran successfully'
113
+
114
+ puts 'Integration Test for managed disk ran successfully!'
110
115
  rescue
111
- puts 'Integration Test for managed disk is failing'
116
+ puts 'Integration Test for managed disk is failing!'
112
117
  resource_group.destroy unless resource_group.nil?
113
118
  end
@@ -106,7 +106,8 @@ begin
106
106
  subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-NI/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/mysubnet",
107
107
  public_ip_address_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-NI/providers/Microsoft.Network/publicIPAddresses/mypubip",
108
108
  ip_configuration_name: 'testIpConfiguration',
109
- private_ip_allocation_method: 'Dynamic'
109
+ private_ip_allocation_method: 'Dynamic',
110
+ tags: { key: 'value' }
110
111
  )
111
112
  puts "Created network interface: #{network_interface.name}"
112
113
 
@@ -57,7 +57,8 @@ begin
57
57
  access: Fog::ARM::Network::Models::SecurityRuleAccess::Allow,
58
58
  priority: '100',
59
59
  direction: Fog::ARM::Network::Models::SecurityRuleDirection::Inbound
60
- }]
60
+ }],
61
+ tags: { key: 'value' }
61
62
  )
62
63
  puts "Created network security group: #{network_security_group.name}"
63
64
 
@@ -47,7 +47,8 @@ begin
47
47
  name: 'mypubip',
48
48
  resource_group: 'TestRG-PB',
49
49
  location: LOCATION,
50
- public_ip_allocation_method: Fog::ARM::Network::Models::IPAllocationMethod::Dynamic
50
+ public_ip_allocation_method: Fog::ARM::Network::Models::IPAllocationMethod::Dynamic,
51
+ tags: { key: 'value' }
51
52
  )
52
53
  puts "Created public ip: #{public_ip.name}"
53
54
 
@@ -29,12 +29,15 @@ begin
29
29
  ###################### Create Resource Group ######################
30
30
  ########################################################################################################################
31
31
 
32
+ tags = { key1: 'value1', key2: 'value2' }
33
+
32
34
  resource_group = resource.resource_groups.create(
33
35
  name: resource_group_name,
34
- location: 'eastus'
36
+ location: 'eastus',
37
+ tags: tags
35
38
  )
36
-
37
39
  puts "Created resource group #{resource_group.name}"
40
+
38
41
  ########################################################################################################################
39
42
  ###################### Get All Resource Groups in a Subscription ######################
40
43
  ########################################################################################################################
@@ -53,7 +53,8 @@ begin
53
53
  tag_resource = resources.tag_resource(
54
54
  resource_id,
55
55
  'test-key',
56
- 'test-value'
56
+ 'test-value',
57
+ '2016-06-01'
57
58
  )
58
59
  puts "Tagged resource: #{tag_resource}"
59
60
 
@@ -77,7 +78,8 @@ begin
77
78
  resource = resources.delete_resource_tag(
78
79
  resource_id,
79
80
  'test-key',
80
- 'test-value'
81
+ 'test-value',
82
+ '2016-06-01'
81
83
  )
82
84
  puts "Removed tag from a resource: #{resource}"
83
85
  ########################################################################################################################
@@ -79,6 +79,16 @@ begin
79
79
  private_ip_allocation_method: Fog::ARM::Network::Models::IPAllocationMethod::Dynamic
80
80
  )
81
81
 
82
+ # TODO: Create new NIC for managed VM
83
+ network.network_interfaces.create(
84
+ name: 'NetInt2',
85
+ resource_group: 'TestRG-VM',
86
+ location: LOCATION,
87
+ subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VM/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/mysubnet",
88
+ ip_configuration_name: 'testIpConfiguration',
89
+ private_ip_allocation_method: Fog::ARM::Network::Models::IPAllocationMethod::Dynamic
90
+ )
91
+
82
92
  ########################################################################################################################
83
93
  ###################### Check for Virtual Machine ######################
84
94
  ########################################################################################################################
@@ -87,13 +97,16 @@ begin
87
97
  puts "Virtual Machine doesn't exist." unless flag
88
98
 
89
99
  ########################################################################################################################
90
- ###################### Create Server ######################
100
+ ###################### Create Server ######################
91
101
  ########################################################################################################################
92
102
 
103
+ tags = { key1: 'value1', key2: 'value2' }
104
+
93
105
  virtual_machine = compute.servers.create(
94
106
  name: 'TestVM',
95
107
  location: LOCATION,
96
108
  resource_group: 'TestRG-VM',
109
+ tags: tags,
97
110
  vm_size: 'Basic_A0',
98
111
  storage_account_name: storage_account_name,
99
112
  username: 'testuser',
@@ -108,7 +121,31 @@ begin
108
121
  custom_data: 'echo customData',
109
122
  os_disk_caching: Fog::ARM::Compute::Models::CachingTypes::None
110
123
  )
111
- puts "Created virtual machine: #{virtual_machine.name}"
124
+ puts "Created un-managed virtual machine: #{virtual_machine.name}"
125
+
126
+ ########################################################################################################################
127
+ ###################### Create Managed Server ######################
128
+ ########################################################################################################################
129
+ managed_vm = compute.servers.create(
130
+ name: 'TestVM-Managed',
131
+ location: LOCATION,
132
+ resource_group: 'TestRG-VM',
133
+ vm_size: 'Basic_A0',
134
+ storage_account_name: nil,
135
+ username: 'testuser',
136
+ password: 'Confiz=123',
137
+ disable_password_authentication: false,
138
+ network_interface_card_ids: ["/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VM/providers/Microsoft.Network/networkInterfaces/NetInt2"],
139
+ publisher: 'Canonical',
140
+ offer: 'UbuntuServer',
141
+ sku: '14.04.2-LTS',
142
+ version: 'latest',
143
+ platform: 'linux',
144
+ custom_data: 'echo customData',
145
+ os_disk_caching: Fog::ARM::Compute::Models::CachingTypes::None,
146
+ managed_disk_storage_type: Azure::ARM::Compute::Models::StorageAccountTypes::StandardLRS
147
+ )
148
+ puts "Created managed virtual machine: #{managed_vm.name}"
112
149
 
113
150
  ########################################################################################################################
114
151
  ###################### Create Server Async ####################
@@ -118,6 +155,7 @@ begin
118
155
  name: 'TestVM',
119
156
  location: LOCATION,
120
157
  resource_group: 'TestRG-VM',
158
+ tags: tags,
121
159
  vm_size: 'Basic_A0',
122
160
  storage_account_name: storage_account_name,
123
161
  username: 'testuser',
@@ -132,6 +170,7 @@ begin
132
170
  custom_data: 'echo customData',
133
171
  os_disk_caching: Fog::ARM::Compute::Models::CachingTypes::None
134
172
  )
173
+
135
174
  loop do
136
175
  puts async_response.state
137
176
 
@@ -157,7 +196,7 @@ begin
157
196
  puts 'Attached Data Disk to VM'
158
197
 
159
198
  ########################################################################################################################
160
- ###################### Detach Data Disk from VM ######################
199
+ ###################### Detach Data Disk from VM ######################
161
200
  ########################################################################################################################
162
201
 
163
202
  virtual_machine = compute.servers.get('TestRG-VM', 'TestVM')
@@ -176,6 +215,40 @@ begin
176
215
  )
177
216
  puts "Deleted data disk: #{storage_data.delete_disk('datadisk1')}"
178
217
 
218
+ ########################################################################################################################
219
+ ###################### Create a Managed Data Disk ######################
220
+ ########################################################################################################################
221
+ managed_disk = compute.managed_disks.create(
222
+ name: 'ManagedDataDisk',
223
+ location: LOCATION,
224
+ resource_group_name: 'TestRG-VM',
225
+ account_type: 'Standard_LRS',
226
+ disk_size_gb: 100,
227
+ creation_data: {
228
+ create_option: 'Empty'
229
+ }
230
+ )
231
+ puts "Created Managed Disk: #{managed_disk.name}"
232
+
233
+ ########################################################################################################################
234
+ ###################### Attach Managed Data Disk to VM ######################
235
+ ########################################################################################################################
236
+ managed_vm.attach_managed_disk('ManagedDataDisk', 'TestRG-VM')
237
+ puts 'Attached Managed Data Disk to VM'
238
+
239
+ ########################################################################################################################
240
+ ###################### Detach Data Disk from VM ######################
241
+ ########################################################################################################################
242
+
243
+ managed_vm.detach_managed_disk('ManagedDataDisk')
244
+ puts 'Detached Managed Data Disk from VM'
245
+
246
+ ########################################################################################################################
247
+ ###################### Delete Managed Data Disk ######################
248
+ ########################################################################################################################
249
+ managed_disk.destroy
250
+ puts 'Deleted managed data disk'
251
+
179
252
  ########################################################################################################################
180
253
  ###################### List VM in a resource group ######################
181
254
  ########################################################################################################################
@@ -243,6 +316,7 @@ begin
243
316
  ########################################################################################################################
244
317
 
245
318
  puts "Deleted virtual machine: #{virtual_machine.destroy}"
319
+ puts "Deleted virutal machine: #{managed_vm.destroy}"
246
320
 
247
321
  ########################################################################################################################
248
322
  ###################### CleanUp ######################
@@ -251,6 +325,9 @@ begin
251
325
  nic = network.network_interfaces.get('TestRG-VM', 'NetInt')
252
326
  nic.destroy
253
327
 
328
+ nic = network.network_interfaces.get('TestRG-VM', 'NetInt2')
329
+ nic.destroy
330
+
254
331
  vnet = network.virtual_networks.get('TestRG-VM', 'testVnet')
255
332
  vnet.destroy
256
333
 
@@ -259,6 +336,7 @@ begin
259
336
 
260
337
  resource_group = rs.resource_groups.get('TestRG-VM')
261
338
  resource_group.destroy
339
+
262
340
  puts 'Integration Test for virtual machine ran successfully'
263
341
  rescue
264
342
  puts 'Integration Test for virtual machine is failing'