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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2bf91c94c7952f926e8b8f6addba8d2325502d75
4
- data.tar.gz: 61e0a57a19ae54126db5d257144844039dd299ed
2
+ SHA256:
3
+ metadata.gz: 8c9202be26511d57c68a4016a97d6d1f38326eb27f38184dfbf612d53bd90885
4
+ data.tar.gz: caef6851e7ed997b0806a1f0a319805fb02b2fbd534ffa059edabc99e6574ea2
5
5
  SHA512:
6
- metadata.gz: a773c83b37c1d7fd73da133fdcdbd2965c17b70612bf1da0e6cc4969fe5ec68205f5705ef836c2c3ebe6ee8bc84d1b8befdb308933583ceac1cac420327a4f52
7
- data.tar.gz: b2de599f952b4cb397c6ebbca892a8fef938a0a9356df737872f8074b264256be5ae4b6bfb76f727e847675fe70ed93837899be5c5bf15d7c76d35a32ec17d19
6
+ metadata.gz: 9708b117ba2783a4b56f94040fc86f1b4cd6d9facae77117bf5ed93244574647eb4aef95feb529413eed9126f097bfc42e2496725f86f1b336cec3fda091526d
7
+ data.tar.gz: dabbcffd77648802ceec978c21c267e844240aee3958c511ba9d0c92779a32d4d77bc0c4366925141920c16468bfceb8fc733dbf07f7d0691e58a462ae03a095
@@ -9,13 +9,15 @@ before_install:
9
9
  script: bash ./rake-script.sh
10
10
 
11
11
  rvm:
12
- - 2.0.0
13
- - 2.1.0
14
- - 2.1.1
15
- - 2.1.5
16
- - 2.2.0
17
- - 2.3.0
18
- - jruby-head
12
+ - 2.0.0
13
+ - 2.1.0
14
+ - 2.1.1
15
+ - 2.1.5
16
+ - 2.2.10
17
+ - 2.3.7
18
+ - 2.4.4
19
+ - 2.5.1
20
+ - jruby-head
19
21
 
20
22
  matrix:
21
23
  fast_finish: true
@@ -39,8 +41,8 @@ jobs:
39
41
  deploy:
40
42
  provider: rubygems
41
43
  api_key:
42
- secure: "CBhOx8EAQsj3SiOh11PIS8cUSifAjE9vLG4m1njDLmm4bqqqpPIteGqdUEJPnl7AJnmOMIrAc8FZswUrRfYsXqO1WA9ksMkTpBE03UwR4N11/E2NCr8844TWCUt13C1Ma4tk1aK03EGjbem6kDs9Ac8R2kkPBMxCGsEESkaMYepZVVQNu+d33o+59w6JN6ppktaRB30V9QEAuXzcaT4qu6fOjeIuIlawAVGr3CG1VQ17GqxsDzKzNPzcA5eFI+6G1mLekK4MGF1kovYXTVrXeSYfoV1TdYXVwaKeVa3C5kl9/nh4lTz9qMLazc9PVwyreycJ1S8jakZD0A0bm2qZeONr78c32gQrrV8FeLqwK5PTuwgdARMxuHYhaw7dSARSCnu2XvoWfgC4V/1z8zhmnLJ51OR+b/0LmI0aPGgF2GM9ajJsgghWTiaxp8hpcByedrUKRckrfdmVRQywgcL5Ma+o7JyQXW9/fxlDJnH2pXLhmvg9HtmlWbjUpT8mWCCElewUQJx5wtFN9UuoKEom1fSTdpynlIqKb/J3ohG1Woy59ewjFB/dp+Mzghz6zjA5iPCDiT7ZcRXPn/UAiIIq2TzihBOUdSHKtb9r1XceOftBsXDvOh/PWUJyeBixH0H5I6qsGy/kcoOYlC+v4wM2bb9JIlBkKx/jgNrsHXyTLsI="
43
- gem: far-gem
44
+ secure: "aKIOqa6gFMQOcwdNBNsfRoAQm+LVCRf9JpEFnDH8YLRp9A+roj0BL3hZ+pP+pb2sQSEQqU46bfBBrhB2b6Xmjnmv5d0878bl+eYOXeu90CfqRf+v/y+2k/pMsVsKs3Su7M0bHGOeHYT+segRqDHaZaJHkAW8RwLLm5A+0TyEeVjkkpFcyX8fjr5sfvD+XbEmXmmPWPuShQjKTTj1HFYJknRLLNXVYd7ZM9eKgiQfuyomdUTk8yguqNDBWW1BjiEE/0JYqx4wJxdGKPHYT+enP1xIebJVx1gEEnc/OgyBZqtmOirlh2Rnuk58NZfArzwMzIvVclJvPmynmEAlHEWtXwUgQMW5Wu/RYpxRRpr5tDRfru99hll4N9bcA439GlsNHTNJf82zmGNFIdDJ8kUJ08tVPwTvEnWGzLIdKAKWyRV+SESmZb5u3m9e4VTd06/q8gdbW9pG9UGmoes/j32lKzk9DkheCVzQjdxfRs81Z/7uTB3OhhpQnrRlf7qa2OnMDZKrip67UQHiruzAX6naQ7D5fEHR64DGZG7fQ/xRi0oG21UdNl1n/Bioj6ChFXLyInKeA0fiEwwquWK2S/2Sr5ERTBzbv9TkvbJ/1vv8FWcYYmb7bL22699V9yWcsOxEdZEYDucg71g6OrPeNeFZDsJ1749fZzW2X444+4Xtwys="
45
+ gem: fog-azure-rm
44
46
  gemspec: fog-azure-rm.gemspec
45
47
  on:
46
48
  tags: true
@@ -1,3 +1,34 @@
1
+ ## 0.4.8
2
+
3
+ **Added:**
4
+ - Added enable_accelerated_networking attribute for NIC
5
+
6
+ ## 0.4.7
7
+
8
+ **Added:**
9
+ - Support added to list resources in a resource group
10
+ - Added OS disk id attribute to the 'Compute' model
11
+
12
+ ## 0.4.6
13
+
14
+ **Added:**
15
+ - Created Custom Fog Exceptions
16
+
17
+ ## 0.4.5
18
+
19
+ **Changed:**
20
+ - Updated dependency of fog-json to (~> 1.0.2)
21
+
22
+ ## 0.4.4
23
+
24
+ **Fixed:**
25
+ - Compute Service - Fixed customData Update Issue
26
+
27
+ ## 0.4.3
28
+
29
+ **Fixed:**
30
+ - Compute Service - Fixed Server Update Scenario
31
+
1
32
  ## 0.4.2
2
33
 
3
34
  **Fixed:**
data/README.md CHANGED
@@ -80,7 +80,9 @@ Use following command for the complete list of services, Fog provides for Azure
80
80
  ```ruby
81
81
  Fog::AzureRM.services
82
82
  ```
83
+ # Documentation
83
84
 
85
+ https://www.rubydoc.info/github/fog/fog-azure-rm/master
84
86
 
85
87
  ## Contributing
86
88
 
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.test_files = `git ls-files -- {spec,tests}/*`.split("\n")
14
14
  spec.require_paths = %w[lib]
15
15
  spec.license = 'MIT'
16
- spec.homepage = 'https://github.com/maham-nazir-confiz/fog-azure-rm'
16
+ spec.homepage = 'https://github.com/fog/fog-azure-rm'
17
17
  spec.rdoc_options = %w[--charset=UTF-8]
18
18
  spec.extra_rdoc_files = %w[README.md]
19
19
  spec.required_ruby_version = '>= 2.0.0'
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'minitest', '~> 5.8.4'
23
23
  spec.add_development_dependency 'simplecov'
24
24
  spec.add_development_dependency 'codeclimate-test-reporter' , '~> 1.0.0'
25
- spec.add_dependency 'fog-core', '~> 2.0'
26
- spec.add_dependency 'fog-json', '~> 1.0'
25
+ spec.add_dependency 'fog-core', '~> 1.43'
26
+ spec.add_dependency 'fog-json', '~> 1.0.2'
27
27
  spec.add_dependency 'azure_mgmt_compute', '~> 0.9.0'
28
28
  spec.add_dependency 'azure_mgmt_resources', '~> 0.9.0'
29
29
  spec.add_dependency 'azure_mgmt_storage', '~> 0.9.0'
@@ -34,4 +34,5 @@ Gem::Specification.new do |spec|
34
34
  spec.add_dependency 'azure_mgmt_key_vault', '~> 0.9.0'
35
35
  spec.add_dependency 'azure-storage', '= 0.11.5.preview'
36
36
  spec.add_dependency 'vhd', '0.0.4'
37
+ spec.add_dependency 'mime-types', '~> 1.25'
37
38
  end
@@ -1,4 +1,5 @@
1
1
  require 'ms_rest_azure'
2
+ require 'azure/core/http/http_error'
2
3
  require 'erb'
3
4
  require 'fog/azurerm/config'
4
5
  require 'fog/azurerm/constants'
@@ -0,0 +1,18 @@
1
+ # This file contains any or all custom Fog errors that we create
2
+ module Fog
3
+ module AzureRM
4
+ # This is a custom Fog exception inherited from MsRestAzure::AzureOperationError
5
+ class CustomAzureOperationError < MsRestAzure::AzureOperationError
6
+ def initialize(message, azure_exception)
7
+ super(azure_exception.request, azure_exception.response, azure_exception.body, "Exception in #{message}")
8
+ end
9
+ end
10
+
11
+ # This is a custom Fog exception inherited from Azure::Core::Http::HTTPError
12
+ class CustomAzureCoreHttpError < Azure::Core::Http::HTTPError
13
+ def initialize(azure_exception)
14
+ super(azure_exception.http_response)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -61,7 +61,8 @@ fog_compute_service.servers.create(
61
61
  custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
62
62
  os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
63
63
  managed_disk_storage_type: '<Storage Account Type>', # [Optional], if storage_account_name is passed, can be StandardLRS or PremiumLRS
64
- os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
64
+ os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
65
+ os_disk_name: '<Disk Name>' # [Optional], name of the os disk
65
66
  )
66
67
  ```
67
68
 
@@ -97,7 +98,8 @@ fog_compute_service.servers.create(
97
98
  custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
98
99
  os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
99
100
  managed_disk_storage_type: '<Storage Account Type>', # [Optional], if storage_account_name is passed, can be StandardLRS or PremiumLRS
100
- os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
101
+ os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
102
+ os_disk_name: '<Disk Name>' # [Optional], name of the os disk
101
103
  )
102
104
  ```
103
105
 
@@ -123,7 +125,8 @@ fog_compute_service.servers.create(
123
125
  availability_set_id: '<Availability Set Id>', # [Optional]
124
126
  vhd_path: '<Path of VHD>', # [Optional], if you want to create the VM from a custom image.
125
127
  custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
126
- os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
128
+ os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
129
+ os_disk_name: '<Disk Name>' # [Optional], name of the os disk
127
130
  )
128
131
  ```
129
132
 
@@ -153,7 +156,8 @@ async_response = fog_compute_service.servers.create_async(
153
156
  custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
154
157
  os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
155
158
  managed_disk_storage_type: '<Storage Account Type>', # [Optional], can be StandardLRS or PremiumLRS
156
- os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
159
+ os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
160
+ os_disk_name: '<Disk Name>' # [Optional], name of the os disk
157
161
  )
158
162
  ```
159
163
  Following methods are available to handle async respoonse:
@@ -384,6 +388,8 @@ Get an managed disk object from the get method and then destroy that managed dis
384
388
 
385
389
  ```ruby
386
390
  managed_disk.destroy
391
+ # Can be made asynchronously (is synchronous by default)
392
+ managed_disk.destroy(true)
387
393
  ```
388
394
 
389
395
  ## Check Availability Set Existence
@@ -256,7 +256,8 @@ nic = fog_network_service.network_interfaces.create(
256
256
  public_ip_address_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Name>',
257
257
  ip_configuration_name: '<IP Configuration Name>',
258
258
  private_ip_allocation_method: '<IP Allocation Method Name>',
259
- tags: { key: 'value' } # [Optional]
259
+ tags: { key: 'value' } # [Optional],
260
+ enable_accelerated_networking: true # [Optional] false by default
260
261
  )
261
262
  ```
262
263
 
@@ -46,8 +46,10 @@ module Fog
46
46
  merge_attributes(Fog::Compute::AzureRM::ManagedDisk.parse(disk))
47
47
  end
48
48
 
49
- def destroy
50
- service.delete_managed_disk(resource_group_name, name)
49
+ def destroy(async = false)
50
+ response = service.delete_managed_disk(resource_group_name, name,
51
+ async)
52
+ async ? create_fog_async_response(response) : response
51
53
  end
52
54
 
53
55
  private
@@ -71,6 +73,11 @@ module Fog
71
73
  encryption_settings: encryption_settings
72
74
  }
73
75
  end
76
+
77
+ def create_fog_async_response(response, delete_extra_resource = false)
78
+ disk = Fog::Compute::AzureRM::ManagedDisk.new(service: service)
79
+ Fog::AzureRM::AsyncResponse.new(disk, response, delete_extra_resource)
80
+ end
74
81
  end
75
82
  end
76
83
  end
@@ -11,6 +11,7 @@ module Fog
11
11
  attribute :vm_size
12
12
  attribute :storage_account_name
13
13
  attribute :os_disk_name
14
+ attribute :os_disk_id
14
15
  attribute :os_disk_vhd_uri
15
16
  attribute :os_disk_caching
16
17
  attribute :publisher
@@ -46,6 +47,10 @@ module Fog
46
47
  hash['vm_size'] = vm.hardware_profile.vm_size unless vm.hardware_profile.vm_size.nil?
47
48
  unless vm.storage_profile.nil?
48
49
  hash['os_disk_name'] = vm.storage_profile.os_disk.name
50
+
51
+ subscription_id = get_subscription_id(vm.id)
52
+ hash['os_disk_id'] = "/subscriptions/#{subscription_id}/resourceGroups/#{hash['resource_group']}/providers/Microsoft.Compute/disks/#{hash['os_disk_name']}"
53
+
49
54
  hash['os_disk_size'] = vm.storage_profile.os_disk.disk_size_gb
50
55
  if vm.storage_profile.os_disk.vhd.nil?
51
56
  hash['managed_disk_storage_type'] = vm.storage_profile.os_disk.managed_disk.storage_account_type
@@ -228,7 +233,9 @@ module Fog
228
233
  managed_disk_storage_type: managed_disk_storage_type,
229
234
  os_disk_size: os_disk_size,
230
235
  tags: tags,
231
- image_ref: image_ref
236
+ image_ref: image_ref,
237
+ os_disk_name: os_disk_name,
238
+ os_disk_vhd_uri: os_disk_vhd_uri
232
239
  }
233
240
  end
234
241
 
@@ -23,6 +23,7 @@ module Fog
23
23
  attribute :internal_dns_name_label
24
24
  attribute :internal_fqd
25
25
  attribute :tags
26
+ attribute :enable_accelerated_networking
26
27
 
27
28
  def self.parse(nic)
28
29
  hash = {}
@@ -54,6 +55,7 @@ module Fog
54
55
  hash['internal_dns_name_label'] = nic_dns_settings.internal_dns_name_label
55
56
  hash['internal_fqd'] = nic_dns_settings.internal_fqdn
56
57
  end
58
+ hash['enable_accelerated_networking'] = nic.enable_accelerated_networking
57
59
  hash
58
60
  end
59
61
 
@@ -64,7 +66,7 @@ module Fog
64
66
  requires :subnet_id
65
67
  requires :ip_configuration_name
66
68
  requires :private_ip_allocation_method
67
- nic = service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
69
+ nic = service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
68
70
  merge_attributes(Fog::Network::AzureRM::NetworkInterface.parse(nic))
69
71
  end
70
72
 
@@ -26,6 +26,14 @@ module Fog
26
26
  def check_azure_resource_exists(resource_id, api_version)
27
27
  service.check_azure_resource_exists(resource_id, api_version)
28
28
  end
29
+
30
+ def list_resources_in_resource_group(resource_group_name)
31
+ resources = []
32
+ service.list_resources_in_resource_group(resource_group_name).each do |resource|
33
+ resources.push(Fog::Resources::AzureRM::AzureResource.parse(resource))
34
+ end
35
+ load(resources)
36
+ end
29
37
  end
30
38
  end
31
39
  end
@@ -1,3 +1,5 @@
1
+ require 'mime/types'
2
+
1
3
  module Fog
2
4
  module Storage
3
5
  class AzureRM
@@ -11,6 +11,13 @@ module Fog
11
11
  vm_name = vm_config[:name]
12
12
  rg_name = vm_config[:resource_group]
13
13
 
14
+ # In case of updating the VM, we check if the user has passed any value for os_disk_name
15
+ # If the user has not passed any value, we try to retrieve the value of os_disk_name from the VM
16
+ # If the VM exists then the os_disk_name is retrieved; else it remains nil
17
+ os_disk_parameters = get_os_disk_parameters(rg_name, vm_name) if vm_config[:os_disk_name].nil? || vm_config[:os_disk_vhd_uri].nil?
18
+ vm_config[:os_disk_name] = os_disk_parameters[:os_disk_name] if vm_config[:os_disk_name].nil?
19
+ vm_config[:os_disk_vhd_uri] = os_disk_parameters[:os_disk_vhd_uri] if vm_config[:os_disk_vhd_uri].nil?
20
+
14
21
  msg = "Creating Virtual Machine '#{vm_name}' in Resource Group '#{rg_name}'..."
15
22
  Fog::Logger.debug msg
16
23
 
@@ -67,7 +74,7 @@ module Fog
67
74
  vm_name = vm_config[:name]
68
75
  username = vm_config[:username]
69
76
  password = vm_config[:password]
70
- custom_data = vm_config[:custom_data]
77
+ custom_data = vm_config[:custom_data] unless vm_config[:custom_data].nil?
71
78
  provision_vm_agent = vm_config[:provision_vm_agent]
72
79
  enable_automatic_updates = vm_config[:enable_automatic_updates]
73
80
  disable_password_auth = vm_config[:disable_password_authentication]
@@ -79,7 +86,7 @@ module Fog
79
86
  os_profile.computer_name = vm_name
80
87
  os_profile.admin_username = username
81
88
  os_profile.admin_password = password
82
- os_profile.custom_data = Base64.strict_encode64(custom_data.nil? ? WHITE_SPACE : custom_data)
89
+ os_profile.custom_data = Base64.strict_encode64(custom_data) unless vm_config[:custom_data].nil?
83
90
 
84
91
  if platform.casecmp(WINDOWS).zero?
85
92
  os_profile.windows_configuration = get_windows_config(provision_vm_agent, enable_automatic_updates)
@@ -154,12 +161,14 @@ module Fog
154
161
  os_disk_size = vm_config[:os_disk_size]
155
162
  location = vm_config[:location]
156
163
  image_ref = vm_config[:image_ref]
164
+ os_disk_name = vm_config[:os_disk_name]
165
+ os_disk_vhd_uri = vm_config[:os_disk_vhd_uri]
157
166
 
158
167
  storage_profile = Azure::ARM::Compute::Models::StorageProfile.new
159
168
  # Set OS disk VHD path
160
169
  os_disk = Azure::ARM::Compute::Models::OSDisk.new
161
170
  vhd = Azure::ARM::Compute::Models::VirtualHardDisk.new
162
- vhd.uri = get_blob_endpoint(storage_account_name) + "/vhds/#{vm_name}_os_disk.vhd"
171
+ vhd.uri = os_disk_vhd_uri.nil? ? get_blob_endpoint(storage_account_name) + "/vhds/#{vm_name}_os_disk.vhd" : os_disk_vhd_uri
163
172
  os_disk.vhd = vhd
164
173
 
165
174
  if vhd_path.nil? && image_ref.nil?
@@ -180,7 +189,7 @@ module Fog
180
189
  storage_profile.image_reference.id = image.id
181
190
  end
182
191
 
183
- storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_caching, os_disk_size, platform, vm_name)
192
+ storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_name, os_disk_caching, os_disk_size, platform, vm_name)
184
193
  storage_profile
185
194
  end
186
195
 
@@ -200,6 +209,7 @@ module Fog
200
209
  platform = vm_config[:platform]
201
210
  vm_name = vm_config[:name]
202
211
  image_ref = vm_config[:image_ref]
212
+ os_disk_name = vm_config[:os_disk_name]
203
213
 
204
214
  # Build storage profile
205
215
  storage_profile = Azure::ARM::Compute::Models::StorageProfile.new
@@ -226,7 +236,7 @@ module Fog
226
236
  storage_profile.image_reference.id = image.id
227
237
  end
228
238
 
229
- storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_caching, os_disk_size, platform, vm_name)
239
+ storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_name, os_disk_caching, os_disk_size, platform, vm_name)
230
240
  storage_profile
231
241
  end
232
242
 
@@ -249,8 +259,9 @@ module Fog
249
259
  }
250
260
  end
251
261
 
252
- def configure_os_disk_object(os_disk, os_disk_caching, os_disk_size, platform, vm_name)
253
- os_disk.name = "#{vm_name}_os_disk"
262
+ def configure_os_disk_object(os_disk, os_disk_name, os_disk_caching, os_disk_size, platform, vm_name)
263
+ # It will use the os_disk_name provided or it will generate a name for itself if it is nil
264
+ os_disk.name = os_disk_name.nil? ? "#{vm_name}_os_disk" : os_disk_name
254
265
  os_disk.os_type = platform
255
266
  os_disk.disk_size_gb = os_disk_size unless os_disk_size.nil?
256
267
  os_disk.create_option = Azure::ARM::Compute::Models::DiskCreateOptionTypes::FromImage
@@ -332,6 +343,23 @@ module Fog
332
343
  TEMPORARY_STORAGE_ACCOUNT_TAG_KEY,
333
344
  TEMPORARY_STORAGE_ACCOUNT_TAG_VALUE)
334
345
  end
346
+
347
+ def get_os_disk_parameters(resource_group, virtual_machine_name)
348
+ os_disk_parameters = {}
349
+
350
+ begin
351
+ vm = get_virtual_machine(resource_group, virtual_machine_name, false)
352
+ rescue
353
+ return os_disk_parameters
354
+ end
355
+
356
+ unless vm.storage_profile.nil?
357
+ os_disk_parameters[:os_disk_name] = vm.storage_profile.os_disk.name
358
+ os_disk_parameters[:os_disk_vhd_uri] = vm.storage_profile.os_disk.vhd.uri unless vm.storage_profile.os_disk.vhd.nil?
359
+ end
360
+
361
+ os_disk_parameters
362
+ end
335
363
  end
336
364
 
337
365
  # This class provides the mock implementation for unit tests.
@@ -4,16 +4,24 @@ module Fog
4
4
  class AzureRM
5
5
  # Real class for Compute Request
6
6
  class Real
7
- def delete_managed_disk(resource_group_name, disk_name)
7
+ def delete_managed_disk(resource_group_name, disk_name, async)
8
8
  msg = "Deleting Managed Disk: #{disk_name}"
9
9
  Fog::Logger.debug msg
10
10
  begin
11
- @compute_mgmt_client.disks.delete(resource_group_name, disk_name)
11
+ if async
12
+ response = @compute_mgmt_client.disks.delete_async(resource_group_name, disk_name)
13
+ else
14
+ @compute_mgmt_client.disks.delete(resource_group_name, disk_name)
15
+ end
12
16
  rescue MsRestAzure::AzureOperationError => e
13
17
  raise_azure_exception(e, msg)
14
18
  end
15
- Fog::Logger.debug "Managed Disk #{disk_name} deleted successfully."
16
- true
19
+ if async
20
+ response
21
+ else
22
+ Fog::Logger.debug "Managed Disk #{disk_name} deleted successfully."
23
+ true
24
+ end
17
25
  end
18
26
  end
19
27
 
@@ -4,10 +4,10 @@ module Fog
4
4
  class AzureRM
5
5
  # Real class for Network Request
6
6
  class Real
7
- def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
7
+ def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking = false)
8
8
  msg = "Creating/Updating Network Interface Card: #{name}"
9
9
  Fog::Logger.debug msg
10
- network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
10
+ network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
11
11
  begin
12
12
  network_interface_obj = @network_client.network_interfaces.create_or_update(resource_group_name, name, network_interface)
13
13
  rescue MsRestAzure::AzureOperationError => e
@@ -19,7 +19,7 @@ module Fog
19
19
 
20
20
  private
21
21
 
22
- def get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
22
+ def get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
23
23
  if public_ip_address_id
24
24
  public_ipaddress = Azure::ARM::Network::Models::PublicIPAddress.new
25
25
  public_ipaddress.id = public_ip_address_id
@@ -60,6 +60,7 @@ module Fog
60
60
  network_interface.location = location
61
61
  network_interface.ip_configurations = [ip_configs]
62
62
  network_interface.tags = tags
63
+ network_interface.enable_accelerated_networking = enable_accelerated_networking
63
64
 
64
65
  if network_security_group_id
65
66
  network_security_group = Azure::ARM::Network::Models::NetworkSecurityGroup.new