far-gem 0.5.1 → 0.5.2

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 (248) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +11 -9
  3. data/CHANGELOG.md +31 -0
  4. data/README.md +2 -0
  5. data/fog-azure-rm.gemspec +4 -3
  6. data/lib/fog/azurerm.rb +1 -0
  7. data/lib/fog/azurerm/custom_fog_errors.rb +18 -0
  8. data/lib/fog/azurerm/docs/compute.md +10 -4
  9. data/lib/fog/azurerm/docs/network.md +2 -1
  10. data/lib/fog/azurerm/models/compute/managed_disk.rb +9 -2
  11. data/lib/fog/azurerm/models/compute/server.rb +8 -1
  12. data/lib/fog/azurerm/models/network/network_interface.rb +3 -1
  13. data/lib/fog/azurerm/models/resources/azure_resources.rb +8 -0
  14. data/lib/fog/azurerm/models/storage/file.rb +2 -0
  15. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +35 -7
  16. data/lib/fog/azurerm/requests/compute/delete_managed_disk.rb +12 -4
  17. data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +4 -3
  18. data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +139 -143
  19. data/lib/fog/azurerm/requests/resources/list_resources_in_resource_group.rb +42 -0
  20. data/lib/fog/azurerm/requests/storage/get_blob_properties.rb +26 -26
  21. data/lib/fog/azurerm/resources.rb +1 -0
  22. data/lib/fog/azurerm/storage.rb +1 -0
  23. data/lib/fog/azurerm/utilities/general.rb +9 -5
  24. data/lib/fog/azurerm/version.rb +1 -1
  25. data/test/api_stub/models/compute/server.rb +1 -0
  26. data/test/api_stub/models/resources/resource.rb +17 -0
  27. data/test/api_stub/requests/compute/virtual_machine.rb +8 -0
  28. data/test/api_stub/requests/network/network_security_group.rb +2 -2
  29. data/test/api_stub/requests/resources/resource.rb +17 -0
  30. data/test/api_stub/requests/storage/file.rb +9 -0
  31. data/test/integration/network_interface.rb +2 -1
  32. data/test/integration/resource_group.rb +10 -1
  33. data/test/models/compute/test_managed_disk.rb +9 -2
  34. data/test/models/compute/test_server.rb +1 -0
  35. data/test/models/network/test_network_interface.rb +2 -1
  36. data/test/models/resources/test_resources.rb +14 -1
  37. data/test/requests/application_gateway/test_check_ag_exists.rb +1 -1
  38. data/test/requests/application_gateway/test_create_or_update_application_gateway.rb +1 -1
  39. data/test/requests/application_gateway/test_delete_application_gateway.rb +1 -1
  40. data/test/requests/application_gateway/test_get_application_gateway.rb +1 -1
  41. data/test/requests/application_gateway/test_list_application_gateways.rb +1 -1
  42. data/test/requests/application_gateway/test_start_application_gateway.rb +1 -1
  43. data/test/requests/application_gateway/test_stop_application_gateway.rb +1 -1
  44. data/test/requests/compute/test_attach_data_disk_to_vm.rb +4 -4
  45. data/test/requests/compute/test_check_availability_set_exists.rb +1 -1
  46. data/test/requests/compute/test_check_managed_disk_exists.rb +1 -1
  47. data/test/requests/compute/test_check_vm_exists.rb +1 -1
  48. data/test/requests/compute/test_check_vm_extension_exists.rb +1 -1
  49. data/test/requests/compute/test_create_availability_set.rb +2 -2
  50. data/test/requests/compute/test_create_image.rb +1 -1
  51. data/test/requests/compute/test_create_or_update_managed_disk.rb +1 -1
  52. data/test/requests/compute/test_create_virtual_machine.rb +41 -17
  53. data/test/requests/compute/test_create_vm_extension.rb +1 -1
  54. data/test/requests/compute/test_deallocate_virtual_machine.rb +2 -2
  55. data/test/requests/compute/test_delete_availability_set.rb +1 -1
  56. data/test/requests/compute/test_delete_image.rb +1 -1
  57. data/test/requests/compute/test_delete_managed_disk.rb +2 -2
  58. data/test/requests/compute/test_delete_virtual_machine.rb +2 -2
  59. data/test/requests/compute/test_detach_data_disk_from_vm.rb +1 -1
  60. data/test/requests/compute/test_generalize_virtual_machine.rb +2 -2
  61. data/test/requests/compute/test_get_availability_set.rb +1 -1
  62. data/test/requests/compute/test_get_image.rb +1 -1
  63. data/test/requests/compute/test_get_managed_disk.rb +1 -1
  64. data/test/requests/compute/test_get_virtual_machine.rb +1 -1
  65. data/test/requests/compute/test_get_vm_extension.rb +1 -1
  66. data/test/requests/compute/test_get_vm_status.rb +1 -1
  67. data/test/requests/compute/test_grant_access_to_managed_disk.rb +1 -1
  68. data/test/requests/compute/test_list_availability_sets.rb +1 -1
  69. data/test/requests/compute/test_list_available_sizes_for_virtual_machine.rb +2 -2
  70. data/test/requests/compute/test_list_managed_disks_by_rg.rb +1 -1
  71. data/test/requests/compute/test_list_managed_disks_in_subscription.rb +1 -1
  72. data/test/requests/compute/test_list_virtual_machines.rb +1 -1
  73. data/test/requests/compute/test_power_off_virtual_machine.rb +2 -2
  74. data/test/requests/compute/test_redeploy_virtual_machine.rb +2 -2
  75. data/test/requests/compute/test_restart_virtual_machine.rb +2 -2
  76. data/test/requests/compute/test_revoke_access_to_managed_disk.rb +1 -1
  77. data/test/requests/compute/test_start_virtual_machine.rb +2 -2
  78. data/test/requests/compute/test_update_vm_extension.rb +1 -1
  79. data/test/requests/dns/test_check_record_set_exists.rb +1 -1
  80. data/test/requests/dns/test_check_zone_exists.rb +1 -1
  81. data/test/requests/dns/test_create_record_set.rb +1 -1
  82. data/test/requests/dns/test_create_zone.rb +1 -1
  83. data/test/requests/dns/test_delete_record_set.rb +1 -1
  84. data/test/requests/dns/test_delete_zone.rb +1 -1
  85. data/test/requests/dns/test_get_record_set.rb +1 -1
  86. data/test/requests/dns/test_get_records_from_record_set.rb +1 -1
  87. data/test/requests/dns/test_get_zone.rb +1 -1
  88. data/test/requests/dns/test_list_record_sets.rb +1 -1
  89. data/test/requests/dns/test_list_zones.rb +1 -1
  90. data/test/requests/key_vault/test_check_vault_exists.rb +1 -1
  91. data/test/requests/key_vault/test_create_or_update_vault.rb +1 -1
  92. data/test/requests/key_vault/test_delete_vault.rb +1 -1
  93. data/test/requests/key_vault/test_get_vault.rb +1 -1
  94. data/test/requests/key_vault/test_list_vaults.rb +1 -1
  95. data/test/requests/network/test_add_address_prefixes_in_virtual_network.rb +1 -1
  96. data/test/requests/network/test_add_dns_servers_in_virtual_network.rb +1 -1
  97. data/test/requests/network/test_add_subnets_in_virtual_network.rb +1 -1
  98. data/test/requests/network/test_attach_network_security_group_to_subnet.rb +1 -1
  99. data/test/requests/network/test_attach_resource_to_nic.rb +1 -1
  100. data/test/requests/network/test_attach_route_table_to_subnet.rb +1 -1
  101. data/test/requests/network/test_check_express_route_cir_auth_exists.rb +1 -1
  102. data/test/requests/network/test_check_express_route_circuit_exists.rb +1 -1
  103. data/test/requests/network/test_check_load_balancer_exists.rb +1 -1
  104. data/test/requests/network/test_check_local_net_gateway_exists.rb +1 -1
  105. data/test/requests/network/test_check_net_sec_group_exists.rb +1 -1
  106. data/test/requests/network/test_check_net_sec_rule_exists.rb +1 -1
  107. data/test/requests/network/test_check_network_interface_exists.rb +1 -1
  108. data/test/requests/network/test_check_public_ip_exists.rb +1 -1
  109. data/test/requests/network/test_check_subnet_exists.rb +1 -1
  110. data/test/requests/network/test_check_virtual_network_exists.rb +1 -1
  111. data/test/requests/network/test_check_vnet_gateway_connection_exists.rb +1 -1
  112. data/test/requests/network/test_check_vnet_gateway_exists.rb +1 -1
  113. data/test/requests/network/test_create_express_route_circuit.rb +1 -1
  114. data/test/requests/network/test_create_express_route_circuit_authorization.rb +1 -1
  115. data/test/requests/network/test_create_express_route_circuit_peering.rb +1 -1
  116. data/test/requests/network/test_create_load_balancer.rb +1 -1
  117. data/test/requests/network/test_create_local_network_gateway.rb +1 -1
  118. data/test/requests/network/test_create_network_interface.rb +1 -1
  119. data/test/requests/network/test_create_or_update_network_security_group.rb +1 -1
  120. data/test/requests/network/test_create_or_update_network_security_rule.rb +1 -1
  121. data/test/requests/network/test_create_or_update_virtual_network.rb +1 -1
  122. data/test/requests/network/test_create_public_ip.rb +1 -1
  123. data/test/requests/network/test_create_subnet.rb +1 -1
  124. data/test/requests/network/test_create_virtual_network_gateway.rb +1 -1
  125. data/test/requests/network/test_create_virtual_network_gateway_connection.rb +1 -1
  126. data/test/requests/network/test_delete_express_route_circuit.rb +1 -1
  127. data/test/requests/network/test_delete_express_route_circuit_authorization.rb +1 -1
  128. data/test/requests/network/test_delete_express_route_circuit_peering.rb +1 -1
  129. data/test/requests/network/test_delete_load_balancer.rb +1 -1
  130. data/test/requests/network/test_delete_local_network_gateway.rb +1 -1
  131. data/test/requests/network/test_delete_network_interface.rb +1 -1
  132. data/test/requests/network/test_delete_network_security_group.rb +1 -1
  133. data/test/requests/network/test_delete_network_security_rule.rb +1 -1
  134. data/test/requests/network/test_delete_public_ip.rb +1 -1
  135. data/test/requests/network/test_delete_subnet.rb +1 -1
  136. data/test/requests/network/test_delete_virtual_network.rb +1 -1
  137. data/test/requests/network/test_delete_virtual_network_gateway.rb +1 -1
  138. data/test/requests/network/test_delete_virtual_network_gateway_connection.rb +1 -1
  139. data/test/requests/network/test_detach_network_security_group_from_subnet.rb +1 -1
  140. data/test/requests/network/test_detach_resource_from_nic.rb +1 -1
  141. data/test/requests/network/test_detach_route_table_from_subnet.rb +1 -1
  142. data/test/requests/network/test_get_connection_shared_key.rb +1 -1
  143. data/test/requests/network/test_get_express_route_circuit.rb +1 -1
  144. data/test/requests/network/test_get_express_route_circuit_authorization.rb +1 -1
  145. data/test/requests/network/test_get_express_route_circuit_peering.rb +1 -1
  146. data/test/requests/network/test_get_load_balancer.rb +1 -1
  147. data/test/requests/network/test_get_local_network_gateway.rb +1 -1
  148. data/test/requests/network/test_get_network_interface.rb +1 -1
  149. data/test/requests/network/test_get_network_security_group.rb +1 -1
  150. data/test/requests/network/test_get_network_security_rule.rb +1 -1
  151. data/test/requests/network/test_get_public_ip.rb +1 -1
  152. data/test/requests/network/test_get_subnet.rb +1 -1
  153. data/test/requests/network/test_get_virtual_network.rb +1 -1
  154. data/test/requests/network/test_get_virtual_network_gateway.rb +1 -1
  155. data/test/requests/network/test_get_virtual_network_gateway_connection.rb +1 -1
  156. data/test/requests/network/test_list_express_route_circuit_authorizations.rb +1 -1
  157. data/test/requests/network/test_list_express_route_circuit_peerings.rb +1 -1
  158. data/test/requests/network/test_list_express_route_circuits.rb +1 -1
  159. data/test/requests/network/test_list_express_route_service_providers.rb +1 -1
  160. data/test/requests/network/test_list_load_balancers.rb +1 -1
  161. data/test/requests/network/test_list_local_network_gateways.rb +1 -1
  162. data/test/requests/network/test_list_network_interfaces.rb +1 -1
  163. data/test/requests/network/test_list_network_security_groups.rb +4 -4
  164. data/test/requests/network/test_list_network_security_rules.rb +1 -1
  165. data/test/requests/network/test_list_public_ips.rb +1 -1
  166. data/test/requests/network/test_list_subnets.rb +1 -1
  167. data/test/requests/network/test_list_virtual_network_gateway_connections.rb +1 -1
  168. data/test/requests/network/test_list_virtual_network_gateways.rb +1 -1
  169. data/test/requests/network/test_list_virtual_networks.rb +1 -1
  170. data/test/requests/network/test_list_virtual_networks_in_subscription.rb +1 -1
  171. data/test/requests/network/test_remove_address_prefixes_from_virtual_network.rb +1 -1
  172. data/test/requests/network/test_remove_dns_servers_from_virtual_network.rb +1 -1
  173. data/test/requests/network/test_remove_subnets_from_virtual_network.rb +1 -1
  174. data/test/requests/network/test_reset_connection_shared_key.rb +1 -1
  175. data/test/requests/network/test_set_connection_shared_key.rb +1 -1
  176. data/test/requests/network/test_update_public_ip.rb +1 -1
  177. data/test/requests/resources/test_check_deployment_exists.rb +1 -1
  178. data/test/requests/resources/test_check_resource_group_exists.rb +1 -1
  179. data/test/requests/resources/test_create_deployment.rb +1 -1
  180. data/test/requests/resources/test_create_resource_group.rb +1 -1
  181. data/test/requests/resources/test_delete_deployment.rb +1 -1
  182. data/test/requests/resources/test_delete_resource_group.rb +1 -1
  183. data/test/requests/resources/test_delete_resource_tag.rb +1 -1
  184. data/test/requests/resources/test_get_deployment.rb +1 -1
  185. data/test/requests/resources/test_get_resource_group.rb +1 -1
  186. data/test/requests/resources/test_list_deployments.rb +1 -1
  187. data/test/requests/resources/test_list_resource_groups.rb +1 -1
  188. data/test/requests/resources/test_list_resources_in_resource_group.rb +24 -0
  189. data/test/requests/resources/test_list_tagged_resources.rb +1 -1
  190. data/test/requests/resources/test_tag_resource.rb +1 -1
  191. data/test/requests/sql/test_create_or_update_database.rb +1 -1
  192. data/test/requests/sql/test_create_or_update_firewall_rule.rb +1 -1
  193. data/test/requests/sql/test_create_or_update_sql_server.rb +1 -1
  194. data/test/requests/sql/test_delete_database.rb +1 -1
  195. data/test/requests/sql/test_delete_firewall_rule.rb +1 -1
  196. data/test/requests/sql/test_delete_sql_server.rb +1 -1
  197. data/test/requests/sql/test_get_database.rb +1 -1
  198. data/test/requests/sql/test_get_firewall_rule.rb +1 -1
  199. data/test/requests/sql/test_get_sql_server.rb +1 -1
  200. data/test/requests/sql/test_list_databases.rb +1 -1
  201. data/test/requests/sql/test_list_firewall_rules.rb +1 -1
  202. data/test/requests/sql/test_list_sql_servers.rb +1 -1
  203. data/test/requests/storage/test_acquire_blob_lease.rb +1 -1
  204. data/test/requests/storage/test_acquire_container_lease.rb +1 -1
  205. data/test/requests/storage/test_check_storage_account_exists.rb +1 -1
  206. data/test/requests/storage/test_check_storage_account_name_availability.rb +1 -1
  207. data/test/requests/storage/test_commit_blob_blocks.rb +1 -1
  208. data/test/requests/storage/test_compare_container_blobs.rb +1 -1
  209. data/test/requests/storage/test_copy_blob.rb +1 -1
  210. data/test/requests/storage/test_copy_blob_from_uri.rb +1 -1
  211. data/test/requests/storage/test_create_block_blob.rb +1 -1
  212. data/test/requests/storage/test_create_container.rb +1 -1
  213. data/test/requests/storage/test_create_page_blob.rb +1 -1
  214. data/test/requests/storage/test_create_storage_account.rb +1 -1
  215. data/test/requests/storage/test_delete_blob.rb +1 -1
  216. data/test/requests/storage/test_delete_container.rb +1 -1
  217. data/test/requests/storage/test_delete_storage_account.rb +1 -1
  218. data/test/requests/storage/test_get_blob.rb +4 -4
  219. data/test/requests/storage/test_get_blob_properties.rb +4 -2
  220. data/test/requests/storage/test_get_container_acl.rb +1 -1
  221. data/test/requests/storage/test_get_container_properties.rb +1 -1
  222. data/test/requests/storage/test_get_storage_access_keys.rb +1 -1
  223. data/test/requests/storage/test_get_storage_account.rb +1 -1
  224. data/test/requests/storage/test_list_blobs.rb +1 -1
  225. data/test/requests/storage/test_list_containers.rb +1 -1
  226. data/test/requests/storage/test_list_storage_accounts.rb +1 -1
  227. data/test/requests/storage/test_list_storage_accounts_for_rg.rb +1 -1
  228. data/test/requests/storage/test_put_blob_block.rb +1 -1
  229. data/test/requests/storage/test_put_blob_metadata.rb +1 -1
  230. data/test/requests/storage/test_put_blob_pages.rb +1 -1
  231. data/test/requests/storage/test_put_blob_properties.rb +1 -1
  232. data/test/requests/storage/test_put_container_acl.rb +1 -1
  233. data/test/requests/storage/test_put_container_metadata.rb +1 -1
  234. data/test/requests/storage/test_release_blob_lease.rb +1 -1
  235. data/test/requests/storage/test_release_container_lease.rb +1 -1
  236. data/test/requests/storage/test_update_storage_account.rb +1 -1
  237. data/test/requests/traffic_manager/test_check_traffic_manager_endpoint_exists.rb +1 -1
  238. data/test/requests/traffic_manager/test_check_traffic_manager_profile_exists.rb +1 -1
  239. data/test/requests/traffic_manager/test_create_traffic_manager_endpoint.rb +1 -1
  240. data/test/requests/traffic_manager/test_create_traffic_manager_profile.rb +1 -1
  241. data/test/requests/traffic_manager/test_delete_traffic_manager_endpoint.rb +1 -1
  242. data/test/requests/traffic_manager/test_delete_traffic_manager_profile.rb +1 -1
  243. data/test/requests/traffic_manager/test_get_traffic_manager_endpoint.rb +1 -1
  244. data/test/requests/traffic_manager/test_get_traffic_manager_profile.rb +1 -1
  245. data/test/requests/traffic_manager/test_list_traffic_manager_profiles.rb +1 -1
  246. data/test/requests/traffic_manager/test_update_traffic_manager_endpoint.rb +1 -1
  247. data/test/requests/traffic_manager/test_update_traffic_manager_profile.rb +1 -1
  248. metadata +25 -8
@@ -21,6 +21,7 @@ module ApiStub
21
21
  },
22
22
  'osDisk' => {
23
23
  'name' => 'fog-test-server_os_disk',
24
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.Compute/disks/fog-test-server_os_disk',
24
25
  'vhd' => {
25
26
  'uri' => 'http://storageAccount.blob.core.windows.net/vhds/fog-test-server_os_disk.vhd'
26
27
  }
@@ -37,6 +37,23 @@ module ApiStub
37
37
  result_mapper = Azure::ARM::Resources::Models::ResourceListResult.mapper
38
38
  client.deserialize(result_mapper, Fog::JSON.decode(resources), 'result.body').value
39
39
  end
40
+
41
+ def self.list_resources_in_resource_group_response(client)
42
+ resources = '{
43
+ "id": "/subscriptions/########-####-####-####-############/resourceGroups/{RESOURCE-GROUP}/providers/Microsoft.Network/{PROVIDER-NAME}/{RESOURCE-NAME}",
44
+ "name": "your-resource-name",
45
+ "type": "providernamespace/resourcetype",
46
+ "location": "westus",
47
+ "tags": {
48
+ "tag_name": "tag_value"
49
+ },
50
+ "plan": {
51
+ "name": "free"
52
+ }
53
+ }'
54
+ result_mapper = Azure::ARM::Resources::Models::GenericResource.mapper
55
+ client.deserialize(result_mapper, Fog::JSON.decode(resources), 'result.body')
56
+ end
40
57
  end
41
58
  end
42
59
  end
@@ -243,6 +243,7 @@ module ApiStub
243
243
  },
244
244
  "osDisk": {
245
245
  "name":"myosdisk1",
246
+ "id":"/subscriptions/{subscription-id}/resourceGroups/fog-test-rg/providers/Microsoft.Compute/disks/myosdisk1",
246
247
  "vhd": {
247
248
  "uri":"http://mystorage1.blob.core.windows.net/vhds/myosdisk1.vhd"
248
249
  },
@@ -320,6 +321,7 @@ module ApiStub
320
321
  },
321
322
  "osDisk": {
322
323
  "name":"myosdisk1",
324
+ "id":"/subscriptions/{subscription-id}/resourceGroups/fog-test-rg/providers/Microsoft.Compute/disks/myosdisk1",
323
325
  "vhd": {
324
326
  "uri":"http://mystorage1.blob.core.windows.net/vhds/myosdisk1.vhd"
325
327
  },
@@ -397,6 +399,7 @@ module ApiStub
397
399
  },
398
400
  "osDisk": {
399
401
  "name":"myosdisk1",
402
+ "id":"/subscriptions/{subscription-id}/resourceGroups/fog-test-rg/providers/Microsoft.Compute/disks/myosdisk1",
400
403
  "vhd": {
401
404
  "uri":"https://custimagestorage.blob.core.windows.net/customimage/trusty-server-cloudimg-amd64-disk1.vhd"
402
405
  },
@@ -474,6 +477,7 @@ module ApiStub
474
477
  },
475
478
  "osDisk": {
476
479
  "name":"myosdisk1",
480
+ "id":"/subscriptions/{subscription-id}/resourceGroups/fog-test-rg/providers/Microsoft.Compute/disks/myosdisk1",
477
481
  "vhd": {
478
482
  "uri":"http://mystorage1.blob.core.windows.net/vhds/myosdisk1.vhd"
479
483
  },
@@ -546,6 +550,7 @@ module ApiStub
546
550
  'osDisk' =>
547
551
  {
548
552
  'name' => 'myosdisk1',
553
+ 'id' => '/subscriptions/{subscription-id}/resourceGroups/fog-test-rg/providers/Microsoft.Compute/disks/myosdisk1',
549
554
  'vhd' =>
550
555
  {
551
556
  'uri' => 'http://mystorage1.blob.core.windows.net/vhds/myosdisk1.vhd'
@@ -651,6 +656,7 @@ module ApiStub
651
656
  },
652
657
  "osDisk": {
653
658
  "name":"myosdisk1",
659
+ "id":"/subscriptions/{subscription-id}/resourceGroups/fog-test-rg/providers/Microsoft.Compute/disks/myosdisk1",
654
660
  "vhd": {
655
661
  "uri":"http://mystorage1.blob.core.windows.net/vhds/myosdisk1.vhd"
656
662
  },
@@ -809,6 +815,7 @@ module ApiStub
809
815
  },
810
816
  "osDisk": {
811
817
  "name":"myosdisk1",
818
+ "id":"/subscriptions/{subscription-id}/resourceGroups/fog-test-rg/providers/Microsoft.Compute/disks/myosdisk1",
812
819
  "vhd": {
813
820
  "uri":"http://mystorage1.blob.core.windows.net/vhds/myosdisk1.vhd"
814
821
  },
@@ -896,6 +903,7 @@ module ApiStub
896
903
  },
897
904
  "osDisk": {
898
905
  "name":"myosdisk1",
906
+ "id":"/subscriptions/{subscription-id}/resourceGroups/fog-test-rg/providers/Microsoft.Compute/disks/myosdisk1",
899
907
  "vhd": {
900
908
  "uri":"http://mystorage1.blob.core.windows.net/vhds/myosdisk1.vhd"
901
909
  },
@@ -216,8 +216,8 @@ module ApiStub
216
216
  }
217
217
  ]
218
218
  }'
219
- result_mapper = Azure::ARM::Network::Models::NetworkInterfaceListResult.mapper
220
- network_client.deserialize(result_mapper, Fog::JSON.decode(nsg_list), 'result.body')
219
+ result_mapper = Azure::ARM::Network::Models::NetworkSecurityGroupListResult.mapper
220
+ network_client.deserialize(result_mapper, Fog::JSON.decode(nsg_list), 'result.body').value
221
221
  end
222
222
  end
223
223
  end
@@ -39,6 +39,23 @@ module ApiStub
39
39
  result_mapper = Azure::ARM::Resources::Models::ResourceListResult.mapper
40
40
  client.deserialize(result_mapper, Fog::JSON.decode(body), 'result.body')
41
41
  end
42
+
43
+ def self.list_resources_in_resource_group(client)
44
+ body = '{
45
+ "id": "/subscriptions/########-####-####-####-############/resourceGroups/{RESOURCE-GROUP}/providers/Microsoft.Network/{PROVIDER-NAME}/{RESOURCE-NAME}",
46
+ "name": "your-resource-name",
47
+ "type": "providernamespace/resourcetype",
48
+ "location": "westus",
49
+ "tags": {
50
+ "tag_name": "tag_value"
51
+ },
52
+ "plan": {
53
+ "name": "free"
54
+ }
55
+ }'
56
+ result_mapper = Azure::ARM::Resources::Models::GenericResource.mapper
57
+ client.deserialize(result_mapper, Fog::JSON.decode(body), 'result.body')
58
+ end
42
59
  end
43
60
  end
44
61
  end
@@ -5,6 +5,15 @@ module ApiStub
5
5
  # Below data should be as same as those in Mock classes in lib/fog/azurerm/requests/storage/*.rb
6
6
  class File
7
7
  def self.blob
8
+ blob_data = blob_as_hash
9
+ blob = Azure::Storage::Blob::Blob.new
10
+ blob.name = blob_data['name']
11
+ blob.metadata = blob_data['metadata']
12
+ blob.properties = blob_data['properties'].map { |k, v| { k.to_sym => v } }.reduce({}, &:merge!)
13
+ blob
14
+ end
15
+
16
+ def self.blob_as_hash
8
17
  {
9
18
  'name' => 'test_blob',
10
19
  'metadata' => {},
@@ -107,7 +107,8 @@ begin
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
109
  private_ip_allocation_method: 'Dynamic',
110
- tags: { key: 'value' }
110
+ tags: { key: 'value' },
111
+ enable_accelerated_networking: true
111
112
  )
112
113
  puts "Created network interface: #{network_interface.name}"
113
114
 
@@ -17,7 +17,6 @@ resource = Fog::Resources::AzureRM.new(
17
17
  resource_group_name = "RG-#{current_time}"
18
18
 
19
19
  begin
20
-
21
20
  ########################################################################################################################
22
21
  ###################### Check Resource Group Exists? ######################
23
22
  ########################################################################################################################
@@ -51,6 +50,16 @@ begin
51
50
  resource_group = resource_groups.get(resource_group_name)
52
51
  puts "Get resource group: #{resource_group.name}"
53
52
 
53
+ ########################################################################################################################
54
+ ###################### Get All Resources in a Resource Group ######################
55
+ ########################################################################################################################
56
+
57
+ resources = resource.azure_resources.list_resources_in_resource_group(resource_group_name)
58
+ puts 'List resources in resource groups:'
59
+ resources.each do |a_resource|
60
+ puts a_resource.name
61
+ end
62
+
54
63
  ########################################################################################################################
55
64
  ###################### Destroy Resource Group ######################
56
65
  ########################################################################################################################
@@ -50,13 +50,20 @@ class TestManagedDisk < Minitest::Test
50
50
 
51
51
  def test_destroy_method_true_response
52
52
  @service.stub :delete_managed_disk, true do
53
- assert @managed_disk.destroy
53
+ assert @managed_disk.destroy(false)
54
54
  end
55
55
  end
56
56
 
57
57
  def test_destroy_method_false_response
58
58
  @service.stub :delete_managed_disk, false do
59
- assert !@managed_disk.destroy
59
+ assert !@managed_disk.destroy(false)
60
+ end
61
+ end
62
+
63
+ def test_destroy_method_can_take_params_async
64
+ async_response = Concurrent::Promise.execute { 10 }
65
+ @service.stub :delete_managed_disk, async_response do
66
+ assert_instance_of Fog::AzureRM::AsyncResponse, @managed_disk.destroy(true)
60
67
  end
61
68
  end
62
69
  end
@@ -38,6 +38,7 @@ class TestServer < Minitest::Test
38
38
  :vm_size,
39
39
  :storage_account_name,
40
40
  :os_disk_name,
41
+ :os_disk_id,
41
42
  :os_disk_vhd_uri,
42
43
  :os_disk_caching,
43
44
  :publisher,
@@ -45,7 +45,8 @@ class TestNetworkInterface < Minitest::Test
45
45
  :applied_dns_servers,
46
46
  :internal_dns_name_label,
47
47
  :internal_fqd,
48
- :tags
48
+ :tags,
49
+ :enable_accelerated_networking
49
50
  ]
50
51
  attributes.each do |attribute|
51
52
  assert_respond_to @network_interface, attribute
@@ -14,7 +14,8 @@ class TestResources < Minitest::Test
14
14
  methods = [
15
15
  :all,
16
16
  :get,
17
- :check_azure_resource_exists
17
+ :check_azure_resource_exists,
18
+ :list_resources_in_resource_group
18
19
  ]
19
20
  methods.each do |method|
20
21
  assert_respond_to @resources, method
@@ -49,4 +50,16 @@ class TestResources < Minitest::Test
49
50
  assert !@resources.check_azure_resource_exists(@resource_id, '2016-09-01')
50
51
  end
51
52
  end
53
+
54
+ def test_list_resources_in_resource_group_method_response
55
+ client = @service.instance_variable_get(:@rmc)
56
+ response = [ApiStub::Models::Resources::Resource.list_resources_in_resource_group_response(client)]
57
+ @service.stub :list_resources_in_resource_group, response do
58
+ assert_instance_of Fog::Resources::AzureRM::AzureResources, @resources.list_resources_in_resource_group('fog-test-rg')
59
+ assert @resources.list_resources_in_resource_group('fog-test-rg').size >= 1
60
+ @resources.list_resources_in_resource_group('fog-test-rg').each do |s|
61
+ assert_instance_of Fog::Resources::AzureRM::AzureResource, s
62
+ end
63
+ end
64
+ end
52
65
  end
@@ -32,7 +32,7 @@ class TestCheckAGExists < Minitest::Test
32
32
  def test_check_app_gateway_exists_exception
33
33
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, create_mock_response, 'error' => { 'message' => 'mocked exception', 'code' => 'Exception' }) }
34
34
  @gateways.stub :get, response do
35
- assert_raises(RuntimeError) { @service.check_ag_exists('fog-test-rg', 'fogRM-rg') }
35
+ assert_raises(MsRestAzure::AzureOperationError) { @service.check_ag_exists('fog-test-rg', 'fogRM-rg') }
36
36
  end
37
37
  end
38
38
  end
@@ -27,7 +27,7 @@ class TestCreateOrUpdateApplicationGateway < Minitest::Test
27
27
  def test_create_or_update_application_gateway_exception_failure
28
28
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
29
29
  @gateways.stub :create_or_update, response do
30
- assert_raises RuntimeError do
30
+ assert_raises MsRestAzure::AzureOperationError do
31
31
  @service.create_or_update_application_gateway(@gateway_params)
32
32
  end
33
33
  end
@@ -17,7 +17,7 @@ class TestDeleteApplicationGateway < Minitest::Test
17
17
  def test_delete_application_gateway_failure
18
18
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
19
19
  @gateways.stub :delete, response do
20
- assert_raises(RuntimeError) { @service.delete_application_gateway('fogRM-rg', 'gateway') }
20
+ assert_raises(MsRestAzure::AzureOperationError) { @service.delete_application_gateway('fogRM-rg', 'gateway') }
21
21
  end
22
22
  end
23
23
  end
@@ -18,7 +18,7 @@ class TestGetApplicationGateway < Minitest::Test
18
18
  def test_get_application_gateway_failure
19
19
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
20
20
  @gateways.stub :get, response do
21
- assert_raises(RuntimeError) { @service.get_application_gateway('fog-test-rg', 'fogRM-rg') }
21
+ assert_raises(MsRestAzure::AzureOperationError) { @service.get_application_gateway('fog-test-rg', 'fogRM-rg') }
22
22
  end
23
23
  end
24
24
  end
@@ -18,7 +18,7 @@ class TestListApplicationGateways < Minitest::Test
18
18
  def test_list_application_gateways_failure
19
19
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
20
20
  @gateways.stub :list_as_lazy, response do
21
- assert_raises(RuntimeError) { @service.list_application_gateways('fogRM-rg') }
21
+ assert_raises(MsRestAzure::AzureOperationError) { @service.list_application_gateways('fogRM-rg') }
22
22
  end
23
23
  end
24
24
  end
@@ -17,7 +17,7 @@ class TestStartApplicationGateway < Minitest::Test
17
17
  def test_start_application_gateway_exception_failure
18
18
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
19
19
  @gateways.stub :start, response do
20
- assert_raises RuntimeError do
20
+ assert_raises MsRestAzure::AzureOperationError do
21
21
  @service.start_application_gateway('test-rg', 'test-ag')
22
22
  end
23
23
  end
@@ -17,7 +17,7 @@ class TestStopApplicationGateway < Minitest::Test
17
17
  def test_stop_application_gateway_exception_failure
18
18
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
19
19
  @gateways.stub :stop, response do
20
- assert_raises RuntimeError do
20
+ assert_raises MsRestAzure::AzureOperationError do
21
21
  @service.stop_application_gateway('test-rg', 'test-ag')
22
22
  end
23
23
  end
@@ -62,7 +62,7 @@ class TestAttachDataDiskToVM < Minitest::Test
62
62
  @virtual_machines.stub :get, @get_vm_response do
63
63
  @storage_accounts.stub :list_keys, @storage_access_keys_response do
64
64
  @virtual_machines.stub :create_or_update, update_vm_response do
65
- assert_raises RuntimeError do
65
+ assert_raises Azure::Core::Http::HTTPError do
66
66
  @service.attach_data_disk_to_vm(@input_params, false)
67
67
  end
68
68
  end
@@ -75,7 +75,7 @@ class TestAttachDataDiskToVM < Minitest::Test
75
75
  @virtual_machines.stub :get, @get_vm_response do
76
76
  @storage_accounts.stub :list_keys, @storage_access_keys_response do
77
77
  @virtual_machines.stub :create_or_update, update_vm_response do
78
- assert_raises RuntimeError do
78
+ assert_raises Azure::Core::Http::HTTPError do
79
79
  @service.attach_data_disk_to_vm(@input_params, false)
80
80
  end
81
81
  end
@@ -86,7 +86,7 @@ class TestAttachDataDiskToVM < Minitest::Test
86
86
  def test_get_vm_failure
87
87
  get_vm_response = proc { fail MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
88
88
  @virtual_machines.stub :get, get_vm_response do
89
- assert_raises RuntimeError do
89
+ assert_raises MsRestAzure::AzureOperationError do
90
90
  @service.attach_data_disk_to_vm(@input_params, false)
91
91
  end
92
92
  end
@@ -96,7 +96,7 @@ class TestAttachDataDiskToVM < Minitest::Test
96
96
  storage_access_keys_response = proc { fail MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
97
97
  @virtual_machines.stub :get, @get_vm_response do
98
98
  @storage_accounts.stub :list_keys, storage_access_keys_response do
99
- assert_raises RuntimeError do
99
+ assert_raises MsRestAzure::AzureOperationError do
100
100
  @service.attach_data_disk_to_vm(@input_params, false)
101
101
  end
102
102
  end
@@ -32,7 +32,7 @@ class TestCheckAvailabilitySetExists < Minitest::Test
32
32
  def test_check_availability_set_exists_exception
33
33
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, create_mock_response, 'error' => { 'message' => 'mocked exception', 'code' => 'Exception' }) }
34
34
  @availability_sets.stub :get, response do
35
- assert_raises(RuntimeError) { @service.check_availability_set_exists('myrg1', 'myavset1') }
35
+ assert_raises(MsRestAzure::AzureOperationError) { @service.check_availability_set_exists('myrg1', 'myavset1') }
36
36
  end
37
37
  end
38
38
  end
@@ -32,7 +32,7 @@ class TestCheckManagedDiskExists < Minitest::Test
32
32
  def test_check_managed_disk_exists_exception
33
33
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, create_mock_response, 'error' => { 'message' => 'mocked exception', 'code' => 'Exception' }) }
34
34
  @managed_disks.stub :get, response do
35
- assert_raises(RuntimeError) { @service.check_managed_disk_exists('myrg1', 'mydisk1') }
35
+ assert_raises(MsRestAzure::AzureOperationError) { @service.check_managed_disk_exists('myrg1', 'mydisk1') }
36
36
  end
37
37
  end
38
38
  end
@@ -32,7 +32,7 @@ class TestCheckVirtualMachineExists < Minitest::Test
32
32
  def test_check_vm_exists_exception
33
33
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, create_mock_response, 'error' => { 'message' => 'mocked exception', 'code' => 'Exception' }) }
34
34
  @virtual_machines.stub :get, response do
35
- assert_raises(RuntimeError) { @service.check_vm_exists('fog-test-rg', 'fog-test-server', false) }
35
+ assert_raises(MsRestAzure::AzureOperationError) { @service.check_vm_exists('fog-test-rg', 'fog-test-server', false) }
36
36
  end
37
37
  end
38
38
  end
@@ -32,7 +32,7 @@ class TestCheckVMExtensionExists < Minitest::Test
32
32
  def test_check_vm_extension_exists_exception
33
33
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, create_mock_response, 'error' => { 'message' => 'mocked exception', 'code' => 'Exception' }) }
34
34
  @vm_extension.stub :get, response do
35
- assert_raises(RuntimeError) { @service.check_vm_extension_exists('fog-test-rg', 'fog-test-vm', 'fog-test-extension') }
35
+ assert_raises(MsRestAzure::AzureOperationError) { @service.check_vm_extension_exists('fog-test-rg', 'fog-test-vm', 'fog-test-extension') }
36
36
  end
37
37
  end
38
38
  end
@@ -71,7 +71,7 @@ class TestCreateAvailabilitySet < Minitest::Test
71
71
 
72
72
  @availability_sets.stub :validate_params, true do
73
73
  @availability_sets.stub :create_or_update, response do
74
- assert_raises(RuntimeError) { @service.create_availability_set(avail_set_params) }
74
+ assert_raises(MsRestAzure::AzureOperationError) { @service.create_availability_set(avail_set_params) }
75
75
  end
76
76
  end
77
77
  end
@@ -105,7 +105,7 @@ class TestCreateAvailabilitySet < Minitest::Test
105
105
 
106
106
  @availability_sets.stub :validate_params, true do
107
107
  @availability_sets.stub :create_or_update, response do
108
- assert_raises(RuntimeError) { @service.create_availability_set(avail_set_params) }
108
+ assert_raises(MsRestAzure::AzureOperationError) { @service.create_availability_set(avail_set_params) }
109
109
  end
110
110
  end
111
111
  end
@@ -19,7 +19,7 @@ class TestCreateImage < Minitest::Test
19
19
  def test_create_image_failure
20
20
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
21
21
  @image.stub :create_or_update, response do
22
- assert_raises RuntimeError do
22
+ assert_raises MsRestAzure::AzureOperationError do
23
23
  @service.create_image(@input_params)
24
24
  end
25
25
  end
@@ -31,7 +31,7 @@ class TestCreateManagedDisk < Minitest::Test
31
31
  response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
32
32
  @managed_disks.stub :validate_params, true do
33
33
  @managed_disks.stub :create_or_update, response do
34
- assert_raises(RuntimeError) { @service.create_or_update_managed_disk(@disk) }
34
+ assert_raises(MsRestAzure::AzureOperationError) { @service.create_or_update_managed_disk(@disk) }
35
35
  end
36
36
  end
37
37
  end
@@ -10,80 +10,104 @@ class TestCreateVirtualMachine < Minitest::Test
10
10
  @custom_data_response = ApiStub::Requests::Compute::VirtualMachine.create_virtual_machine_with_custom_data_response(compute_client)
11
11
  @linux_virtual_machine_hash = ApiStub::Requests::Compute::VirtualMachine.linux_virtual_machine_params
12
12
  @windows_virtual_machine_hash = ApiStub::Requests::Compute::VirtualMachine.windows_virtual_machine_params
13
+ @error_response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
13
14
  end
14
15
 
15
16
  def test_create_linux_virtual_machine_success
16
17
  @virtual_machines.stub :create_or_update, @response do
17
- assert_equal @service.create_virtual_machine(@linux_virtual_machine_hash), @response
18
+ @virtual_machines.stub :get, @error_response do
19
+ assert_equal @service.create_virtual_machine(@linux_virtual_machine_hash), @response
20
+ end
18
21
  end
19
22
 
20
23
  # Async
21
24
  @virtual_machines.stub :create_or_update_async, @response do
22
- assert_equal @service.create_virtual_machine(@linux_virtual_machine_hash, true), @response
25
+ @virtual_machines.stub :get, @error_response do
26
+ assert_equal @service.create_virtual_machine(@linux_virtual_machine_hash, true), @response
27
+ end
23
28
  end
24
29
  end
25
30
 
26
31
  def test_create_windows_virtual_machine_success
27
32
  @virtual_machines.stub :create_or_update, @response do
28
- assert_equal @service.create_virtual_machine(@windows_virtual_machine_hash), @response
33
+ @virtual_machines.stub :get, @error_response do
34
+ assert_equal @service.create_virtual_machine(@windows_virtual_machine_hash), @response
35
+ end
29
36
  end
30
37
 
31
38
  # Async
32
39
  @virtual_machines.stub :create_or_update_async, @response do
33
- assert_equal @service.create_virtual_machine(@windows_virtual_machine_hash, true), @response
40
+ @virtual_machines.stub :get, @error_response do
41
+ assert_equal @service.create_virtual_machine(@windows_virtual_machine_hash, true), @response
42
+ end
34
43
  end
35
44
  end
36
45
 
37
46
  def test_create_linux_virtual_machine_from_custom_image_success
38
47
  linux_virtual_machine_with_custom_image_hash = ApiStub::Requests::Compute::VirtualMachine.linux_virtual_machine_with_custom_image_params
39
48
  @virtual_machines.stub :create_or_update, @response do
40
- assert_equal @service.create_virtual_machine(linux_virtual_machine_with_custom_image_hash), @response
49
+ @virtual_machines.stub :get, @error_response do
50
+ assert_equal @service.create_virtual_machine(linux_virtual_machine_with_custom_image_hash), @response
51
+ end
41
52
  end
42
53
 
43
54
  # Async
44
55
  @virtual_machines.stub :create_or_update_async, @response do
45
- assert_equal @service.create_virtual_machine(linux_virtual_machine_with_custom_image_hash, true), @response
56
+ @virtual_machines.stub :get, @error_response do
57
+ assert_equal @service.create_virtual_machine(linux_virtual_machine_with_custom_image_hash, true), @response
58
+ end
46
59
  end
47
60
  end
48
61
 
49
62
  def test_create_windows_virtual_machine_from_custom_image_success
50
63
  windows_virtual_machine_with_custom_image_hash = ApiStub::Requests::Compute::VirtualMachine.windows_virtual_machine_with_custom_image_params
51
64
  @virtual_machines.stub :create_or_update, @response do
52
- assert_equal @service.create_virtual_machine(windows_virtual_machine_with_custom_image_hash), @response
65
+ @virtual_machines.stub :get, @error_response do
66
+ assert_equal @service.create_virtual_machine(windows_virtual_machine_with_custom_image_hash), @response
67
+ end
53
68
  end
54
69
 
55
70
  # Async
56
71
  @virtual_machines.stub :create_or_update_async, @response do
57
- assert_equal @service.create_virtual_machine(windows_virtual_machine_with_custom_image_hash, true), @response
72
+ @virtual_machines.stub :get, @error_response do
73
+ assert_equal @service.create_virtual_machine(windows_virtual_machine_with_custom_image_hash, true), @response
74
+ end
58
75
  end
59
76
  end
60
77
 
61
78
  def test_create_linux_virtual_machine_with_custom_data_success
62
79
  linux_virtual_machine_with_custom_data_hash = ApiStub::Requests::Compute::VirtualMachine.linux_virtual_machine_with_custom_data_params
63
80
  @virtual_machines.stub :create_or_update, @custom_data_response do
64
- assert_equal @service.create_virtual_machine(linux_virtual_machine_with_custom_data_hash), @custom_data_response
81
+ @virtual_machines.stub :get, @error_response do
82
+ assert_equal @service.create_virtual_machine(linux_virtual_machine_with_custom_data_hash), @custom_data_response
83
+ end
65
84
  end
66
85
  end
67
86
 
68
87
  def test_create_windows_virtual_machine_with_custom_data_success
69
88
  windows_virtual_machine_with_custom_data_hash = ApiStub::Requests::Compute::VirtualMachine.windows_virtual_machine_with_custom_data_params
70
89
  @virtual_machines.stub :create_or_update, @custom_data_response do
71
- assert_equal @service.create_virtual_machine(windows_virtual_machine_with_custom_data_hash), @custom_data_response
90
+ @virtual_machines.stub :get, @error_response do
91
+ assert_equal @service.create_virtual_machine(windows_virtual_machine_with_custom_data_hash), @custom_data_response
92
+ end
72
93
  end
73
94
  end
74
95
 
75
96
  def test_create_virtual_machine_failure
76
- response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
77
- @virtual_machines.stub :create_or_update, response do
78
- assert_raises RuntimeError do
79
- @service.create_virtual_machine(@linux_virtual_machine_hash)
97
+ @virtual_machines.stub :create_or_update, @error_response do
98
+ @virtual_machines.stub :get, @error_response do
99
+ assert_raises MsRestAzure::AzureOperationError do
100
+ @service.create_virtual_machine(@linux_virtual_machine_hash)
101
+ end
80
102
  end
81
103
  end
82
104
 
83
105
  # Async
84
- @virtual_machines.stub :create_or_update_async, response do
85
- assert_raises RuntimeError do
86
- @service.create_virtual_machine(@linux_virtual_machine_hash, true)
106
+ @virtual_machines.stub :create_or_update_async, @error_response do
107
+ @virtual_machines.stub :get, @error_response do
108
+ assert_raises MsRestAzure::AzureOperationError do
109
+ @service.create_virtual_machine(@linux_virtual_machine_hash, true)
110
+ end
87
111
  end
88
112
  end
89
113
  end